Чтобы иметь возможность охватить большее количество целевой аудитории брендам сегодня так или иначе приходится задействовать мобильные устройства, так как мобильные приложения становятся с каждым годом популярнее десктопных программ. Бизнесу важно быть представленным на двух самых распространенных мобильных платформах: iOS и Android.
Исторически сложилось два подхода в разработке мобильных приложений: нативный и кроссплатформенный. Второй подход обладает множеством достоинств, так как позволяет охватить аудиторию сразу двух мобильных платформ: iOS и Аndroid. При этом, подход не лишен и недостатков. Разбираем, что представляет собой кроссплатформенная мобильная разработка, ее особенности, инструменты и языки программирования, а также все «за» и «против» использования этого подхода.
В 2007 году был выпущен первый iPhone и все было относительно просто. При разработке мобильных приложений не было необходимости думать об их совместимости между несколькими платформами.
Затем появились смартфоны, работающие на Android, Symbian, BlackBerry и других операционных системах. Время и стоимость разработки приложений стали значительно увеличиваться — в какой-то момент это привело появлению нового, кроссплатформенного подхода в разработке.
Кроссплатформенная разработка — это процесс, при котором создается одно мобильное приложение под две платформы: iOS и Android.
Разработчики пишут код, который можно использовать на разных платформах, не опасаясь проблем несовместимости: общая кодовая база транслируется на операционную систему через специальную прослойку. Такой подход считается более универсальным, так как позволяет сэкономить деньги, время на разработку и запуск приложения.
Разработка кроссплатформенных приложений — услуга, спрос на которую растет с каждым днем, а с ним растет и предложение различных инструментов для ее реализации. Сейчас к наиболее популярным кроссплатформенным фреймворкам можно отнести:
Это набор средств разработки, разработанный и развиваемый корпорацией Google. Он может использоваться для создания мобильных приложений под iOS и Android, веб-приложений, а также настольных приложений под Windows, macOS и Linux.
В 2021 году он занял лидирующую позицию среди всех инструментов кроссплатформенной разработки.
Это фреймворк с открытым исходным кодом, созданный Facebook Inc.
С его помощью можно разрабатывать мобильные приложения, схожие с нативными и для iOS и для Android, а также настольные приложения.
В 2020 году именно React Native пользовался наибольшим спросом, а в 2021 переместился на второе место по популярности среди фреймворков кроссплатформенной разработки.
Это платформа с открытым исходным кодом, предназначенная для построения современных производительных приложений для iOS, Android и Windows с .NET. Обеспечивает управление взаимодействием между общим кодом и кодом базовой платформы.
Благодаря Xamarin в среднем 90% кода приложения может использоваться без изменений на разных платформах. Разработчики пишут код пользовательского интерфейса для Android с помощью Xamarin.Android и для iOS с использованием Xamarin.iOS. Затем на С# разрабатывается бизнес-логика, которая может применяться на обеих платформах.
По данным на 2021 год Xamarin занимал пятое место по популярности среди всех кроссплатформенных фреймворков.
Кроссплатформенное приложение дает возможность привлечь одновременно пользователей как из AppStore, так и из GooglePlay;
Разрабатывается одно приложение сразу под две платформы: и iOS, и Android. Вы быстрее сможете выйти на рынок и проанализировать фидбэк от пользователей с обеих платформ. Это актуально для тестирования гипотез и запуска проектов, в которых целевая аудитория не изучена на 100%.
Представьте, что вы покупаете смартфон, но пользоваться им можете только на территории своей страны, а для того чтобы совершать звонки за рубежом — вам нужен еще один смартфон, но уже другой. Вместо того, чтобы платить дважды — выгоднее купить один смартфон, но такой, который будет решать все ваши задачи. Аналогично с кроссплатформенными подходом: он позволяет сэкономить на разработке, исправлении ошибок и добавлении нового функционала, так как разрабатывается одно приложение вместо двух.
Кроссплатформенная разработка мобильных приложений, на первый взгляд, может показаться идеальным решением, но и у нее есть свои минусы и ограничения.
Кроссплатформенные фреймворки менее гибкие по отношению к нативным способам разработки: обеспечивают меньшую степень интеграции с устройствами и операционными системами.
При прочих равных кроссплатформенные приложения будут менее производительными по отношению к нативным, так как кроссплатформенная среда является, по сути, «надстройкой» над кодом, что может вызывать задержки в обработке данных. Например, для создания игры с большим количеством анимаций и 3d-графики такой подход вряд ли подойдет.
Приводят к сложностям в реализации того или иного функционала: встроенных покупок, сервисов геолокации, работы с фото и другими.
Разработка мобильного приложения на Android может существенно отличаться от разработки под iOS. У каждой из этих операционных систем собственные требования к дизайну элементов интерфейса, некоторые из которых противоречат друг-другу.
Именно поэтому написать один универсальный код иногда гораздо сложнее, чем нативный.
Механизм проверки и требования App Store и Google Play Store отличаются и это может создавать дополнительные проблемы и увеличивать время необходимое на публикацию в сторах, а соответственно и запуск проекта.
Осуществлять поддержку кроссплатформенного кода сложнее, чем нативного. В каждой новой версии операционной системы смартфона появляются новые возможности, но реализовать их в приложении получится не раньше, чем вам позволит это фреймворк.
При возникновении вопросов программист всегда может обратиться за помощью к коллега. Но в случае с кроссплатформой проблему зачастую приходится решать самостоятельно, так как комьюнити здесь значительно меньше, а значит, работа над задачей может усложниться.
Выбор подхода в разработке мобильного приложения зависит от поставленных задач и существующих ресурсов. Создание кроссплатформенных приложений имеет как свои преимущества, так и недостатки, но сформулировать общие рекомендации можно.
Кроссплатформенные мобильные приложения быстрее разрабатываются и стоят дешевле, они подойдут, если:
В остальных случаях лучшим вариантом будет обратить внимание на нативную разработку, когда под каждую операционную систему будет создаваться отдельное мобильное приложение под ключ.