Flutter или Apache Cordova: какую технологию выбрать
Apache Cordova и Flutter – наиболее популярные кроссплатформенные технологии в 2021 году. В статье мы сравним их по разным параметрам и поможем вам выбрать лучший фреймворк для разработки приложения.
Если вам интересно сравнение Flutter c Ionic, то в нашем блоге поможем выбрать и из этих двух фреймворков.
Краткий обзор технологий
Фреймворк Apache Cordova создала в 2009 году компания Nitobi. Несколько лет спустя её купили Adobe Systems, и Cordova переименовали в PhoneGap. Позднее имя снова сменили на Apache Cordova, так что, по сути, PhoneGap и Cordova – это одна и та же технология. Среди популярных приложений, написанных на Cordova – Untappd, Localeur, SparkChess и другие.
Фреймворк Flutter появился поздней. Первую его версию Google презентовал в 2017 году и продолжает активно развивать эту технологию и сегодня. Приложения, написанные на Flutter – это Google Stadia, Google Ads, Google Ассистент, Baidu, Groupon, Grab и многие другие. В портфолио Surf тоже есть приложения, написанные на Flutter, о них мы рассказываем в наших кейсах.
Принцип работы
Cordova – это фреймворк с открытым исходным кодом, работающий на стандартных веб-технологиях: JavaScript, HTML5 и CSS3. По сути, приложение, написанное на Cordova – это совокупность HTML-страниц в нативной «оболочке» платформы. Благодаря активному сообществу разработчиков и солидному 12-летнему возрасту, у этого фреймворка есть множество бесплатных плагинов.
Flutter – закрытая экосистема, использующая язык программирования Dart. Приложения, написанные на Flutter, состоит из виджетов, своего рода блоков конструктора. Так как Flutter поддерживается Google и у него активное сообщество, уже сейчас для него есть обширная библиотека виджетов. которая всё растёт.
UI
В приложениях на Cordova UI основан на веб-технологиях и запускается в WebView. В результате, у приложения один визуальный стиль, а значит, оно выглядит одинаково на iOS, Android и других платформах. Однако у такого единообразия есть и обратная сторона: приложения на Cordova редко выглядят органично, создают впечатление, что вы открыли веб-сайт внутри приложения.
Flutter не использует нативные UI элементы платформы, однако он автоматически обновляет внешний вид и физические параметры (скорость скроллинга, анимации при касании экрана) в соответствии с визуальным стилем платформы. В результате, при использовании приложений на Flutter создаётся ощущение нативности UI, что очень ценится многими пользователями смартфонов.
Итог: Flutter побеждает.
Производительность
Так как приложения на Cordova запускаются в WebView, они хорошо работают на мощных смартфонах, но на более дешевых моделях производительность падает.
Flutter использует собственный механизм визуализации, а доступность нативных компонентов по умолчанию исключает потребность в связующем звене между модулями. Это гарантированно обеспечивает плавную работу приложения даже на более старых устройствах.
Итог: Flutter побеждает.
Тестирование и отладка
Скорость и простота тестирования оказывают серьезное влияние на time to market вашего приложения. Flutter поддерживает автотесты. Это сокращает время на тестирование и устранение багов и, в целом, повышает качество приложения. Мы реализовали автотесты в одном из наших проектов на Flutter для банков, рассказываем об этом в кейсе. Кроме того, во Flutter есть киллер-фича Hot Reload, которая обновляет элемент приложения, как только в код внесли изменения — в этом случае вам не нужно обновлять приложение целиком.
У Apache Cordova есть несколько удобных инструментов для отладки, но нет таких же функций автоматического анализа кода, как во Flutter. У фреймворка есть инструмент LiveReload: он похож на Hot Reload и помогает сэкономить время на повторной сборке приложения после каждой исправлений в коде.
Итог: Flutter побеждает.
Простота изучения
Flutter использует язык программирования Dart, разработанный Google. Он незнаком большинству разработчиков. Он менее известен, чем, например, JavaScript, который используется ещё в одном популярном кроссплатформенном фреймворке React Native. Но при этом разработчики признают, что Dart очень прост в освоении и удобен для работы — мы рассказали об этом в отдельной статье.
Apache Cordova работает на основе веб-технологий, знакомых почти любому программисту: JavaScript, CCS3 и HTML5. Это существенно ускоряет период, спустя который новые разработчики уже могут начать создавать приложения на Cordova.
Итог: Cordova побеждает.
Развитие
За 12 лет фреймворк Apache Cordova завоевал множество сторонников в сообществе разработчиков и, так как его поддерживает компания Adobe, в ближайшие годы этот фреймворк останется популярным инструментом. Но его популярность из года в год падает, уступая место другим кроссплатформенным технологиям.
По сравнению с Cordova, будущее Flutter выглядит радужнее: технологию поддерживает и продвигает Google, а в 2021 году она заняла первое место по популярности среди кроссплатформенных фреймворков, несмотря на свой относительно юный возраст (данные Statista).
Итог: Flutter побеждает.
Что в итоге
Apache Cordova – зрелый кроссплатформенный фреймворк, работающий на основе веб-технологий. Его легко изучить, так как большинство разработчиков уже знакомы с JavaScript и HTML, а ещё он может стать отличным инструментом для быстрой разработки прототипа или простых приложений.
Однако производительность приложений на Cordova оставляет желать лучшего, а UI не выглядит нативно. Сообщество разработчиков на Cordova написало множество бесплатных плагинов и модулей, но в последнее время популярность технологии всё равно падает.
Flutter – более новая технология, которая работает на собственном языке программирования. Некоторых разработчиков может оттолкнуть необходимость изучать новый язык, однако изучив Flutter разработчик откроет для себя возможность творить с помощью современного, мощного кроссплатформенного фреймворка с высококлассными инструментами тестирования и отладки. При этом популярность Flutter только растёт.
У Surf самая большая в России команда разработчиков на Flutter. Мы реализовали на этом фреймворке успешные проекты для банков, фудтеха, e-commerce-приложения. Если вы хотите разработать приложение на Flutter, напишите нам и мы свяжемся с вами в течение суток.