Flutter или Apache Cordova: какую технологию выбрать
Apache Cordova и Flutter – наиболее популярные кроссплатформенные технологии в 2021 году. В статье мы сравним их по разным параметрам и поможем вам выбрать лучший фреймворк для разработки приложения.
В этой статье разбираем: Flutter vs Cordova — что выбрать в 2025 году для кроссплатформенной разработки и почему. Если вам интересно сравнение Flutter c Ionic, то в нашем блоге поможем выбрать и из этих двух фреймворков.
Apache Cordova vs Flutter: сравнение подходов
Один из популярных поисковых запросов — apache cordova vs flutter. Мы детально сравнили эти технологии по производительности, UI и удобству поддержки.
Фреймворк 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 хорошо работают на мощных смартфонах, но на более дешевых моделях производительность падает. Это связано с тем, что технология Cordova использует WebView для отображения интерфейса, что сказывается на производительности.
В то же время Flutter работает через собственный рендеринг, а доступность нативных компонентов по умолчанию исключает потребность в связующем звене между модулями. Это гарантированно обеспечивает плавную работу приложения даже на более старых устройствах. Если сравнивать Cordova Flutter на примере реальных кейсов, 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 написало множество бесплатных плагинов и модулей, но в последнее время популярность технологии всё равно падает. Разработка на Apache Cordova может быть оправдана в проектах с ограниченным бюджетом и простыми UI.
Хотя Apache Cordova остаётся актуальной технологией, для современных задач чаще выбирают Flutter. Flutter — более новая технология, которая работает на собственном языке программирования. Некоторых разработчиков может оттолкнуть необходимость изучать новый язык, однако изучив Flutter разработчик откроет для себя возможность творить с помощью современного, мощного кроссплатформенного фреймворка с высококлассными инструментами тестирования и отладки. При этом популярность Flutter только растёт.
Преимущества Flutter по сравнению с Cordova
В паре Cordova vs Flutter, Flutter проигрывает в скорости анимаций, отзывчивости UI и опыте пользователя. Общая производительность и возможности для тестирования приложений также лучше у Flutter.
У Surf самая большая в России команда разработчиков на Flutter. Мы реализовали на этом фреймворке успешные проекты для банков, фудтеха, e-commerce-приложения. Если вы хотите разработать приложение на Flutter, напишите нам и мы свяжемся с вами в течение суток.