Содержание:
Что такое кроссплатформенная и нативная разработка?
Рассмотрим три основных варианта разработки приложений.
PWA — это технология, которая трансформирует веб-сайт в мобильное приложение. PWA позволяет открывать приложение с помощью мобильного браузера.
Нативная разработка позволяет создавать приложения только для одной ОС — отдельно для iOS, Android и других. Разработка осуществляется строго на нативном языке программирования ОС. К примеру, в iOS применяются языки Swift/Objective-C, в Android — Java/Kotlin. При выборе нативной разработки придется поддерживать минимум две платформы раздельно. Нативное приложение будет работать только на «своей» платформе. Один код — одна ОС.
Кроссплатформенная разработка, ее также называют мультиплатформенной. В этом случае используется единая кодовая база, которая подойдет для разных платформ, будь то Android, iOS, Windows, macOS, Linux. Технология может применяться даже в умных часах или для программирования бытовой техники.
Различия кроссплатформенной и нативной разработки
Нативная разработка однозначно проигрывает мультиплатформенной с точки зрения финансовых затрат. Ведь для нее нужно практически задвоить все процессы. Разные логика предметной области, кодовая база и технологический стек ведут к:
-
увеличению штата программистов (команды под Android и IOS);
-
увеличению затрат на создание двух приложений для каждой ОС;
-
увеличению затрат на дальнейшую поддержку приложений.
Когда стоит применять мультиплатформенную разработку?
У кроссплатформенных фреймворков нет ограничений для реализации функций в мобильном приложении. И есть и объективные причины для использования кросс-платформенной разработки:
-
Когда нужно быстро сделать MVP. При создании минимально жизнеспособного продукта (MVP) и тестировании гипотез кроссплатформенная разработка экономичнее и быстрее реализуема.
-
Когда ресурсы ограничены. С кроссплатформенной разработкой не придется привлекать две команды разработчиков для разных ОС.
Но есть и случаи, когда нативная разработка может оказаться предпочтительнее. Однако это не означает, что применение нативной разработки всегда менее целесообразно. В некоторых ситуациях стоит выбрать именно ее:
-
Когда важна максимальная производительность приложения без использования промежуточных библиотек. Это возможно только в нативной среде.
-
Когда нужно создать приложение с минимальным объемом. Нативная разработка позволяет добиться компактности.
Читайте также:
Разработка мобильного приложения: как создать прототип и зачем нужен MVP
7 шагов к организации разработки в IT-компании
12 шагов к успешному запуску детского приложения
Лучшие кроссплатформенные фреймворки для приложений
Разберем четыре самые популярные кроссплатформенные технологии и выделим их особенности.
- Xamarin
Это платформа с открытым исходным кодом для разработки приложений высокой производительности для iOS, Android и Windows с .NET. Xamarin позволяет использовать не менее 90% кода приложения без изменений на разных платформах. Можно написать бизнес-логику на одном языке и при этом получить интерфейс, поведение, характеристики производительности, свойственные необходимой операционной системе.
- React Native
Разработан Facebook для поддержки таких платформ, как iOS, macOS, Apple tvOS, Android, Android TV, Web, Windows и UWP. Технология дает возможность работать с библиотекой React вне браузера для создания нативных приложений, имеющих полный доступ к системным API-платформам.
- Kotlin Multiplatform Mobile
Позволяет использовать единый исходный код для логики предметной области приложений Android и iOS. Специфичный для платформы код потребуется только в определенных моментах (при работе со специфичными для платформы API или для разработки собственного пользовательского интерфейса).
- Flutter
Фреймворк разработан Google и постоянно обновляется. При том, что технология использует один код для двух ОС, для конечного пользователя приложение не отличается от нативного. Таким образом, Flutter совмещает в себе преимущества кроссплатформенного и нативного подходов, что уже оценили многие крупные компании. Свой выбор в пользу данной технологии сделали Alibaba, Philips Hue, Hamilton, Tencent, Grab, Groupon, ГК «Дикси», «Яндекс.Драйв» и другие мировые и российские компании.
Сравнительная таблица кроссплатформенных фреймворков, по данным на январь 2021
Команда Friflex успела поработать и оценить все фреймворки. Опираясь на богатый опыт, мы выбрали Flutter, который постоянно развивается и предлагает новые функции и разработчику, и бизнесу.
Google активно работает над фреймворком и постоянно его обновляет: в марте 2021 года компания представила обновленную версию Flutter 2. Согласно исследованию Statista, в 2020 году Flutter использовали 39% мировых девелоперов, в 2021 показатель составил 42%, сместив React Native на второе место. Такой рост популярности обусловлен высокой скоростью написания кода.
Опрос на портале Stackoverflow показал, что Flutter входит в тройку любимых фреймворков разработчиков. Пользователи GitHub (крупнейшего сервиса для хранения исходного кода) также положительно оценили Flutter. На данный момент у фреймворка уже 128 тыс. звезд.
Данные сайта insights.stackoverflow.com
Преимущества кроссплатформенной разработки приложений
К преимуществам кроссплатформенной разработки относят скорость разработки (она выше) и стоимость разработки (она ниже). Расскажем о преимуществах на примере фреймворка Flutter:
-
как мы уже говорили, мультиплатформенная разработка быстрее и экономичнее. Опыт показал, что экономия времени на разработку приложения составляет до 40% по сравнению с нативной;
-
скорость Flutter выше, чем у других фреймворков: частота работы — частота обновления экрана близка к 60 FPS (количество кадров в секунду);
-
Flutter позволяет быстрее выйти на рынок с готовым или минимально жизнеспособным продуктом;
-
экономия на штате программистов — достаточно одной команды;
-
высокое качество кода благодаря детальному code review (проверка кода на предмет ошибок и неправильных архитектурных решений). Так как команда программистов Flutter работает с единой кодовой базой, все члены максимально погружены и разбираются в проекте;
-
довольно простое масштабирование разработки in-house и через подрядчиков. Можно создать библиотеку-компонент для приложений бренда;
-
неограниченность в создании функционала и интерфейса приложения;
-
низкие затраты на ликвидацию ошибок и обновления;
-
каждый программист может ознакомиться с исходным кодом Flutter и даже внести вклад в его развитие;
-
в Flutter используется собственный высокопроизводительный движок рендеринга для рисования виджетов без зависимости от нативных элементов;
-
нет необходимости синхронизировать создание Android- и iOS-приложения и тратить дополнительные ресурсы на менеджмент разработки. В нативном подходе, как правило, разработка на одной из платформ идет быстрее;
-
Flutter имеет только один слой написанный на C/C++, что позволяет добиться производительности очень близкой к нативной.
Google Trends подтверждает растущий интерес к фреймворку Flutter, это видно из сравнительного графика ниже.
Данные сайта trends.google.ru
Flutter используется разработчиками по всему миру. А благодаря сокращению времени разработки кода, увеличению скорости вывода продукта на рынок, производительности, близкой к нативной, и другим преимуществам, нет сомнений, что Flutter будет развиваться и доминировать на рынке в ближайшем десятилетии.
Фото на обложке: Monstar Studio/shutterstock.com