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

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

Более подробную информацию об этом стабильном выпуске можно найти в Записи блога веб-поддержки Flutter.

Звук Нулевая Безопасность

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

В репозитории пакетов pub.dev уже опубликовано более 1000 нулевых безопасных пакетов, в том числе сотни пакетов от команд Dart, Flutter, Firebase и Material. Если вы являетесь автором пакета, ознакомьтесь с руководством по миграции и рассмотрите возможность миграции сегодня.

Рабочий стол

В этом выпуске мы рады сообщить, что поддержка Flutter для настольных ПК доступна в стабильном канале под флагом раннего выпуска. Это означает, что мы готовы предложить вам попробовать его в качестве цели развертывания для ваших приложений Flutter: вы можете думать об этом как о «бета-снимке», который представляет собой предварительный окончательный стабильный выпуск, который выйдет позже в этом году.

Чтобы довести рабочий стол Flutter до такого уровня качества, были внесены как большие, так и малые улучшения, начиная с работы над обеспечением того, чтобы редактирование текста работало так же, как и на каждой из поддерживаемых платформ, включая основные функции, такие как точки поворота выбора текста и возможность остановить распространение события клавиатуры после его обработки. На стороне ввода с помощью мыши перетаскивание с помощью высокоточного указывающего устройства теперь начинается немедленно, а не ждет задержки, необходимой при обработке сенсорного ввода. Также в виджеты TextField и TextFormField для языков оформления Материал и Купертино добавлено встроенное контекстное меню. Наконец, в виджет ReorderableListView добавлены ручки захвата.

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

Когда дело доходит до бета-версии для рабочего стола Flutter, вы можете получить к ней доступ, переключившись на бета-канал, как и ожидалось, а также установив флаги конфигурации для платформ, на которые вы ориентируетесь, в соответствии с указаниями на flutter.dev. Кроме того, мы также сделали снимок бета-битов, доступных на стабильном канале. Если вы используете flutter config для включения одного из параметров конфигурации рабочего стола (например, enable-macos-desktop), то вы можете опробовать бета-функциональность поддержки рабочего стола без необходимости проходить длительный процесс перехода на бета-канал. и скачивание всех последних бета-версий Flutter SDK, создание инструментов и т. д. Это отлично подходит для того, чтобы попробовать или использовать поддержку рабочего стола в качестве простого эмулятора Flutter.

Однако, если вы решите остаться на стабильном канале для доступа к бета-версии для настольных ПК, вы не получите новые функции или исправления ошибок так же быстро, как при переходе на бета-каналы или каналы для разработчиков. Итак, если вы активно ориентируетесь на Windows, macOS или Linux, мы рекомендуем переключиться на канал, который предоставляет обновления быстрее.

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

Новые виджеты: автозаполнение и ScaffoldMessenger.

Этот выпуск Flutter поставляется с двумя дополнительными новыми виджетами: AutocompleteCore и ScaffoldMessenger. AutocompleteCore представляет собой минимальную функциональность, необходимую для добавления функции автозаполнения в ваше приложение Flutter.

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

Аналогичным образом, ScaffoldMessenger был создан для решения ряда проблем, связанных с SnackBar, включая возможность простого создания SnackBar в ответ на действие AppBar, создание SnackBar для сохранения между переходами Scaffold и возможность показывать SnackBar в завершение асинхронного действия, даже если пользователь перешел на страницу с другим Scaffold.

Несколько экземпляров Flutter с Add-to-App

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

Исправление флаттера

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

Flutter DevИнструменты

Чтобы было понятно, что DevTools — это инструмент, который следует использовать для отладки ваших приложений Flutter, мы переименовали его во Flutter DevTools при отладке приложения Flutter. Кроме того, мы проделали большую работу, чтобы довести его до качества производства, достойного Flutter 2.

Одна из новых функций, которая поможет вам сосредоточиться на своих проблемах еще до того, как вы запустите DevTools, — это способность Android Studio, IntelliJ или Visual Studio Code замечать, когда есть общее исключение, и предлагать его в DevTools, чтобы помочь вам отладить это. Например, ниже показано, что в вашем приложении возникло исключение переполнения, которое вызывает параметр в Visual Studio Code для отладки проблемы в DevTools.

Расширение кода Visual Studio

Расширение Flutter для Visual Studio Code было улучшено и для Flutter 2, начиная с ряда улучшений тестирования, включая возможность повторного запуска только что не пройденных тестов.

После двух лет разработки поддержка LSP (Language Server Protocol) для Dart теперь развертывается как способ по умолчанию получить доступ к анализатору Dart для интеграции в Visual Studio Code для расширения Flutter. Поддержка LSP обеспечивает ряд улучшений для разработки Flutter, в том числе возможность применять все исправления определенного типа в текущем файле Dart и вызывать завершение кода для создания полных вызовов функций, включая круглые скобки и требуемые аргументы.

DartPad обновлен для поддержки Flutter 2

Этот список обновлений инструментов был бы неполным без упоминания DartPad, который был обновлен для поддержки Flutter 2.

Теперь вы можете попробовать новую нулевую безопасную версию Flutter, не выходя из своего любимого браузера.

Обновления экосистемы

Опыт разработки Flutter включает в себя больше, чем фреймворк и инструменты; он также включает широкий спектр пакетов и плагинов, доступных для приложений Flutter. За время, прошедшее с момента последнего стабильного релиза Flutter, в этой области тоже многое произошло. Например, между камерой и плагинами video_player было объединено почти 30 PR, чтобы значительно повысить качество обоих. Если у вас были проблемы с использованием любого из них в прошлом, вам следует взглянуть еще раз; мы думаем, вы найдете их намного более надежными.

Кроме того, если вы являетесь пользователем Firebase, мы рады сообщить, что самые популярные плагины были доведены до производственного качества, включая поддержку нулевой безопасности, а также полный набор справочной документации и руководств по общему использованию для Android, iOS, сети и macOS. Эти плагины включают следующее:

  • Основной
  • Аутентификация
  • Облако Firestore
  • Облачные функции
  • Облачный обмен сообщениями
  • Облачное хранилище
  • Crashlytics