Кроссплатформенные решения как точка роста для агентств: риски и прогнозы
Статья будет интересна СЕО/руководителям направлений разработки агентств, мобильным разработчикам, а также проджект-менеджерам.
О чем говорили:
- о разнообразии кроссплатформенных фреймворков: о популярности фреймворков и какие из них имеет смысл выбирать;
- о сложностях продаж решений на кроссплатформе;
- о рисках для бизнес-модели.
Какие фреймворки имеет смысл рассматривать?
Четыре основные платформы, которые сейчас доступны: ReactNative, Xamarin, Flutter и Koltin Multiplatform.
Про каждую их них расскажем подробнее, чтобы стало понятно, что мы используем в InstaDev и почему.
ReactNative — один из наиболее известных и популярных фреймворков среди кроссплатформенных. Он основан на JavaScript. Это была попытка разработчиков каким-то образом получить присутствие в мобильных приложениях.
Плюсы:
- Предоставляет доступ к одной из крупнейших в мире экосистем пакетов.
- Обладает крупным сообществом разработчиков. Он давно существует, много компонентов сделано, и они достаточно просто встраиваются.
- Имеет функцию FastRefresh, позволяющую ускорить процесс внедрения изменений в код приложения, запущенного на устройстве или эмуляторе. Это сильно упрощает процесс разработки.
Минусы:
- Обновление версии используемого фреймворка в большинстве случаев является сложным процессом. Большие релизы платформы сильно отличаются, и часто бывает плохая совместимость с предыдущими версиями. Любое обновление старых версий вызывает сложности, иногда не совместимые со смыслом введения этих изменений.
- Может давать меньшую производительность по сравнению, например, с фреймворком Flutter.
- Все крупные компании (Google, Яндекс, Ozon) уже приучили пользователей, что приложения должны быть идеальными. Достичь идеала здесь не всегда возможно, потому что это веб-страница.
Изначально, когда ReactNative только появился, это было прорывным решением. У всех уже есть веб-сайты, они написаны на JavaScript, многие — в ReactJS. Идея была такая: давайте возьмём эту базу и получим приложение, которое всю бизнес-логику заберет с сайта.
На старте это сильно помогало разработке. Поэтому многие и пришли.
Xamarin — это фреймворк Microsoft, тоже достаточно старый. На нем есть крупные вендоры, которые изначально с ним работали в России и продолжают это делать.
Его достоинство — это C#, ориентированное больше для энтерпрайз клиентов, у которых все написано на C#, и они хотят использовать тот же язык и ту же команду, чтобы развивать свои мобильные направления.
Плюсы:
- Потенциально может обеспечить производительность как при нативном подходе.
- Позволяет использовать единую кодовую базу для пользовательского интерфейса на основе Xamarin. Forms.
- Имеет функцию XAML Hot Reload для внедрения изменений в пользовательский интерфейс приложения «на лету» (без необходимости повторной сборки всего приложения).
Минусы:
- Требует дополнительных финансовых затрат для профессионального и корпоративного использования (UI-киты платные и т. д.). Не так развита open-source история, и часто приходится что-то делать, чтобы было удобно или красиво. Придется покупать компоненты, а это не всегда бюджетно.
- Не рекомендуется к использованию при создании сложного пользовательского интерфейса (применение нативного подхода предпочтительнее). Свой UI-кит не такой крутой, как нативный. Компоненты UI делать сложно, и получается «каша»: вроде у вас кроссплатформа, а внутри много нативного кода, и программисту придется долго разбираться во всем.
- Не поддерживает Web.
Flutter — один из последних вышедших фреймворков. Он предназначен для разработки приложений на Android, iOS, Linux, Mac, Windows, Google Fuchsia и Web с использованием единой кодовой базы.
Первый выпуск стабильной версии состоялся в 2018 году компанией Google. С тех пор уже вышло три стабильных версии.
Плюсы:
- Позволяет создавать унифицированный интерфейс для всех целевых платформ при помощи собственной библиотеки графических компонентов. Нет привязки к системному интерфейсу, и все, что вы делаете, будет одинаково выглядеть на всех платформах. Этого нельзя сказать, например, про Xamarin.
- Имеет функцию Hot Reload, позволяющую вносить быстрые изменения в код запущенного приложения.
- Для разработчиков представлена отличная документация по использованию фреймворка. Количество компонентов постоянно растет.
- Находится на высоком уровне в рейтинге наиболее «любимых» фреймворков среди разработчиков согласно опросу от Stack Overflow за 2022 год, в котором приняло участие около 70 тысяч разработчиков.