Колонки

Кроссплатформенная и нативная разработка мобильных приложений в 2021 году

Колонки
Петр Чернышев
Петр Чернышев

CEO компании по разработке ИТ-решений FriFlex

Ирина Печёрская

В мире более пяти миллиардов смартфонов. Из них около 85% работают на Android, остальные 15% — на iOS, по данным IDC. Казалось бы, выгоднее разработать нативное приложение для Android? Но не все так однозначно, и всегда жаль терять одну из аудиторий.

Чтобы оптимизировать процесс и не программировать мобильное приложение для каждой из операционных систем, можно прибегнуть к кроссплатформенной разработке. В ее основе лежит единый исходный код и стек технологий.

Петр Чернышев, CEO Friflex, компании, которая специализируется на разработке кроссплатформенных приложений, объясняет, что эти технологии дают бизнесу и почему лучше выбирать Flutter.

Кроссплатформенная и нативная разработка мобильных приложений в 2021 году

Расскажи, как цифровая трансформация изменила твой бизнес

Стань лауреатом RB Digital Awards 2022

Содержание:

 

Что такое кроссплатформенная и нативная разработка?

Рассмотрим три основных варианта разработки приложений.

PWA — это технология, которая трансформирует веб-сайт в мобильное приложение. PWA позволяет открывать приложение с помощью мобильного браузера.

Нативная разработка позволяет создавать приложения только для одной ОС — отдельно для iOS, Android и других. Разработка осуществляется строго на нативном языке программирования ОС. К примеру, в iOS применяются языки Swift/Objective-C, в Android — Java/Kotlin. При выборе нативной разработки придется поддерживать минимум две платформы раздельно. Нативное приложение будет работать только на «своей» платформе. Один код — одна ОС. 

Кроссплатформенная  разработка, ее также называют мультиплатформенной. В этом случае используется единая кодовая база, которая подойдет для разных платформ, будь то Android, iOS, Windows, macOS, Linux. Технология может применяться даже в умных часах или для программирования бытовой техники. 

 

Различия кроссплатформенной и нативной разработки

Нативная разработка однозначно проигрывает мультиплатформенной с точки зрения финансовых затрат. Ведь для нее нужно практически задвоить все процессы. Разные логика предметной области, кодовая база и технологический стек ведут к:

  • увеличению штата программистов (команды под Android и IOS);
  • увеличению затрат на создание двух приложений для каждой ОС;
  • увеличению затрат на дальнейшую поддержку приложений.

 

Когда стоит применять мультиплатформенную разработку?

У кроссплатформенных фреймворков нет ограничений для реализации функций в мобильном приложении. И есть и объективные причины для использования кросс-платформенной разработки:

  1. Когда нужно быстро сделать MVP. При создании минимально жизнеспособного продукта (MVP) и тестировании гипотез кроссплатформенная разработка экономичнее и быстрее реализуема.
  2. Когда ресурсы ограничены. С кроссплатформенной разработкой не придется привлекать две команды разработчиков для разных ОС.

Но есть и случаи, когда нативная разработка может оказаться предпочтительнее. Однако это не означает, что применение нативной разработки всегда менее целесообразно. В некоторых ситуациях стоит выбрать именно ее:

  1. Когда важна максимальная производительность приложения без использования промежуточных библиотек. Это возможно только в нативной среде.
  2. Когда нужно создать приложение с минимальным объемом. Нативная разработка позволяет добиться компактности.
Если для мобильного приложения имеет принципиальное значение использование новейших функций платформ. В нативных языках они появляются сразу в день релиза, в мультиплатформенных — через какое-то время. 

 


Таблица критериев


Читайте также:
Разработка мобильного приложения: как создать прототип и зачем нужен 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

Нашли опечатку? Выделите текст и нажмите Ctrl + Enter

Материалы по теме

  1. 1 Эксперт объяснил, как полностью удалить переписку в мессенджере
  2. 2 Девять эффективных моделей подписки, которыми уже пользуются популярные бренды
  3. 3 Работа над инновационным продуктом за пять шагов
  4. 4 Инструменты для автоматизации работы общепита: полный список
  5. 5 Начинать разработку IT-продукта с ТЗ — устаревший подход. Как действовать правильно?
AgroCode Hub
Последние новости, актуальные события и нетворкинг в AgroTech-комьюнити — AgroCode Hub
Присоединяйся!