Флаттер (программное обеспечение)
![]() | |
Оригинальный автор(ы) | |
---|---|
Разработчик(и) | Google и сообщество |
Первоначальный выпуск | Альфа (v0.0.6) / 12 мая 2017 г [1] |
Стабильная версия | 3.22.0 [2] ![]() |
Репозиторий | |
Написано в | С , С++ , Дарт [3] |
Платформа | Android , iOS , Google Fuchsia , веб-платформа , Linux , macOS и Windows |
Тип | Платформа приложения |
Лицензия | Новая лицензия BSD |
Веб-сайт | порхать |
Flutter — это с открытым исходным кодом, пользовательского интерфейса пакет разработки программного обеспечения созданный Google . Его можно использовать для разработки кроссплатформенных приложений из единой базы кода для Интернета . [4] Фуксия , Android , iOS , Linux , macOS и Windows . [5] Впервые описан в 2015 году. [6] [7] Flutter был выпущен в мае 2017 года. Flutter используется внутри компании Google в таких приложениях, как Google Pay. [8] и Google Планета Земля [9] а также другие разработчики программного обеспечения, включая ByteDance [10] и Алибаба . [11]
Flutter состоит как из языка пользовательского интерфейса, так и из механизма рендеринга . Когда приложение Flutter скомпилировано , оно поставляется как с кодом пользовательского интерфейса, так и с механизмом рендеринга, размер которого сжат около 4 МБ . [12] Это отличается от многих других инфраструктур пользовательского интерфейса , которые используют отдельный механизм рендеринга и передают только код пользовательского интерфейса, например, собственные приложения Android на уровне устройства , которые полагаются на Android SDK , или HTML / JavaScript веб-приложения пользователя. , которые полагаются на движок HTML и движок JavaScript . [13] [14] Полный контроль Flutter над своим конвейером рендеринга упрощает поддержку нескольких платформ, поскольку платформа нужна только для поддержки запуска собственного кода, например, через собственный интерфейс Android Java, а не для полной поддержки модели пользовательского интерфейса Flutter.
История [ править ]
Первая версия Flutter была известна как «Sky». [15] и работал на Android операционной системе . Он был представлен на Dart в 2015 году. саммите разработчиков [16] с заявленным намерением обеспечить возможность последовательного рендеринга со скоростью 120 кадров в секунду . [17] Во время основного выступления на Днях разработчиков Google в Шанхае в сентябре 2018 года Google анонсировал Flutter Release Preview 2. 4 декабря 2018 года Flutter 1.0 был представлен на мероприятии Flutter Live. 11 декабря 2019 года Flutter 1.12 был представлен на мероприятии Flutter Interactive. [18]
6 мая 2020 года были выпущены комплект разработки программного обеспечения Dart ( SDK ) версии 2.8 и Flutter 1.17.0, в которых добавлена поддержка Metal API , а также новые виджеты Material и инструменты разработки сетевого отслеживания.
3 марта 2021 года Google выпустила Flutter 2 во время онлайн-мероприятия Flutter Engage. Он добавил средство рендеринга Canvas Kit для Интернета в отличие от предыдущей HTML-версии, веб-виджеты, поддержку настольных приложений раннего доступа для Windows , macOS и Linux , а также улучшенные API-интерфейсы добавления в приложение. [19] Он также поставлялся с Dart 2.0, который включал частичную нулевую безопасность , что вызвало множество критических изменений и проблем со многими внешними пакетами; однако команда Flutter включила инструкции и инструменты для решения этих проблем. [20]
8 сентября 2021 года были выпущены Dart 2.14 и Flutter 2.5 с последней версией Material Design под названием Material You. [21] [22]
12 мая 2022 года были выпущены Flutter 3 и Dart 2.17 с поддержкой всех настольных платформ как стабильные. [23]
Виджеты [ править ]
Базовым компонентом программы Flutter является «виджет», который, в свою очередь, может состоять из других виджетов. Виджет описывает логику, взаимодействие и дизайн элемента пользовательского интерфейса с реализацией, аналогичной React . В отличие от других кроссплатформенных наборов инструментов, таких как React Native и Xamarin , которые рисуют виджеты с использованием собственных компонентов платформы, Flutter сам визуализирует виджеты на попиксельной основе.
Существует два типа виджетов: без сохранения состояния и с сохранением состояния . Виджеты без сохранения состояния обновляются только в том случае, если их входные данные изменяются, то есть в противном случае их не нужно будет перестраивать при изменении других элементов экрана, в то время как виджеты с сохранением состояния могут вызывать setState()
метод для обновления внутреннего состояния и перерисовки. [24]
Хотя виджеты являются основным методом создания приложений Flutter, их также можно обойти и использовать непосредственное рисование на холсте. Эта функция иногда использовалась для реализации игровых движков во Flutter. [25]
Каркасная архитектура [ править ]
Язык дартса [ править ]
Приложения Flutter написаны на языке Dart . Релизные версии приложений Flutter на всех платформах используют упреждающую компиляцию (AOT). [26] за исключением Интернета, где код переносится в JavaScript [27] или веб-сборка. [28]
Dart Pub Flutter наследует менеджер пакетов и репозиторий программного обеспечения , который позволяет пользователям публиковать и использовать собственные пакеты, а также плагины, специфичные для Flutter. [29]
Flutter-движок [ править ]
Flutter поддерживает два различных серверных модуля движка рендеринга: графическую библиотеку Google Skia и собственный движок Flutter под названием Impeller. [30] Импеллер включен по умолчанию на iOS и в настоящее время находится в стадии бета-тестирования на Android. [31] Движок взаимодействует с для конкретной платформы, SDK например, предоставляемыми Android и iOS, для реализации таких функций, как специальные возможности, файловый и сетевой ввод-вывод, поддержка встроенных плагинов и т. д. [32]
Библиотека Фонда [ править ]
Библиотека Foundation, написанная на Dart , предоставляет базовые классы и функции, которые используются для создания приложений с использованием Flutter, например API-интерфейсы для взаимодействия с движком. [32] [33]
Виджеты, специфичные для дизайна [ править ]
Платформа Flutter содержит два набора виджетов , которые соответствуют определенным языкам дизайна: виджеты Material Design Google язык дизайна реализуют одноименный , а виджеты Cupertino Apple по пользовательскому интерфейсу iOS реализуют рекомендации . [32] [34] [35] [36] Flutter позволяет разработчику использовать любой набор виджетов на любой платформе. Разработчики могут использовать виджеты Купертино на Android. Сторонние пакеты можно использовать для автоматической настройки дизайна приложения в соответствии с текущей операционной системой. [37]
См. также [ править ]
- Апач Кордова
- Титановый SDK
- Кодовое имя один
- Платформа мобильной разработки
- НативСкрипт
- ГТК
- Реагировать нативный
- Ксамарин
- Реактивный ранец
Ссылки [ править ]
- ^ Крис Брекен. «Выпуск v0.0.6: версия альфа-ветви версии 0.0.6, флаттер 0.0.26 (#10010) · флаттер/флаттер» . Гитхаб . Архивировано из оригинала 05 февраля 2019 г. Проверено 8 августа 2018 г.
- ^ https://github.com/flutter/flutter/releases/tag/3.22.0 .
{{cite web}}
: Отсутствует или пусто|title=
( помощь ) - ^ «Часто задаваемые вопросы — Флаттер» . Архивировано из оригинала 23 февраля 2019 г. Проверено 8 августа 2018 г.
- ^ Амадео, Рон (27 февраля 2018 г.). «Google начинает разработку кроссплатформенных приложений с помощью Flutter SDK» . Арс Техника . Архивировано из оригинала 08 октября 2021 г. Проверено 11 июня 2021 г.
- ^ Амадео, Рон (8 мая 2017 г.). «Основная система для смартфонов Google «Fuchsia» отказалась от Linux и имеет совершенно новый пользовательский интерфейс» . Арс Техника. Архивировано из оригинала 26 сентября 2019 года . Проверено 18 марта 2018 г.
- ^ «Благодаря Flutter Google направляет Dart на перекрестную разработку мобильных приложений» . ИнфоQ . Архивировано из оригинала 28 апреля 2022 г. Проверено 17 марта 2022 г.
- ^ «Google анонсирует Flutter 1.0, первую стабильную версию своего кроссплатформенного инструментария для разработки мобильных приложений» . Андроид Полиция . 05.12.2018. Архивировано из оригинала 25 мая 2022 г. Проверено 17 марта 2022 г.
- ^ «Выход на глобальный уровень в Google Pay с Flutter» . Архивировано из оригинала 31 марта 2024 г. Проверено 2 апреля 2024 г.
- ^ «Оцените новый @googleearth для iOS, Android и Интернета с пользовательским интерфейсом, созданным с использованием Flutter, и все это на основе единой базы кода» . Архивировано из оригинала 02 апреля 2024 г. Проверено 2 апреля 2024 г.
- ^ «Увеличение производительности на 33% в ByteDance с Flutter» . Архивировано из оригинала 02 апреля 2024 г. Проверено 2 апреля 2024 г.
- ^ «Alibaba масштабирует крупнейший в Китае рынок подержанных товаров с помощью Flutter» . Архивировано из оригинала 30 марта 2024 г. Проверено 2 апреля 2024 г.
- ^ «Насколько велик двигатель Flutter?» . Архивировано из оригинала 3 мая 2024 г. Проверено 4 апреля 2024 г.
- ^ «Что делает Flutter уникальным?» . Архивировано из оригинала 02 апреля 2024 г. Проверено 2 апреля 2024 г.
- ^ «Исследование механизма рендеринга Flutter от архитектуры до исходного кода» . Архивировано из оригинала 02 апреля 2024 г. Проверено 2 апреля 2024 г.
- ^ Кулински, Свав (07 декабря 2018 г.). «Флаттер — нет предела возможностям» . Род + Карта создана . Архивировано из оригинала 20 июня 2023 г. Проверено 20 июня 2023 г.
- ^ «Sky: эксперимент по написанию Dart для мобильных устройств (саммит разработчиков Dart 2015)» . Ютуб . Архивировано из оригинала 14 июня 2020 г. Проверено 12 июня 2020 г.
- ^ Амадео, Рон (1 мая 2015 г.). «Язык Google Dart для Android нацелен на создание приложений без Java со скоростью 120 кадров в секунду» . Арс Техника . Архивировано из оригинала 6 мая 2015 года . Проверено 13 декабря 2017 г.
- ^ «Flutter: первая платформа пользовательского интерфейса, предназначенная для вычислений в окружающей среде» . Флаттер-блог. Архивировано из оригинала 11 декабря 2019 г. Проверено 11 декабря 2019 г.
- ^ «Версия 2 набора инструментов Google Flutter добавляет поддержку настольных и веб-приложений» . ТехКранч . Проверено 06 марта 2021 г. [ постоянная мертвая ссылка ]
- ^ «Миграция на нулевую безопасность» . dart.dev . Проверено 4 февраля 2022 г. [ постоянная мертвая ссылка ]
- ^ Селлс, Крис (08 сентября 2021 г.). «Что нового во Flutter 2.5» . Трепетать . Архивировано из оригинала 4 февраля 2022 г. Проверено 4 февраля 2022 г.
- ^ «Примечания к выпуску Flutter 2.5.0» . docs.flutter.dev . Архивировано из оригинала 4 февраля 2022 г. Проверено 4 февраля 2022 г.
- ^ «Примечания к выпуску Flutter 3» . docs.flutter.dev . Архивировано из оригинала 3 сентября 2022 г. Проверено 9 августа 2022 г.
- ^ «Знакомство с виджетами» . docs.flutter.dev . Архивировано из оригинала 06 октября 2022 г. Проверено 06 октября 2022 г.
- ^ "Пламя" . сайт Flame-Engine.org . Архивировано из оригинала 27 сентября 2022 г. Проверено 06 октября 2022 г.
- ^ Стивенвзл (01 августа 2018 г.). «Шаблоны компиляции Flutter» . ПроАндроидДев . Архивировано из оригинала 9 июня 2020 г. Проверено 6 декабря 2018 г.
- ^ «Создание веб-приложения с помощью Flutter» . docs.flutter.dev . Архивировано из оригинала 5 октября 2022 г. Проверено 06 октября 2022 г.
- ^ Томсен, Майкл (14 мая 2024 г.). «Посадка Flutter 3.22 и Dart 3.4 на Google I/O 2024» . Трепетать . Проверено 17 мая 2024 г.
- ^ «Использование пакетов» . docs.flutter.dev . Архивировано из оригинала 06 октября 2022 г. Проверено 06 октября 2022 г.
- ^ Снит, Тим (30 августа 2022 г.). «Анонс Flutter 3.3 на Flutter Vikings» . Трепетать . Архивировано из оригинала 06 октября 2022 г. Проверено 06 октября 2022 г.
- ^ «Движок рендеринга крыльчатки» . docs.flutter.dev . Проверено 17 мая 2024 г.
- ^ Jump up to: Перейти обратно: а б с «Технический обзор — Флаттер» . флаттер.dev . Архивировано из оригинала 16 июня 2020 г. Проверено 13 декабря 2017 г.
- ^ «основная библиотека — Dart API» . docs.flutter.dev . Архивировано из оригинала 16 июня 2020 г. Проверено 13 декабря 2017 г.
- ^ «Виджеты Material Design — Flutter» . флаттер.dev . Архивировано из оригинала 16 июня 2020 г. Проверено 13 декабря 2017 г.
- ^ «Виджеты Купертино (в стиле iOS) — Flutter» . флаттер.dev . Архивировано из оригинала 16 июня 2020 г. Проверено 13 декабря 2017 г.
- ^ «Руководство по человеческому интерфейсу» . разработчик.apple.com . Архивировано из оригинала 28 ноября 2020 г. Проверено 8 октября 2019 г.
- ^ «flutter_platform_widgets | Пакет Flutter» . Дартс-пакеты . Архивировано из оригинала 14 января 2023 г. Проверено 14 января 2023 г.