Приложения

Native или cross-platform? Руководство по выбору для владельца бизнеса

admin 5 мин чтения

Первое техническое решение, с которым вы сталкиваетесь при заказе мобильного приложения, — это native или cross-platform? На самом деле принимать это решение должны не вы, а разработчик. Но вы должны понимать его обоснование, потому что от этого решения зависят стоимость, сроки и то, с кем вы сможете работать в дальнейшем. Эта статья — не техническое сравнение; она написана для того, чтобы владелец бизнеса мог вести этот разговор.

Что такое native и cross-platform? Native (нативное) приложение разрабатывается для одной операционной системы собственными инструментами этой платформы: например, Swift для iOS, Kotlin для Android. Cross-platform (кроссплатформенное) приложение — это подход, при котором из единой кодовой базы создаются версии и для iOS, и для Android; самые распространённые инструменты этого подхода — React Native и Flutter. Ниже мы объясняем, что эта разница означает для владельца бизнеса с точки зрения стоимости, поддержки и команды.

Что означают три варианта?

Native Cross-platform Веб-приложение
Как создаётся Отдельный код для iOS и Android Один код, две платформы Приложение, работающее в браузере
Публикация в магазинах Есть Есть Нет
Стоимость двух платформ Две отдельные разработки Одна разработка плюс дополнительная работа под различия платформ Одна разработка
Поддержка Две кодовые базы Одна кодовая база Одна кодовая база
Доступ к функциям устройства Полный Широкий; в некоторых случаях нужен дополнительный нативный код Ограниченный
Уведомления Полные Полные Ограниченные
Работа офлайн Сильная Сильная Ограниченная

В кроссплатформенной разработке две самые распространённые технологии — React Native и Flutter. В нативной для iOS используется Swift, для Android — Kotlin.

Практические отличия с вашей точки зрения

  • Стоимость: если вы выходите сразу на две платформы, native означает две отдельные разработки. При cross-platform разработка одна, но под различия платформ всё равно возникает дополнительная работа — не ждите «половины стоимости».
  • Поддержка: здесь разница ощущается сильнее всего. Каждое исправление и каждая новая функция в native делаются дважды. Если приложение будет жить годами, эта статья растёт.
  • Поиск команды: если вы расстанетесь с подрядчиком, найти того, кто примет проект, должно быть несложно. Широко распространённые технологии в этом смысле выгоднее.
  • Переход на вторую платформу: если вы планируете начать с одной платформы и затем перейти на другую, cross-platform заметно упрощает этот переход.
  • Производительность: в типичных бизнес-приложениях с формами, списками, картами и оплатой пользователь обычно не чувствует разницы. Разница проявляется в приложениях с интенсивной графикой и постоянной анимацией.

В каких случаях нужен native?

Это конкретные основания; «будет качественнее» — не основание.

  • Приложения, требующие интенсивной 3D-графики или игрового движка.
  • Дополненная реальность, продвинутая обработка изображений с камеры, обработка видео или звука в реальном времени.
  • Особые сценарии с глубоким доступом к аппаратной части устройства (специализированные Bluetooth-устройства, продвинутое использование NFC, постоянная обработка геолокации в фоне).
  • Приложения, чувствительные к задержкам, где важны миллисекунды.
  • Если вам нужно использовать новую функцию платформы в первый день её выхода.

Если ни один из этих пунктов не подходит к вашей ситуации, cross-platform с большой вероятностью является разумным выбором. Но попросите разработчика обосновать это решение именно для вашего проекта; не принимайте его как общее правило.

React Native или Flutter?

Этот вопрос касается владельца бизнеса меньше, чем принято думать. Обе технологии зрелые, широко используемые и покрывают потребности типичных бизнес-приложений. Решающим обычно оказывается следующее: в какой из них опытнее команда разработчиков и на какой стороне лучше отлажены готовые компоненты, нужные вашему проекту.

Единственное, на что вам стоит смотреть, — обоснован ли выбор. «Мы всегда делаем на этом» — недостаточный ответ; «в вашем проекте есть такие-то потребности, поэтому мы выбираем это» — достаточный.

Ещё один вариант: вообще не выходить в магазины

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

Особенно для внутренних инструментов и первых пробных версий этот вариант обсуждают реже, чем он заслуживает. Логику начала с узким объёмом мы описали в статье о проверке идеи с помощью MVP.

Вопросы, которые стоит задать разработчику

  • Какой подход вы рекомендуете для этого проекта и почему? Можете объяснить обоснование применительно к проекту?
  • Сколько человек в вашей команде умеют работать с выбранной технологией?
  • Ограничивает ли этот выбор то, что я, возможно, захочу добавить в будущем?
  • Сколько работы по адаптации потребуется при ежегодных обновлениях операционных систем и как это оплачивается?
  • Если я перестану работать с вами, насколько сложно найти человека, который примет проект на этой технологии?
  • Как в договоре прописано право собственности на код и аккаунты?

Последние два вопроса нужно задавать в каждом проекте независимо от выбора технологии. Полный список вопросов при выборе подрядчика мы собрали в статье о выборе IT-компании.

Часто задаваемые вопросы

Кроссплатформенное приложение получается менее качественным?

Качество зависит не столько от технологии, сколько от того, как выполнена работа. В типичных бизнес-приложениях пользователь обычно не замечает разницы; плохо сделанное нативное приложение даёт худший опыт, чем хорошо сделанное кроссплатформенное.

Могу ли я потом перейти на native?

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

Разумно ли начинать с одной платформы?

Если вы знаете распределение устройств у вашей аудитории — да. Выбор cross-platform упростит работу, когда вы захотите выйти на вторую платформу.

Насколько выбор технологии меняет стоимость?

Если вы выходите на одну платформу, разница меньше; если на две и приложение будет годами поддерживаться — разница растёт. Статьи, определяющие стоимость, мы разобрали в материале о стоимости мобильного приложения.

Что будет, если поддержка выбранной технологии прекратится?

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

Давайте вместе посмотрим, что подходит вашему проекту

Расскажите, что будет делать ваше приложение, какими устройствами пользуется ваша аудитория и что необходимо в первой версии; мы объясним выбор технологии вместе с обоснованием. Ознакомьтесь с нашей услугой разработка мобильных приложений и свяжитесь с нами.

Давайте работать вместе

Есть идея проекта? Сделаем это вместе.

WhatsApp