Google выпускает Flutter SDK версии 2 с поддержкой веб, null safety и другими возможностями

В ходе прямой трансляции Flutter Engage компания Google обновила Flutter, свой кроссплатформенный SDK для разработки приложений, до версии 2.0, добавив стабильную поддержку веб-приложений и строгую проверку null (null safety).

Если вы не знакомы с Flutter, то это постоянные усилия Google, позволяющие разработчикам создавать приложения для Android, iOS, веба — включая устанавливаемые PWA — Fuchsia, встраиваемых систем и настольных платформ, и все это с использованием одного и того же кода на Dart.

Хотя Flutter предлагал некоторую поддержку веб-браузеров более года, она всегда находилась в бета-версии и никогда не была «готова к продакшну». С выходом Flutter 2 ситуация меняется, поскольку веб теперь готов к использованию в стабильных релизах, а команда по умолчанию «flutter create» включает необходимый фреймворк для компиляции вашего приложения для веба.

Запуск поддержки веба в Flutter 2 стал возможен благодаря нескольким ключевым аспектам. Во-первых, Google удалось повысить производительность Flutter для веба в браузерах высокого класса с помощью нового CanvasKit, в то время как мобильные браузеры по умолчанию будут использовать версию приложения на основе HTML, причем все это автоматически обрабатывается новым режимом «auto» при сборке вашего приложения.

Реклама — прокрутите, чтобы увидеть больше контента

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

Site default logo image

Другим важным изменением в Flutter 2 является добавление так называемой «строгой проверки null» (sound null safety). Это означает, что теперь вы можете писать код, в котором анализатор Dart может быть уверен, что он никогда не вернет «null». Это помогает при написании кода, поскольку вы вынуждены либо подготовиться к возможности того, что конкретная переменная будет null, либо исключить ее, а анализатор Dart может отображать полезные предупреждения о том, где ваш код небезопасен. Что еще более важно, строгая проверка null должна помочь в дальнейшем уменьшить размер вашего приложения при компиляции.

К сожалению, чтобы получить преимущества строгой проверки null в Flutter 2, вам потребуется перенести свой проект, что потребует многочисленных изменений. Команда Dart создала руководства по миграции, но, что еще более полезно, они создали автоматический инструмент миграции, который может внести некоторые необходимые изменения за вас. На основе этого вы можете внести новые оптимизации, чтобы по возможности исключить null.

Строгая проверка null появляется в Flutter 2 как часть одновременного обновления языка программирования Dart до версии 2.12. Наряду со строгой проверкой null, Dart 2.12 предоставляет разработчикам стабильный доступ к FFI — foreign function interface — для помощи в интеграции кода Dart и C и лучшей подготовки Flutter к настольным платформам. Вы можете узнать больше об изменениях в Dart 2.12 в блоге Dart.

Site default logo image

Важно отметить, что ни добавление поддержки веба, ни наличие строгой проверки null не являются строго «критическими изменениями» для разработчиков при переходе на Flutter 2. Это может стать сюрпризом для некоторых разработчиков, поскольку часто такие крупные обновления сопровождаются обязательными изменениями в кодовой базе приложения, например, Dart 2.0 требовал перехода на звуковую систему типов. Это было серьезной проблемой для Google при принятии решения о переходе на «Flutter 2.0», поскольку разработчики одновременно ожидали больших улучшений ценой критических изменений.

Вместо этого, основные функции Flutter 2 являются полностью необязательными: веб — это просто еще одна доступная платформа для ваших приложений, а проверка null пока необязательна и поддается автоматической миграции. Фактически, помимо миграции null safety, Flutter получил новый инструмент «Flutter fix» для автоматического обновления кода с целью исправления предупреждений об устаревании, где это возможно.

Что касается будущих планов Flutter и Dart, Google поделился информацией о ряде улучшений в работе, включая «псевдонимы типов» для Dart и ранний предварительный просмотр поддержки настольных приложений Flutter, включенный в Flutter 2. Тем временем, Microsoft объявила сегодня, что они работают с Google над улучшением Flutter для складных устройств, таких как Surface Duo.