Flutter или нативная разработка: что лучше выбрать для проекта?

С нативными технологиями мы работаем уже более 10 лет, а с 2018 года существенно продвинулись в разработке кроссплатформенных приложений.
Мы уже писали о разнице между разными кроссплатформенными технологиями: например, сравнивали Flutter и React Native. В этой статье разберёмся, для каких целей больше подходит кроссплатформа, а для каких — нативная разработка.
Оба подхода предоставляют массу возможностей для масштабирования и дают качественный UX. Однако они сильно отличаются друг от друга с точки зрения сопровождения программного кода, скорости разработки, производительности приложения и затрат.
Что такое Flutter?
Flutter — популярный кроссплатформенный фреймворк с единой кодовой базой на Dart. Google выпустили его в 2018 году, но он уже зарекомендовал себя как удобный набор инструментов. С ним легко создавать плавные анимации и компоненты UX.
Что такое нативные технологии?
Нативное приложение создаётся конкретно под Android или iOS. Такие приложения пишут на языках, которые поддерживаются поставщиком ОС устройства:
- Android: Kotlin, Java и Android Studio
- iOS: Swift, Objective-C и Xcode
У нативных приложений нет серьёзных минусов. В них можно полноценно пользоваться сложными фичами вроде акселерометра, камеры и GPS. Однако разработка и сопровождение нативных приложений существенно дороже.
Разработчикам приходится подстраивать бизнес-логику, интерфейс и вёрстку под фичи каждой платформы. Именно поэтому более экономичный Flutter становится всё популярнее.

Flutter или нативные приложения: сроки разработки
На Flutter можно писать единый код для двух различных платформ, что существенно сокращает сроки и стоимость разработки. К тому же писать его проще, чем в нативе. Даже начинающие разработчики быстро схватывают основы. В случае с нативными технологиями разработчикам приходится писать код отдельно для Android и для iOS, на это уходит больше времени.
Разработка на Flutter занимает на 20-50% меньше времени, чем создание двух нативных приложений. Скорость также зависит от сложности интерфейса и требуемых функций.
Производительность
Мы заметили, что загрузка центрального процессора у нативного приложения примерно на 50% меньше, чем у приложения на Flutter. Однако он использует в два раза больше памяти.
Сопровождение кода
В большинстве случаев сопровождение нативного приложения занимает больше времени. Во-первых, на поддержку двух кодовых баз требуется немало сил. Во-вторых, для каждой платформы разработчикам приходится писать обновления и фиксить баги. В-третьих, чем больше становится устройств, поддерживающих ОС, тем больше усилий уходит на сопровождение кода.
Что касается приложений на Flutter, их сопровождать куда проще, так как кодовая база единая для двух приложений. Благодаря простоте кода, разработчики быстро находят баги и добавляют поддержку сторонних библиотек. Кроме того, фича Hot Reload во Flutter помогает моментально устранять возникшие в приложении проблемы.
Kotlin native или Flutter: фичи и интеграции
Большинство нативных фреймворков, используемых для разработки приложений под iOS, включая Swift, обеспечивают повышенную безопасность приложения и возможности быстрой интеграции. То же можно сказать и о Kotlin с Java в случае с Android.
С Flutter интеграция уникальных фич с помощью сторонних плагинов или библиотек не представляет такой сложности. Однако разработчикам, которые не знают об этой функциональности языка Dart, эта задача может показаться сложной. Кроме того, движок Flutter обладает определёнными ограничениями, когда речь заходит об интеграции нативных модулей через Xcode или Android Studio по умолчанию. Документация Flutter включает инструкции о том, что делать в случае возможных осложнений и как успешно интегрировать его в приложение под Android и iOS.
Swift для iOS или Flutter: фичи и интеграции
Swift остаётся одним из наиболее популярных языков, созданных Apple для iOS, а многие разработчики хвалят его фреймворки и документацию за их исключительное качество. Если сравнивать Flutter с нативными приложениями на Swift, интеграция с Swift iOS происходит проще и требует меньшего числа настроек. Однако у Swift могут быть проблемы интеграции с некоторыми сторонними инструментами.
Что касается Flutter, его код подходит для множества платформ, включая Android. Кроме того, писать код с Flutter быстрее и это отличный выбор для разработки MVP.
Стоимость разработки приложения
Нативная разработка дороже, так как требует написания двух кодовых баз для двух разных платформ. Кроме того, для натива требуется нанять больше разработчиков и других специалистов.

По нашему опыту, с Flutter проект может выйти дешевле примерно на 45,6% в разработке, 70,5% на тестировании (с учётом автотестов) и 33,3% на дизайне. В команде меньше людей, что облегчает коммуникацию и флоу. Благодаря этому можно приблизить срок релиза.
Сценарии использования Flutter и нативных технологий
Выбор зависит от коммерческой цели. В настоящее время Flutter в основном используют представители среднего и крупного бизнеса. Мы уже писали о том, как создали первое в России банковское приложение на технологии Flutter.
Что касается нативных технологий, разработчики используют их для создания сложных нишевых приложений с расширенными функциональными возможностями. В таблице ниже покажем сценарии использования Flutter и нативных технологий.

Когда лучше выбрать нативные технологии?
Нативные технологии, как правило, используются для написания высокопроизводительных приложений с расширенным функционалом. Однако нужно учитывать скорость и стоимость разработки и поддержки.

Когда лучше выбрать Flutter?
Мы в Surf уже успели поработать над несколькими крупными проектами на Flutter для российского рынка — приложение для Росбанка, сети аптек Ригла, крупный видеостриминг The Hole и мобильное приложение для сотрудников KFC. Мы убедились, что этот фреймворк подходит различным сферам бизнеса — ритейлу, банкам и фудтеху. Если вы хотите реализовать приложение на Flutter, заполните заявку – и мы свяжемся с вами.

Flutter хорошо подходит для финтех-проектов, так как можно использовать технологии обеспечения безопасности, которыми пользуется сама банковская платформа — Touch ID, Face ID, сканер отпечатка пальцев.
Подведём итог
Сравнивая Flutter с нативными технологиями на iOS и Android, мы пришли к выводам:
- Ни Flutter, ни нативные технологии не панацея. Каждый случай индивидуален, и всё зависит от конкретного проекта и нужд вашего бизнеса.
- Flutter — многообещающий кроссплатформенный фреймворк с точки зрения сроков разработки и экономии бюджета.
- На Flutter реально написать MVP приложения за 2-3 месяца.
- Разработка полноценного продукта на Flutter в среднем стоит на 30% дешевле, чем разработка двух нативных приложений.
- Нативные технологии лучше подходят для сложных, высокотехнологичных нишевых приложений с фичами вроде GPS и множеством анимаций.
Мы считаем, что Flutter — отличная возможность выйти в онлайн и предоставить своим клиентам продукт или услугу через мобильное приложение.
Если вы ищете способ быстро разработать приложение под iOS и Android без серьёзных потерь качества и бюджета, дайте шанс Flutter и свяжитесь с нами.