Flutter — комплект средств разработки и фреймворк с открытым исходным кодом для создания мобильных приложений под Android и iOS, веб-приложений, а также настольных приложений под Windows, macOS и Linux с использованием языка программирования Dart, разработанный и развиваемый корпорацией Google.

Flutter
Логотип программы Flutter
Тип фреймворк
Автор Google
Разработчики Google, Jonah Williams[d][2], Adam Barth[d], Greg Spencer[d] и Ян Хиксон
Написана на C++, Dart[3] и Skia Graphics Engine[d]
Первый выпуск 23 октября 2014
Последняя версия
Репозиторий github.com/flutter/flutt…
Лицензия модифицированная лицензия BSD[d]
Сайт flutter.dev (англ.)
Логотип Викисклада Медиафайлы на Викискладе

Первая версия выпущена в 2015 году под названием «Sky», работала только для Android-приложений. Основная заявленная особенность — высокая графическая производительность (возможность отображения 120 кадров в секунду). Полная поддержка создания веб-приложений появилась в версии 2.0 (март 2021 года), с этой же версии реализована поддержка создания настольных приложений для Windows, macOS и Linux и Google Fuchsia (в виртуальной машине Dart с JIT-компилятором).

Из-за ограничений на динамическое выполнение кода в App Store, под iOS Flutter использует AOT-компиляцию[4]. Широко используется такая возможность платформы Dart, как «горячая перезагрузка», когда изменение исходного кода применяется сразу в работающем приложении без необходимости его перезапуска.

Основные составляющие комплекта — платформа Dart, движок Flutter, библиотека Foundation, наборы виджетов и средства разработки (Flutter DevTools).

Движок Flutter написан преимущественно на C++, поддерживает низкоуровневый рендеринг с помощью графической библиотеки Google Skia, имеет возможность взаимодействовать с платформозависимыми SDK под Android и iOS.

Библиотека Foundation[5], написанная на языке Dart, содержит основные классы и методы для создания приложений Flutter и взаимодействия с движком Flutter.

Дизайн пользовательского интерфейса приложений Flutter предполагает использование виджетов, описываемых как неизменяемые объекты какой-либо части пользовательского интерфейса. Все графические объекты, включая текст, формы и анимацию, создаются с помощью виджетов; комбинированием простых виджетов создаются сложные виджеты. С фреймворком поставляется два основных набора виджетов — Material Design (стиль Google) и Cupertino (стиль Apple). При этом создавать приложения Flutter можно и без виджетов, напрямую вызывая методы библиотеки Foundation для работы с канвой.

Примечания править

  1. https://github.com/flutter/flutter/releases/tag/3.19.0
  2. https://github.com/flutter/flutter/graphs/contributors
  3. https://medium.freecodecamp.org/https-medium-com-rahman-sameeha-whats-flutter-an-intro-to-dart-6fc42ba7c4a3
  4. stephenwzl. Flutter’s Compilation Patterns. ProAndroidDev (1 августа 2018). Дата обращения: 22 декабря 2018. Архивировано 9 июня 2020 года.
  5. foundation library - Dart API. docs.flutter.io. Дата обращения: 22 декабря 2018. Архивировано 13 декабря 2017 года.