ТОП-5 технологий в кроссплатформенной мобильной разработке
Сегодня мобильная разработка является неотъемлемой частью любого приложения. Прогнозируется, что число пользователей мобильных телефонов в 2023 году во всем мире вырастет до 4,3 млрд человек, что значительно увеличит процент скачиваний приложений. В данной подборке Олег Иванов, руководитель группы мобильной разработки компании «Рексофт», выделил наиболее популярные технологии для кроссплатформенной мобильной разработки.
Кроссплатформенная разработка – это процесс, при котором создается программный продукт, способный работать на нескольких операционных системах. По данным Statcounter на май 2022 года, 71,4% мирового рынка мобильных устройств занимал Android, 27,85% — iOS. Некоторые из технологий нашего обзора могут также использоваться как для десктопных ОС (Windows, Unix, Mac), так и для других мобильных ОС (Sailfish, Аврора и т.д.). Технологии идут в порядке новизны.
Kotlin Multiplatform Mobile (KMM) – это кроссплатформенная технология от создателей Kotlin, позволяющая выносить часть общего кода приложения для Android и iOS.
Альфа-версия KMM вышла в августе 2020 года и активно развивается.
KMM позволяет писать кроссплатформенный код, который можно запускать под Android и iOS. В основном с ее помощью выносится код бизнес-логики. Согласно статистике, в крупных проектах более 60% кода не привязано к платформе. Слой представлений, репозитории пишутся платформозависимым. При должном опыте, хорошем знании архитектуры, паттернов и ООП (объектно-ориентированного программирования) можно вынести часть кода и из других слоёв. Количество библиотек KMM постоянно растёт, например, появились библиотеки для работы с базами данных, работы с жизненным циклом компонентов (как в Android, так и в iOS), упрощающие работу над приложением и улучшающие качество кода. При использовании KMM предстоит работать с нативным UI операционной системы.
Этой технологией пользуются в таких компаниях как Netflix, Philips, Яндекс.
Кроссплатформенная часть и Android разрабатывается на Kotlin/Native, iOS – на Objective C/Swift.
Flutter – фреймворк от компании Google, который призван создать приложение сразу под несколько платформ. При определённой сложности задач всё же требуется дописать часть кода отдельно для каждой платформы.
Релиз первой версии Flutter состоялся в 2018 году.
В случае с Flutter у разработчика нет возможности пользоваться привычными библиотеками и инструментами, так как языки, используемые при разработке во Flutter, отличаются от тех, что принято использовать в нативной мобильной разработке.
По сути код, написанный с помощью Flutter, встраивается в нативное приложение. Для UI используется собственный графический движок виртуальной машины Dart-а. В таком подходе есть как плюсы, так и минусы.
На данный момент не все возможности платформ можно реализовать с помощью Flutter, но постепенно, появляется всё больше библиотек для работы с нативными компонентами. Например, работу с аппаратными возможностями часто приходится реализовывать на уровне ОС. Особенно это актуально при выходе новой версии ОС, с новыми возможностями.
Этой технологией пользуются в таких компаниях как Alibaba, KFC, eBay, NuBank, Росбанк, Дикси.
Среди используемых языков: Dart и JavaScript.
React Native – фреймворк от компании Facebook*, также нацеленный на создание единого приложения под несколько ОС. Для интеграции с нативными модулями может потребоваться помощь разработчиков, специализирующиеся на каждой из платформ.
React Native был выпущен в 2015 году компанией Facebook*. Он основан на библиотеке JavaScript – React. Эта технологии довольно старая, по сравнению с KMM и Flutter, но всё же пользуется популярностью как у заказчиков, так и у разработчиков.
React Native взаимодействует с системой через так называемый «мост», который передаёт указания главному потоку. Мост негативно влияет на скорость работы приложения. Правда, сейчас от него уходят в сторону JSI (JavaScript Interface), который обладает большей производительностью.
Если говорить про Flutter и React Native, то последний существует дольше. В связи с этим RN имеет гораздо большее число пакетов. Компоненты фреймворка более адаптивны к конкретной ОС, хотя их количество меньше, чем во Flutter.
Этой технологией пользуются в таких компаниях как Microsoft, Uber, Facebook*, Skype, Discord.
Среди используемых языков: JavaScript.
Прогрессивное веб-приложение. Данная технология была создана компанией Microsoft ещё в 2000 году, но широкую известность стала приобретать в 2015 году, благодаря расширению возможностей Google Chrome, в частности (Service Worker и Web App Manifest). В 2018 году в iOS 11.3 появилась поддержка Service Worker в мобильной версии Safari.
Service Worker – это JavaScript-файл, работающий в фоне, как автономный сервис. По сути, PWA — это некое объединение браузера и нативного приложения.
Из преимуществ: работа в оффлайн, малый вес, быстрый запуск, удалённое обновление, возможность установки без Google Play и App Store. При этом есть возможность установить ярлык на домашнем экране, UI/UX приближен к ОС.
C 2019 года такие приложения можно добавлять в Google Play и App Store.
К недостаткам можно отнести: проблемы взаимодействия с ОС (хранит файлы размером не более 50 Мб, нет доступа ко многим сервисам Apple, Siri, поддержка только с версии 11.3, проблемы с уведомлениями), нет полного доступа к аппаратным возможностям ОС (есть проблемы с Bluetooth, контактами, календарем), ограниченная работа в офлайне, низкая производительность.
Этой технологией пользуются в таких компаниях как Microsoft, Twitter**, Forbes.
Среди используемых языков: JavaScript.
Xamarin – платформа от независимой компании, которая была выкуплена Microsoft. Она создаёт кроссплатформенные мобильные приложения с .NET. Тем не менее разработка UI ведётся отдельно для каждой ОС.
Была создан в 2011 году. В целом, его популярность идет на убыль. Тем не менее определённая часть программистов продолжает его использовать.
Xamarin выполняется в управляемой среде. В нём есть привязки к базовым SDK для Android и iOS. Xamarin позволяет пользоваться библиотеками, написанными на C, C++, Java, Objective-C. Xamarin основан на реализации платформы .NET – Mono.
Разработка ведётся в Visual Studio, либо Xamarin Studio. Для Visual Studio необходимо покупать лицензию.
Данная платформа обеспечивает неплохую производительность, но есть и свои минусы. Ограниченный доступ к Open Source библиотекам, больший размер приложения.
Этой технологией пользуются в таких компаниях как GitHub, Slack, Trello.
Среди используемых языков: основной C#, допускаются и другие .NET-языки (F#, Visual Basic и т.д.).
* Facebook входит в запрещенную в России корпорацию Meta Platforms.
** Соцсеть Twitter заблокирована на территории РФ.