Оглавление

    Flutter или Ionic: какую технологию выбрать

    Мы создаём мобильные приложения более 13 лет и разбираемся в технологиях для разработки приложений. В этой статье сравним два часто используемых кроссплатформенных фреймворка Flutter и Ionic: их производительность, компоненты и другие аспекты, чтобы ответить на вопрос — какой framework выбрать для разработки вашего проекта.

    Краткий обзор Flutter и Ionic

    Для начала посмотрим на особенности каждой из технологий — начнем с Ionic, а затем расскажем о Flutter.

    Первую версию фреймворка Ionic выпустила в 2013 году компания Drifty Co. Этот фреймворк использует такие распространённые веб-технологии, как JavaScript, HTML и CSS.

    Ionic — это набор средств разработки пользовательского интерфейса (UI) с открытым исходным кодом. Его легко интегрировать с другими библиотеками и фреймворками с открытым исходным кодом, например, с Apache Cordova. Ionic прост в изучении, и у него много сторонников среди разработчиков. На Ionic разработали свои приложения MarketWatch, Diesel, Sworkit и другие.

    Flutter — более новая технология, Google разработал её в 2017 году и продолжает активно развивать. Фреймворк работает на языке программирования Dart, а также использует Swift и Objective C для интеграции с iOS и Java — для Android. Изначально число поклонников Flutter, как наиболее новой кроссплатформенной технологии, было не так велико, как у других аналогичных инструментов. Однако ситуация стремительно меняется. Среди популярных приложений, владельцы которых выбрали Flutter, — Tencent, Stadia, приложение The New York Times и несколько приложений Google.

    Простота в переиспользовании кода

    Основная разница между Flutter и Ionic в том, что у Flutter закрытая экосистема с собственными стандартами. Ionic создан с помощью общедоступных веб-технологий в соответствии с общеизвестными веб-стандартами.

    Так как оба фреймворка — кроссплатформенные технологии, то один и тот же код, написанный на Ionic или Flutter, подходит и для смартфона, и для веб-версии. До недавнего времени у Flutter был ряд ограничений, касающихся развёртывания приложений в интернете. Однако в последних версиях Google это исправил. Тем не менее для веб-приложений многие предпочитают использовать более привычный Ionic. 

    С другой стороны у старых версий Ionic есть проблемы с безопасностью. Как бы то ни было, когда речь заходит о переиспользовании кода между платформами, считается, что с задачей лучше проще и быстрее справляется Flutter, благодаря чему он больше подходит для разработки минимально жизнеспособного продукта (MVP).

    Итог: очевидного победителя нет.

    Тестирование

    Flutter поддерживает Hot Reload — фичу, которая позволяет очень быстро обновлять приложение, как только в код вносятся правки. Это значительно ускоряет отладку и обновление приложений.

    У фреймворка Ionic нет фичи, аналогичной Hot Reload. Для любой правки требуется обновлять всё приложение целиком, что может замедлить скорость разработки.

    Итог: побеждает Flutter.

    Пользовательский опыт и производительность

    Ionic и Flutter не используют нативные UI элементы платформы, на которой работает приложение. Оба фреймворка автоматически обновляют внешний вид своих UI элементов так, чтобы они соответствовали визуальному стилю Android и iOS, а пользователи не замечали разницы. 

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

    Итог: побеждает Flutter.

    Лёгкость изучения

    Благодаря тому, что Ionic создан на основе веб-технологий, разработчикам, которые уже знают JavaScript и CSS, будет легко его освоить. 

    Погружение во Flutter потребует больше времени — начать придётся с изучения языка Dart, который используется только во фреймворке Flutter. Но если разработчик уже знает язык JavaScript или работает с Ionic или React Native, изучение Dart не станет для него сложной задачей.

    Итог: побеждает Ionic.

    Ситуация с поиском разработчиков

    На сегодняшний день Flutter — первый по популярности кроссплатформенный фреймворк среди разработчиков, в то время как Ionic занимает третье место. Согласно исследованиям, процент разработчиков, предпочитающих Flutter остальным фреймворкам вырос с 30% до 42%, в то время как число сторонников Ionic сократилось с 28% до 16%. 

    Итог: побеждает Flutter.

    Подведём итоги

    Учитывая поддержку Google и общий рост популярности, для Flutter будущее выглядит очень радужно. В то же время Ionic, несмотря на некоторый спад спроса, работает на широко известных веб-технологиях, а значит, скорей всего, он сохранит долю сторонников.

    Что лучше подойдёт для вашего проекта?

    • Выбирайте Ionic, если вы уже знаете JavaScript и не готовы тратить время на изучение нового языка.
    • Выбирайте Flutter, если вам нужно приложение для мобильного и десктопного устройства с высокой производительностью или в вашем приложении будет графика и/или анимации.

    У нас самая большая в России команда разработчиков на Flutter. Мы реализовали на этом фреймворке успешные проекты для банков, фудтеха, e-commerce. Если вы хотите разработать приложение на Flutter, напишите нам и мы свяжемся с вами и обсудим ваши задачи.