Нативная или кроссплатформенная разработка: что выбрать

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

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

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

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

Кроссплатформенные приложения обычно работают подобно сайту внутри браузера, поэтому их создают с использованием веб-технологий, таких как HTML, CSS и JavaScript.

Для создания таких приложений существует ряд различных фреймворков, которых с каждым годом становится все больше. Вот самые популярные из них: React Native, Cordova, Ionic, Xamarin, Titanium Appcelerator и Vue Native.

В отличии от нативной, кроссплатформенная разработка позволяет написать один код для iOS и Android, что на первый взгляд существенно сокращает сроки и экономит деньги.

Действительно ли кроссплатформенные приложения дешевле?

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

Но так было не всегда, этому предшествовал длительный процесс.

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

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

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

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

Почему же кроссплатформенные приложения работают медленнее?

На это влияет несколько факторов.

Когда социальная сеть LinkedIn отказалась от кроссплатформенной версии приложения в пользу нативной, Киран Прасад — старший директор по мобильной разработке — прокомментировал ситуацию следующим образом:

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

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

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

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

Это же касается работы с некоторыми API, которые не поддерживают работу с гибридными приложениями.

В итоге кроссплатформенные приложения больше весят и хуже оптимизируются.

Чем может грозить плохая производительность?

По данным исследований, 79% пользователей дадут второй шанс приложению, если он заработало некорректно при первом запуске, но лишь 16% готовы на третью попытку.

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

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

Почему тогда кроссплатформенные решения становятся все популярнее?

Существует основное заблуждение, которое и подталкивает к выбору кроссплатформенной разработки — якобы приложение должно быть одновременно доступно на iOS и Android.

Возьмем, например, Instagram — одно из самых популярных на сегодняшний день приложений. В 2010 году в разделе часто задаваемых вопросов представители компании заявили: «В настоящее время мы работаем над тем, чтобы сделать версию для iPhone максимально стабильной. Только после этого мы рассмотрим другие платформы». Instagram потребовалось два года, чтобы выпустить версию для Android.

Кстати, мы уже рассказывали, почему мобильные приложения в первую очередь разрабатываются для iOS, и в каких случаях рекомендуется начинать с Android.

Человеческий фактор, о котором не принято говорить

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

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

Как мы уже писали выше, кроссплатформенных решений очень много, и все они между собой соревнуются за звание лучшего. Сейчас это бесспорно React Native, но существует мнение, что скоро первенство перейдет Vue Native. Если это действительно произойдет, то поддерживать код на React Native со временем будет все сложнее. В случае с нативным подходом фрагментация намного ниже, новые технологии внедряются постепенно, поэтому обычно мобильные разработчики знают сразу несколько языков.

Что же выбрать?

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

На данном сайте собираются метаданные пользователя (cookie, данные об IP-адресе и местоположении) для функционирования сайта. Если Вы не хотите чтобы эти данные обрабатывались, то должны покинуть сайт

Заявка
на сотрудничество

Как вас зовут? Заполните это поле
Адрес электронной почты Неверный формат почты
Телефон для связи Заполните это поле
Нажимая на кнопку «Отправить заявку»,
я даю согласие на обработку персональных данных