Кроссплатформенный фреймворк Flutter появился в 2017 году. С тех пор он стал одним из самых популярных инструментов для разработки мобильных приложений. Мы в Friflex работаем с Flutter с первого релиза, следим за его развитием и каждый год проводим большую конференцию о кроссплатформенной разработке — CrossConf. В этой статье вспоминаем историю фреймворка. А еще делимся, как с ним познакомились наши разработчики.
Что такое Flutter
Flutter — фреймворк с открытым исходным кодом. Он позволяет создавать мобильные приложения под Android и iOS, веб-приложения, а также настольные приложения под Windows, macOS и Linux. Разрабатывает и развивает фреймворк компания Google.
У Google нет официальной версии происхождения названия фреймворка. Может быть, оно отсылает к песне группы The Beatles "Paperback Writer". В ней есть строчка "And if you read this, then I'll be flutterin' by", «если ты это читаешь, то я буду рядом». А может, один из разработчиков просто предложил это название, и оно всем понравилось.
В переводе с английского to flutter значит «порхать» или «трепетать». Это отражает основную идею фреймворка — быстрая и плавная работа приложений благодаря анимированным пользовательским интерфейсам.
Как развивался Flutter
2015: Секретный проект Google
Кроссплатформенные фреймворки в 2015 уже были. Но React Native не подходил для проектов с тяжелой и сложной графикой и анимацией. QT Mobile не пользовался популярностью, а Ionic и PhoneGap использовали для визуализации приложений веб-технологии и совсем не применяли нативные компоненты. Такой подход сильно снижал производительность.
Google стремилась найти способ разрабатывать красивые приложения, которые бы без проблем работали и на iOS, и на Android. Компания без промедлений перешла от теории к практике и запустила секретный проект под кодовым названием Sky.
Команда проекта опубликовала Sky SDK и заявила задачу — добиться высокой скорости и уровня интеграции с web. Разработчики планировали, что Sky сможет выдавать картинку с частотой 120 кадров в секунду. Тогда дисплеи смартфонов еще не могли работать с такой скоростью — максимум с 60 кадрами в секунду.
Разработчики показали приложение, которое рисовало кадр за 1,2 миллисекунды. Другим приложениям для этого требовалось 8 миллисекунд.
2017: Flutter выходит из тени
В 2017 году вышла альфа-версия Flutter, пока все еще под именем Sky. Она работала только на Android и была вдохновлена движком Skia. Особенность Skia в том, что он абстрагируется от графических API, специфичных для платформы, и позволяет рисовать сложные элементы интерфейса и любые 2D-сцены со скоростью 60 кадров в секунду.
А еще в 2017 вышел первый коммерческий продукт на Flutter — приложение к бродвейскому мюзиклу «Гамильтон». По словам команды, фреймворк позволилразработать приложение за три месяца.
В приложении можно было просматривать фото и видео, использовать фильтры в стиле «Гамильтона», принимать участие в розыгрыше билетов, покупать товары бренда и петь в караоке песни из мюзикла.
Фанаты «Гамильтона» были в восторгеот приложения. Кстати, оно до сих пор доступно на Androidи iOS.
2018: Flutter 1.0
В 2018 году вышла первая стабильная версия фреймворка — Flutter 1.0. Одной из ключевых характеристик релиза стала скорость загрузки и работы приложения. Разработчики увеличили ее за счет внедрения графического движка Skia 2D.
Еще во Flutter 1.0 появилась знаменитая «горячая перезагрузка». Эта функция автоматически обновляет приложение в браузере при сохранении изменений в исходном коде. Она позволяет разработчикам быстро увидеть результаты изменений. Самостоятельно перезагружать страницу не нужно.
Открытое программное обеспечение позволяет использовать, модифицировать и распространять код в других программах или приложениях. Разработчикам проще понимать, как работает код, когда он у них перед глазами.
2019: Больше платформ
Flutter 1.12стал пятым стабильным релизом после версии 1.0. В нем было использовано 1,905 пул-реквестов от 188 разработчиков.
Команда добавила поддержку веб-технологий в бета-версии. Появились стабильные API для интеграции с Java, Kotlin, Objective-C и Swift. Функция Add-to-Appпозволила интегрировать Flutter в нативные iOS и Android-приложения.
В этом же году на конференции Google I/O New York Times представила KENKEN— одну из самых популярных игр на Flutter c поддержкой мобильных и веб-платформ.
Через год с Flutter познакомился наш Flutter-разработчик Мурат Насиров.
«Flutter-код я впервые увидел в начале 2020 года. Тогда подумал, что это какая-то ни на что не похожая ерунда. Казалось странным использовать классы с множеством вложений других классов, да еще и всего один язык, не считая нативных в некоторых ситуациях.
Начиная свой путь в Android-разработке, я столкнулся с некоторыми нюансами верстки через xml-файлы, хотелось сделать переиспользуемый список элементов. Я поломал какое-то время голову, но так ничего и не получилось. Я снова вспомнил о Flutter. Посмотрел ролики от codeandart main про язык Dart.
После опыта с Java и JavaScript он показался мне простым. Я попробовал написать приложение на Dart. Мне понравилась простота написания интерфейсов. Код верстки — как на ладони, видно, за что отвечает каждый элемент интерфейса.
Flutter Inspector позволяет удобно переключаться на нужный участок кода нажатием на элемент верстки в эмуляторе. Набравшись опыта, я начал искать работу, связанную с Flutter-разработкой», — Мурат Насиров.
2021: Мультиплатформенность и монетизация
В 2021 году команда Google расширила возможности Flutter как мультиплатформенного фреймворка. Версия Flutter 2.8поддерживала шесть платформ: iOS, Android, web, macOS, Windows и Linux.
В релизе появилась возможность монетизировать Flutter-приложения при помощи Google Mobile SDK. Появились пять рекламных форматов: баннеры, полноэкранная реклама, видео, нативная реклама и реклама при запуске приложения. Также Flutter-приложения с этого момента можно было интегрировать с AdMob и Ad Manager. Появилась возможность размещать рекламу от посредников.
В 2021 году на pub.dev любой разработчик уже мог добавить собственный плагин, совместимый с Flutter. На момент выхода релиза 2.8 в репозитории находилось более 20 тысяч пакетов, которые можно было использовать для Flutter-проектов. А еще в это время впервые узнала о Flutter разработчик Friflex Анна Ахлестова.
«В конце 2021 года я пробовала себя в Android-разработке. Друг познакомил меня с Flutter. На меня произвела впечатление возможность разрабатывать продукт сразу под несколько платформ. Я начала изучать язык и фреймворк. Dart показался мне проще, чем Java. И я полностью перешла на сторону Flutter. Потом были часы обучения, первые pet-проекты, поиск работы и собеседования…», — Анна Ахлестова.
2022: Поддержка Windows, macOS, Linux и игры
В релизе Flutter 2.10разработчики сделали акцент на стабильной версии поддержки Windows. Появились улучшения для обработки текста, клавиатуры и сочетаний клавиш, интеграции в Windows с поддержкой аргументов командной строки, глобальным вводом текста и другие.
В Flutter 3появился Flutter Casual Games Tool Kitс шаблонами, учебниками и документацией для разработки казуальных игр. Разработчики показали стартовый шаблон игры с главным меню, страницей настроек, работой со звуком и графикой. Его можно было адаптировать под свою идею.
Casual Games Toolkit поддерживал Apple Game Center и игровые сервисы Google Play. Это значит, что разработчики теперь могли интегрировать в свой проект виджеты этих сервисов, например, таблицу лидеров.
Еще в Flutter 3 появилась стабильная поддержка macOS и Linux.
«Это очень важное обновление: теперь развитие Flutter выйдет далеко за пределы мобильной разработки. После этого не осталось сдерживающих факторов для разработки приложений на Flutter для десктопов», — Юрий Петров, Flutter Team Lead, Friflex.
В последнем релизе 3.19появилась бета-версия Google AI Dart SDK. Она позволяет встраивать в Flutter-приложения функции на основе моделей генеративного ИИ семейства Gemini. Gemini API можно использовать для детального управления анимацией виджетов. Это повышает качество взаимодействия с пользователем. Узнать больше о работе с Google AI Dart SDK можно в кратком руководстве.
Кроме того, релиз 3.19 позволяет разрабатывать приложения для еще одной платформы — Windows Arm64.
Планы на будущее
В 2023 году экосистема Flutter выросла на 26% — до 48 000 пакетов в конце декабря. В январе 2024 годау Pub.dev было более 700 000 активных пользователей в месяц. На этот год у команды разработчиков фреймворка большие планы. Например:
- интеграция AR, чтобы сделать приложения более интерактивным;
- поддержка Flutter-приложений для Fuchsia OS — новой операционной системы от Google;
- пересмотр дизайна UI/UX;
- поддержка производительности.
Что почитать про Flutter
- Документация Flutter— официальная страница фреймворка с актуальной информацией.
- Официальный youtube-канал Flutter— видео разработчиков из команды фреймворка.
- GitHub-репозиторий Flutter— облачная платформа для хостинга IT-проектов на Flutter и совместной разработки.
- Документация Dart— официальная страница языка программирования.
- Сообщество Flutter— большое англоязычное сообщество Flutter-разработчиков.
- Dart&Flutter— телеграм-чат про Dart.