Еще в недавнем прошлом многие были уверены, что кроссплатформенная мобильная разработка никогда не достигнет уровня нативных решений в плане производительности, опыта пользования и разработки. Но в последние годы кроссплатформенная разработка достигла небывалых высот.
Идет 2021 год. Нативные языки для разработки Java/Kotlin ( Android) и Objective-C/Swift (iOS). Они поддерживаются компаниями-владельцами платформ: Google и Apple. И у разработчиков есть доступ ко всем ресурсам и «фишкам» платформ. Одним из существенных минусов нативной разработки является, конечно, стоимость. Ведь придется поддерживать две разные платформы. Сюда же прибавим временные затраты.
Эти проблемы легко решает кроссплатформенная разработка.
Xamarin
Фреймворк 2011 года. Носит название компании-разработчика, которая была приобретена в 2016 году компанией Microsoft. Создан для тех, кто кодит на С#. Позволяет при желании совместить кроссплатформенный код с частью нативных решений.
Плюсы:
- Официальная поддержка от Microsoft.
- Стоимость разработки и дальнейшая поддержка может сокращаться.
- Содержит встроенные инструменты для тестирования, что значительно упрощает ручное тестирование на каждой из платформ.
Минусы:
- Необходимы навыки работы с нативными решениями. Дело в том, что Xamarin-библиотеки зачастую не покрывают весь необходимый функционал. Бывает, что библиотека устаревает, а обновления нет.
Данное решение вполне привлекательно на первый взгляд. Но стоит учесть, что в проектах с длительной поддержкой это будет неудобно, так как все равно будет необходимо переводить в нативную разработку.
Kotlin Multiplatform
Самое молодое решение, разработанное компанией JetBrains (они же создатели языка Kotlin, который является официальным языком для разработки под Android). В концепции это не фреймворк для создания кроссплатформенных приложений, а именно SDK, позволяющий создавать модули с единой кодовой базой, которые впоследствии подключаются к нативным приложениям.
Плюсы:
- Большая часть Android-разработки уже ведётся на Kotlin, а язык очень похож на Swift.
- Платформа идеальна в случае, если уже есть рабочее приложение. Можно объединить части и получить значительное упрощение процесса поддержки и развития.
Минусы:
- Необходимо понимать, что для обучения понадобится время. Не любая команда способна быстро справится с данным решением.
- Если речь о разработке приложения «с нуля», лучше обратить внимание на Flutter.
Flutter
Самый быстроразвивающийся фреймворк. Он был представлен в 2017 году компанией Google.
Плюсы:
- Язык очень похож на Java. И для основной части разработчиков не представляет особой сложности.
- На сайте фреймворка представлена простая инструкция, что значительно упрощает знакомство.
- С его помощью создаётся единый UI (с помощью декларативного подхода) для обеих платформ. И тут не будет ограничений по кастомизации нативных UI-компонентов. Виджеты неотличимы от нативных компонентов. Благодаря этому можно получить отличный пользовательский опыт от приложения. И даже мысли не возникнет, что приложение разработано с использованием какого-либо кроссплатформенного фреймворка.
- На сегодняшний день единственный способ разработки под мифическую Fuchsia OS от Google. И когда наступит роковой день выхода — вы уже будете к этому готовы.
- Нет привычного разделения на условные Activity и Fragment. Всё, что мы видим перед собой — это виджет. Мы создаем другие виджеты, складывая их вместе. Это очень просто и перспективно.
Минусы:
- Все еще есть необходимость взаимодействия с нативными компонентами.
- Возможны сложности с кодогенерацией, работы с Media и JSON. Но стоит упомянуть, что фейворк активно развивается. А, значит, все впереди.
Резюмируем:
Нативные решения были, есть и будут. Но и кроссплатформенная разработка набирает обороты, позволяя экономит 25-30% времени. Выбор всегда за вами.
Ну а мы всегда рядом. Вне зависимости от вашего решения. И поможем достичь вершин Apple Store и Google Play: https://upmob.ru/#rec112584458