За обновлениями можно следить в telegram-канале https://t.me/quasiart

За несколько последних лет соотношение популярности популярных платформ особо не изменилось — Android и iOS вместе покрывают 99.3% рынка. 

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

Что такое кроссплатформенное приложение

Идея в том, что приложение пишется на каком-нибудь языке (например, JavaScript), а затем с помощью различных оболочек этот код исполняется и на iOS, и на Android.

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

  • React Native
  • Flutter
  • Cordova
  • Xamarin
  • Ionic

Причина №1: множество хороших нативных библиотек

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

Причина №2: поддержка от Google

Новейшие версии Android SDK доступны сразу как Google публикует их, и не нужно ждать, пока кто-то портирует их (например, как в случае с Xamarin.Android).

Причина №3: помощь сообщества

Stackoverflow содержит огромное количество решений проблем. На момент написания статьи (6 марта 2017) 959,397 вопросов с тегом «Android» и только 20,289 с тегом «Xamarin». И такое соотношение можно наблюдать и на других ресурсах, не посвящённых одной конкретной платформе.

Причина №4: Android Studio

С тех пор как в 2014 году Google перешёл с Eclipse на платформу IntelliJ и предложил Android Studio, эта IDE стала намного лучше.

Причина №5: Время запуска и объём приложения

Вместе с кодом кроссплатформенного приложения запускается среда для его запуска. И если JVM в Android запущена всегда, то среда для запуска кроссплатформенного приложения постоянно запускается заново. Также сама среда исполнения входит в объём приложения.

Время запуска негативно влияет на лояльность пользователей.

Когда писать кроссплатформенные приложения

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

Есть причины, оправдывающие кроссплатформенную разработку.

  • Ограничение бюджета. При прочих равных условиях дешевле нанять одного JavaScript-разработчика, чем двух (Kotlin и Swift).
  • Ограничение ресурсов разработки. Необходимо иметь компетенции в различных языках и платформах. Для разработчика этим является время, а для бизнеса — деньги.
  • Создание прототипа или MVP. С перспективой разработки нативных приложений это может быть даже более предпочтительным вариантом, так как позволяет быстрее показать проект публике. А дальше будет понятнее, что лучше: одно кроссплатформенное приложение или два платформенных.