Как выбрать инструмент для вашего мобильного приложения: Native, Flutter или PWA

Рынок мобильных приложений продолжает наращивать объем и доходность: по данным Data.ai, мировые потребительские расходы на приложения в 2023 году достигли $171 млрд, а на одного пользователя приходится около 5 часов ежедневного взаимодействия со смартфоном. Компании стремятся завоевать внимание клиентов с помощью мобильных устройств, что подогревает конкуренцию между мобильными приложениями. Поэтому выбор подходящего инструмента для разработки сейчас особенно актуален. Команда мобильной разработки Notamedia поможет разобраться в этом вопросе.

Как выбрать инструмент для вашего мобильного приложения: Native, Flutter или PWA

Решение между Native, Flutter и Progressive Web Apps (PWA) для мобильного приложения может существенно повлиять не только на комфорт и лояльность пользователя, но и на стоимость и скорость выхода продукта на рынок.

Гурген Балаян, технический руководитель проектов мобильной разработки, рассматривает преимущества и недостатки каждого из подходов и дает чек-лист по выбору оптимального решения для бизнеса.

Гурген Балаян
Технический руководитель проектов мобильной разработки

Ключевые особенности 3 подходов

PWA или Progressive Web Application — технология, предоставляющая пользователям возможность установить ваш сайт на смартфон в качестве полноценного приложения. PWA объединяет основные черты веб-сайтов и мобильных приложений, обеспечивая качественный пользовательский опыт.

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

Native или нативные мобильные приложения — это приложения, разработанные и адаптированные под определенную платформу. Так, если бизнес принимает решение использовать нативную разработку, необходимо создавать приложение отдельно для iOS и отдельно для Android.

PWA

Прежде чем переходить к подробному разбору PWA, напомним, что в 2022 году российский рынок мобильных приложений столкнулся с удалением приложений из магазинов. По данным Sensor Tower, с 24 февраля из российского сегмента App Store было удалено около 7000 приложений. Компании нашли выход в переходе на PWA в качестве альтернативы для сохранения пользователей, когда доступ в магазины оказался закрыт.

Технические особенности:

  • PWA используют языки HTML, CSS и JavaScript, что обеспечивает их кроссплатформенность и совместимость с большинством браузеров за некоторым исключением.

  • Основной технологический элемент PWA — Service Worker, обеспечивающий работу приложения. Это скрипт, работающий в фоновом режиме независимо от веб-страницы.
  • Web App Manifest – это файл JSON, который сообщает браузеру о вашем PWA и о том, как приложение должно вести себя при установке на мобильное устройство. Типичный файл манифеста включает имя приложения, значки, которые приложение должно использовать, и многое другое.

Преимущества:

  • Приложения могут работать на разных устройствах и операционных системах, так как все происходит внутри браузера. Для бизнеса это экономия трудозатрат и времени.
  • Поддержка push-уведомлений. До недавнего времени это было ограничением, уведомления работали только на Android, но с версии iOS 16.4 это стало возможным.
  • Есть доступ к возможностям платформы iOS и Android, хоть и ограниченный.
  • Поддерживается работа в офлайне и фоновом режиме, но тоже с ограничениями.

  • Запуск с иконки на экране смартфона аналогичен нативным и кроссплатформенным приложениям.
  • Размер PWA приложения, как правило, не превышает 1-3 Мб, что может быть большим плюсом для пользователей с ограниченным объемом памяти на устройствах.
  • Не нужно размещать приложение в AppStore и Google Play. Его можно установить напрямую с вашего сайта. Но при желании его можно разместить и в магазинах.

Ограничения:

  • Ограниченный доступ к аппаратным ресурсам.
  • Отсутствие магазинов, которые гарантируют безопасность пользователям и при этом являются популярными.
  • Низкая поддержка iOS. Те функции, которые поддерживаются на Android, могут быть недоступны на iOS.

Выяснить, какие ресурсы доступны в PWA, можно с помощью whatpwacando.today, установив его на смартфон, чтобы посмотреть все возможности PWA.

<p>Установка PWA на iOS</p>

Установка PWA на iOS

<p>Установка PWA на Android</p>

Установка PWA на Android

Яркими примерами PWA являются приложения Сбербанка, Альфа-банка и популярный мессенджер Telegram.

Flutter-приложения

Технические особенности:

  • Flutter использует язык Dart, который компилируется в машинный код, если мы говорим про мобильные платформы, и в JavaScript, если речь идет про web.
  • Flutter — это фреймворк с открытым исходным кодом.

Преимущества:

  • Кроссплатформенность. Один код — несколько платформ, что обеспечивает экономию ресурсов и времени.

  • Декларативный подход в UI. Декларативный подход означает, что вы описываете, как должен выглядеть UI в том или ином состоянии приложения, а фреймворк берет на себя заботу о рендеринге UI и переходе между состояниями. Благодаря этому Flutter популярен среди разработчиков, так как он ускоряет разработку.

  • Совместимость с нативом. В случае возникновения проблем с реализацией на Flutter, есть возможность «затащить» код на нативе.

  • Быстрая разработка и удобное изучение фреймворка за счет Hot Reload (JIT-компиляция), что позволяет видеть изменения в коде в реальном времени.

Прежде чем говорить об ограничениях Flutter, стоит отметить, что в статье специально не упоминается Kotlin Multiplatform. Для написания полноценных мультиплатформенных решений время этой технологии еще не настало, хотя оно и не за горами. А время React Native и Xamarin уже проходит.

Тем временем к Flutter интерес разработчиков повышается уже на протяжении нескольких лет: по данным Statista, в 2022 году его популярность выросла на 12% с 2019 года.

Ограничения:

  • Flutter — это фреймворк с открытым исходным кодом от Google. Это относится к ограничениям, так как жизненный цикл кроссплатформенных решений мал, их заменяют другие кроссплатформенные решения. Кроме того, Google славится большим количеством закрытых проектов, а Kotlin Multiplatform наступает на пятки.
  • Некоторые библиотеки, которые разрабатывает комьюнити, могут долго не обновляться и быть устаревшими.

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

  • Недостаточно тесная интеграция с экосистемой iOS.

Как выбрать инструмент для вашего мобильного приложения: Native, Flutter или PWA

Примеры приложений, написанных на Flutter: Alibaba, eBay Motors.

Native

Технические особенности:

  • Языки программирования: Swift для iOS и Kotlin/Java для Android.

Преимущества:

  • Нативные приложения предоставляют наивысшую производительность за счет тесной интеграции с экосистемой операционной системы.

  • Реализация проектов любой сложности.

  • Доступ к аппаратным ресурсам каждой платформы.

  • Комьюнити разработчиков намного больше, чем у предыдущих решений.

Ограничения:

  • Разработка и поддержка двух приложений на iOS и Android может потребовать дополнительных ресурсов: кадровых, финансовых и временных.

Примеров нативных мобильных приложений на рынке огромное количество, что объясняется популярностью этого подхода. Самые яркие примеры: Яндекс.Карты, ВКонтакте, Авито.

Чек-лист по выбору между Native, Flutter или PWA

Как выбрать инструмент для вашего мобильного приложения: Native, Flutter или PWA

Если перед вами стоит задача создания мобильного приложения и вы затрудняетесь с выбором подходящей технологии, начните с анализа потенциальных технических ограничений. После этого нужно четко сформулировать потребности и ожидания от будущего приложения.

Например, если требуется быстро запустить MVP, то стоит выбирать между PWA и Flutter, эти технологии позволят быстро выйти на рынок. Многие компании выбирают этот путь, так как приоритет бизнеса — оперативно представить продукт, привлечь пользователей, проверить рабочие гипотезы и провести тестирование.

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

Резюмируя

Итак, принимая решение между PWA, Flutter и нативными приложениями, следует ориентироваться на технологические, финансовые и ресурсные возможности и ограничения вашего проекта. Обычно, если заказчик склоняется к выбору кроссплатформенной разработки, что соответствует его техническим требованиям и не предполагает последующего перехода на нативные платформы, стоимость проекта снижается примерно на 40%. Это средний показатель, рассчитанный нами в результате работы над различными проектами.

Если же в перспективе рассматривается переход на нативные решения, нужно подбирать рациональный вариант с учетом индивидуальных аспектов каждого проекта. Для этого рекомендуем вам воспользоваться услугами профессиональной команды мобильной разработки Notamedia. Мы подберем инструмент, который идеально соответствует вашим требованиям.

Где нас найти

Наш тг-канал: @Notamedia_Moscow

Там делимся нашими новостями, статьями, мероприятиями, открытыми вакансиями и лайфхаками для работы.

24
3 комментария

Комментарий недоступен

1
Ответить

Статья очень понравилась, простым языком всё разложено. Мне очень интересно, есть ли будущее у КММ, потенциально эта технология очень упростит разработку нативных приложений, так как на мой взгляд, PWA может "сожрать" натив в ближайшем будущем, как минимум на стартапах.

1
Ответить

Отличный обзор! Важно учитывать особенности каждого инструмента при выборе для мобильного приложения. Главное - подходящее сочетание функциональности, производительности и опыта пользователя.

1
Ответить