Егор Долгов
Егор Долгов
За все время: 808 просмотров, 499 посетителей.
За последние 30 дней: 37 просмотров, 17 посетителей.

Flutter для Windows

Для создания качественных приложений Windows, работающих также и на мобильных платформах и для WEB.

Перевод статьи Announcing Flutter for Windows

С самого запуска Flutter, одной из наших основных задач стало предоставление кросс-платформенного решения для красивых, адаптированных приложений, скомпилированных в машинный код и в полной мере использующих основное графическое оборудование вашего устройства. Сегодня мы значительно приблизились к этой цели с первым релизом поддержки операционной системы Windows в качестве платформы, что позволяет разработчикам для Windows быть продуктивными и использовать всю мощь Flutter, как и мобильные разработчики.

Flutter должен дать своим пользователям все необходимые инструменты для создания отличного приложения, вне зависимости от того, на какую операционную систему оно будет ориентированно. Поэтому мы хотим использовать одни и те же инструменты и базовый фреймворк во всех местах, где вы, возможно, захотите рисовать пиксели. Flutter дает возможность создавать красивое впечатление от использования, где ваш бренд и дизайн выходят на первый план. Он работает быстро — компилируется непосредственно в машинный код; с поддержкой горячей перезагрузки с отслеживанием состояния вы получаете производительность интерактивной среды, которая позволяет вносить изменения во время работы приложения и сразу же видеть результаты. И Flutter открыт, тысячи контрибьюторов расширяют основной фреймворк с помощью экосистемы пакетов.

Flutter использует уже примерно пол миллиона приложений.

До сих пор мы наблюдали динамику, которая превзошла все ожидания: сейчас выпущено почти полмиллиона приложений, использующих Flutter, включая крупные приложения от таких компаний, как Betterment, BMW и ByteDance, а также приложения от тридцати команд Google. По данным таких аналитиков, как Statista и SlashData, в 2021 году Flutter стал самым популярным кроссплатформенным набором инструментов пользовательского интерфейса:

Данные нашей команды это подтверждают: во всех ежеквартальных опросах за 2021 год 92% разработчиков Flutter получили положительное впечатление об инструментах Flutter. (Конечно же, мы прислушиваемся к отзывам и мнениям остальных 8%).

Одним из самых популярных запросов была поддержка Windows.

И сегодня мы рады объявить о полной доступности приложений Windows для Flutter в стабильных сборках.

Windows и Flutter

Несколько лет назад команда Flutter изложила амбициозную концепцию по расширению от мобильных приложений для iOS и Android до других платформ, включая WEB и десктоп.

Основа Flutter распространяется на разные платформы: от портативного графического движка Skia с аппаратным ускорением до системы рендеринга Flutter; основные примитивы, такие как анимация, тематика, ввод текста и интернационализация; и сотни виджетов, которые предлагает Flutter.

Однако, приложения на компьютере — это не просто мобильные приложеня, запущенные на большом экране. Они спроектированы для различных устройств ввода, к примеру, мышь и клавиатура; они обладают различными оконными режимами; у них существуют разные конвенции для критичных вещей, таких как специальные возможности, редакторы методов ввода и визуальные стили: а также они взаимодействуют в различными API в основной операционной системе — приложения для ПК поддерживают все, от средств выбора файловой системы до оборудования устройства и хранилищ данных, таких как реестр Windows.

Так что было бы недостаточным просто перенести Flutter на Windows, необходимо было адаптировать его.

Как и с поддержкой Android и iOS, имплементация Flutter для Windows сочетает в себе фреймворк Dart и движок C++. Windows и Flutter взаимодействуют через встраиваемый слой, на котором размещен механизм Flutter и который отвечает за перевод и отправку сообщений Windows. Flutter координируется с операционной системой, чтобы отобразить ваш пользовательский интерфейс на экране, обрабатывает такие события как изменение размера окна и изменения DPI и работает с существующими модальностями Windows для интернационализации, такими как редакторы методов ввода.


В Windows Flutter использует точно такой же код Dart, но использует нативные API-интерфейсы Windows.

Ваше приложение может использовать каждую часть фреймворка Flutter,а при работе с Windows оно также может общаться с API Win32, COM и Windows Runtime либо напрямую через уровень взаимодействия Dart С, либо при помощи платформенного плагина, написанного на C++. Мы также адаптировали для работы с Windows несколько популярных плагинов, в том числе camera, file_picker и shared_preferences. Что более важно, сообщество уже добавило поддержку Windows широкому спектру других пакетов, начиная с интеграции с панелью задач Windows и до доступа к последовательному порту.


Уже существуют сотни пакетов, адаптированных для поддержки приложений Flutter, созданных для Windows.

Для полностью адаптированного пользовательского интерфейса Windows вы также можете использовать такие пакеты, как fluent_ui и flutter_acrylic, чтобы создать приложение, которое соответствующе выражает систему дизайна Microsoft Fluent. А с помощью инструмента msix вы можете обернуть свое приложение установщиком, который можно загрузить в Microsoft Store в Windows.

В совокупности это помогает создать приложения, которые отлично выглядят в Windows, быстро работают и при этом имеют возможность переноса на другие настольные или мобильные устройства, а также в Интернет. Вот несколько ранних примеров:






Примеры приложений Windows, созданных при помощи Flutter, в том числе Harmonoid и Rows.

Microsoft and Flutter

Команда Windows не осталась в стороне и поделилась своим мнением о поддержке Flutter. Вот что говорит Кевин Галло, корпоративный вице-президент по центру разработки Windows в Microsoft:

«Мы рады видеть, что Flutter добавляет поддержку создания приложений для Windows. Windows — открытая платформа, и мы приветствуем всех разработчиков. Мы рады видеть, что разработчики Flutter привносят свой опыт в Windows, а также публикуют его в Microsoft Store. Поддержка Flutter для Windows — это большой шаг для сообщества, и нам не терпится увидеть, что вы принесете в Windows!»

Действительно, несколько команд из Microsoft внесли свой вклад в сегодняшнее объявление. В частности, мы хотели бы выразить благодарность команде дизайнеров Fluent за их вклад в создание иконок для приложений Flutter в Windows. Их пакет fluentui_system_icons был удостоен статуса Flutter Favorite, что свидетельствует о его качестве.

Мы также были впечатлены вкладом Microsoft в обеспечение специальных возможностей для Windows, и мы благодарны этой команде за помощь в обеспечении того, чтобы Flutter поддерживал программы чтения с экрана. Было бы ошибкой отвергать доступность как необходимое требование. Как показано на этой диаграмме из набора инструментов Microsoft для инклюзивного дизайна, у всех нас есть причины заботиться о предоставлении возможностей, которые адаптируются к различным постоянным, временным или ситуативным потребностям.

На видео ниже показано, как Flutter интегрирует с Windows Narrator. Мы намеренно сделали экран размытым, чтобы дать вам представление о том, насколько ценна эта функция для пользователей, которым она нужна.


Работа приложения для чтения с экрана Narrator с приложениями Flutter.

Экосистема инструментов для разработки приложений под Windows

Наши партнеры по инструментам также добавляют поддержку Windows. Вот несколько:

Нам очень приятно видеть сформировавшуюся экосистему, построенную вокруг Flutter, и мы рекомендуем вам ознакомиться с каждым из этих партнеров, когда вы начнете создавать приложения для Windows с помощью Flutter.

Поддержка Windows появилась во Flutter 2.10

Стабильная поддержка производственного качества для создания приложений Windows доступна как часть Flutter 2.10. Эта версия также включает множество других функций, улучшений производительности и исправлений ошибок, которые более подробно описаны в отдельном посте.

В ближайшем будущем мы планируем улучшить стабильную поддержку macOS и Linux, что сделает ваши приложения Flutter доступными для любых платформ: веб, мобильных и десктопных.

Благодарим за поддержку Flutter и с нетерпением ждем ваших приложений для Windows!

Подборка заметок