Flutter: история успеха

b7baec24267881c7a754f38569cbfbb4.jpg

Кроссплатформенный фреймворк 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.

5b6bbb3fd1236e0301458323d6aaf05b.jpg

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 поддержкой мобильных и веб-платформ. 

1b669b1c770167f231988e425f3ec1b8.jpg

Через год с 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. Появилась возможность размещать рекламу от посредников.

e63348b14210a3eec2bc7d22c548357d.jpg

В 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 

  1. Документация Flutter — официальная страница фреймворка с актуальной информацией.

  2. Официальный youtube-канал Flutter — видео разработчиков из команды фреймворка.

  3. GitHub-репозиторий Flutter — облачная платформа для хостинга IT-проектов на Flutter и совместной разработки.

  4. Документация Dart — официальная страница языка программирования.

  5. Сообщество Flutter на Medium — большое англоязычное сообщество Flutter-разработчиков.

  6. Dart&Flutter — телеграм-чат про Dart. 

© Habrahabr.ru