Flutter (программное обеспечение) - Flutter (software)
Оригинальный автор (ы) | |
---|---|
Разработчики) | Google и сообщество |
изначальный выпуск | Альфа (v0.0.6) / май 2017 г.[1] |
Стабильный выпуск | 1.22.5 / 10 декабря 2020 г.[2] |
Репозиторий | |
Написано в | C, C ++, Дротик[3] |
Платформа | Android, iOS, Google Fuchsia, Веб-платформа, Linux, macOS и Windows |
Тип | Фреймворк приложения |
Лицензия | Новая лицензия BSD |
Интернет сайт | трепетать |
Флаттер является Открытый исходный код UI комплект для разработки программного обеспечения сделано Google. Он используется для разработки приложений для Android, iOS, Linux, Mac, Windows, Google Fuchsia,[4] и Интернет из единого кодовая база.[5]
Первая версия Flutter была известна под кодовым названием Sky и работала на Android Операционная система. Он был представлен на выставке 2015 года. Дротик саммит разработчиков,[6] с заявленным намерением иметь возможность оказывать постоянно на 120 кадров в секунду.[7] Во время основного выступления на Google Developer Days в Шанхае Google анонсировал Flutter Release Preview 2, который является последним крупным выпуском перед Flutter 1.0. 4 декабря 2018 года на мероприятии Flutter Live был выпущен Flutter 1.0, обозначая первую «стабильную» версию Framework. 11 декабря 2019 года на мероприятии Flutter Interactive был выпущен Flutter 1.12.[8]
6 мая 2020 года были выпущены Dart SDK в версии 2.8 и Flutter в версии 1.17.0, в которых была добавлена поддержка Металл API, повышение производительности на устройствах iOS (примерно на 50%), новые виджеты материалов и новое сетевое отслеживание.
Архитектура каркаса
Основные компоненты Flutter:
- Дротик Платформа
- Двигатель флаттера
- Библиотека фонда
- Виджеты для конкретного дизайна
Платформа для дротиков
Приложения Flutter написаны на Дротик язык и использовать многие из более продвинутых функций языка.[9]
На Windows, macOS, и Linux[10] Flutter работает на виртуальной машине Dart, которая имеет вовремя двигатель исполнения. При написании и отладке приложения Flutter использует компиляцию Just In Time, что позволяет выполнять «горячую перезагрузку», с помощью которой изменения исходных файлов могут быть введены в работающее приложение. Flutter расширяет это за счет поддержки сохранный горячая перезагрузка, когда в большинстве случаев изменения исходного кода немедленно отражаются в работающем приложении без необходимости перезагрузки или потери государственный.[11]
Релизные версии приложений Flutter скомпилированы с предварительная (AOT) компиляция как на Android, так и на iOS,[12] что делает возможной высокую производительность Flutter на мобильных устройствах.
Двигатель флаттера
Движок Flutter, написанный в основном на C ++, обеспечивает низкоуровневую рендеринг поддержка с помощью Google Skia графическая библиотека. Кроме того, он взаимодействует с платформенно-зависимый SDK например, предоставленные Android и iOS.[9] Flutter Engine - это портативная среда выполнения для размещения приложений Flutter. Он реализует основные библиотеки Flutter, включая анимацию и графику, файловый и сетевой ввод-вывод, поддержку специальных возможностей, архитектуру плагинов, а также среду выполнения и компиляцию Dart. Большинство разработчиков взаимодействуют с Flutter через Flutter Framework, который предоставляет реактивную структуру и набор виджетов платформы, макета и основы.
Библиотека фонда
Библиотека Фонда, написанная на Дротик, предоставляет базовые классы и функции, которые используются для создания приложений с использованием Flutter, например API общаться с двигателем.[9][13]
Виджеты для конкретного дизайна
Фреймворк Flutter содержит два набора виджеты которые соответствуют определенным языкам дизайна: Материальный дизайн виджеты реализуют язык дизайна с таким же названием, и Купертино виджеты реализуют iOS Рекомендации по человеческому интерфейсу.[9][14][15][16]
Виджеты
Flutter использует множество виджетов для создания полнофункционального приложения. Эти виджеты представляют собой архитектуру фреймворка Flutter.[17] Каталог виджетов Flutter дает полное объяснение и API на каркасе.
Пример Hello World
А Привет, мир программа на Flutter выглядит так:
1импорт 'package: flutter / material.dart'; 2 3пустота главный() => запустить приложение(HelloWorldApp()); 4 5учебный класс HelloWorldApp расширяет StatelessWidget { 6 @override 7 Виджет строить(BuildContext контекст) { 8 9 // MaterialApp действует как оболочка для приложения и 10 // предоставляет множество функций, таких как заголовок, главная страница, тема и т. д. 11 возвращаться MaterialApp(12 заглавие: "Привет, мир",1314 // Scaffold действует как связующее, которое связывает appBar,15 // нижняя панель навигации и другие компоненты пользовательского интерфейса на своих местах 16 дома: Строительные леса(1718 // Виджет AppBar () автоматически создает панель приложения материала19 appBar: AppBar(20 заглавие: Текст("Привет, мир"),21 ),2223 // Виджет по центру выравнивает дочерний элемент по центру24 тело: Центр(25 ребенок: Текст('Привет, мир'),26 ),27 ),28 );29 }30}
Смотрите также
- Apache Cordova
- Appcelerator Titanium
- Список полнофункциональных фреймворков Интернет-приложений
- Платформа веб-приложений для нескольких телефонов
- NativeScript
- React Native
- Xamarin
Рекомендации
- ^ Крис Брэкен. "Выпуск v0.0.6: Версия альфа-ветки Rev до 0.0.6, flutter 0.0.26 (# 10010) · flutter / flutter". GitHub. Получено 2018-08-08.
- ^ «Выпуски Flutter SDK». flutter.dev.
- ^ "FAQ - Flutter". Получено 2018-08-08.
- ^ "ОС смартфона" Fuchsia "от Google заменяет Linux, имеет новый безумный интерфейс". Ars Technica.
- ^ «Единая кодовая база Flutter для создания приложения вашей мечты для iOS и Android». Concetto Labs.
- ^ "Sky: эксперимент по написанию дротиков для мобильных устройств (Саммит разработчиков Dart 2015)".
- ^ Амадео, Рон (1 мая 2015 г.). «Язык Dart от Google на Android предназначен для приложений без Java со скоростью 120 кадров в секунду». Ars Technica.
- ^ «Flutter: первая платформа пользовательского интерфейса, разработанная для окружающих вычислений». Блог Flutter. Получено 2019-12-11.
- ^ а б c d «Технический обзор - флаттер». flutter.dev. Получено 2017-12-13.
- ^ «Canonical обеспечивает поддержку настольных приложений Linux с помощью Flutter». Ubuntu. Получено 2020-07-09.
- ^ Lelel, Wm (26 февраля 2018 г.). "Почему Флаттер использует дротик". Хакер. Получено 5 декабря 2018.
- ^ stephenwzl (2018-08-01). «Паттерны компиляции Флаттера». ProAndroidDev. Получено 2018-12-06.
- ^ "фундаментальная библиотека - Dart API". docs.flutter.dev. Получено 2017-12-13.
- ^ «Виджеты материального дизайна - Flutter». flutter.dev. Получено 2017-12-13.
- ^ «Виджеты Купертино (в стиле iOS) - Flutter». flutter.dev. Получено 2017-12-13.
- ^ «Рекомендации по человеческому интерфейсу». developer.apple.com. Получено 2019-10-08.
- ^ «Введение в виджеты». flutter.dev. Получено 2020-10-08.