Google представил фреймворк Flutter 2 и язык Dart 2.12
4 марта 2021 года
Компания Google представила фреймворк построения интерфейса пользователя Flutter 2, который ознаменовал трансформацию проекта из фреймворка для разработки мобильных приложений в универсальный фреймворк для создания любых типов программ, включая программы для настольных систем и web-приложения.
Flutter рассматривается как альтернатива React Native и позволяет на основе одной кодовой базы выпускать приложения для разных платформ, включая iOS, Android, Windows, macOS и Linux, а также приложений для запуска в браузерах. Ранее написанные на Flutter мобильные приложения после перехода на Flutter 2 смогут быть легко адаптированы для работы на рабочем столе и в Web без переписывания кода.
Основная часть кода Flutter реализована на языке Dart, а runtime-движок для выполнения приложений написан на C++. При разработке приложений, помимо родного для Flutter языка Dart, можно использовать интерфейс Dart Foreign Function для вызова кода на C/C++. Высокая производительность выполнения достигается благодаря компиляции приложений в машинный код для целевых платформ. При этом программу не нужно перекомпилировать после каждого изменения - Dart предоставляет режим горячей перезагрузки, позволяющий вносить изменения в работающее приложение и сразу оценивать результат.
В Flutter 2 заявлена полноценная поддержка создания приложений для Web, пригодная для рабочих внедрений. Упоминается три основных сценария применения Flutter для Web: разработка обособленных web-приложений (PWA, Progressive Web Apps), создание одностраничных web-приложений (SPA, Single page apps) и преобразование мобильных приложений в web-приложения. Из особенностей средств разработки для Web называется задействование механизмов ускорения отрисовки 2D и 3D-графики, гибкая компоновка элементов на экране и компилируемый в WebAssembly движок отрисовки CanvasKit.
Поддержка приложений для рабочего стола находится на стадии бета-тестирования и будет стабилизирована в этом году в одном из следующих выпусков. О поддержке разработки с использованием Flutter заявили компании Canonical, Microsoft и Toyota. Компания Canonical выбрала Flutter в качестве основного фреймворка для своих приложений и в том числе применяет Flutter при разработке нового инсталлятора для Ubuntu. Компания Microsoft адаптировала Flutter для складных устройств с несколькими экранами, таких как Surface Duo. Компания Toyota планирует использовать Flutter для автомобильных информационно-развлекательных систем. На основе Flutter также построена пользовательская оболочка развиваемой в Google микроядерной операционной системы Fuchsia.
Одновременно опубликован релиз языка программирования Dart 2.12, в котором продолжено развитие кардинально переработанной ветки Dart 2. Dart 2 отличается от изначального варианта языка Dart применением сильной статической типизации (типы могут выводиться автоматически, поэтому указание типов не является обязательным, но динамическая типизация больше не используется и вычисленный изначально тип закрепляется за переменной и в дальнейшем применяется строгая проверка типа).
Выпуск примечателен стабилизацией режима безопасного использования значения "Null" ( null safety), который позволят избежать крахов, вызванных попытками использования переменных, значение которых не определено и выставлено в "Null". Режим подразумевает, что переменные не могут иметь неопределённые значения, если им явно не присваивается значение null. В режиме строго учитываются типы переменных, что позволяет компилятору применять дополнительные оптимизации. Соответствие типов проверяется на этапе компиляции, например, в случае попытки присвоения значения "Null" переменной с типом, не подразумевающим неопределённое состояние, таким как "int", будет выведена ошибка.
Другим важным улучшением Dart 2.12 стала стабильная реализация библиотеки FFI, позволяющей создавать высокопроизводительный код из которого можно обращаться к API на языке Си. Добавлена новая интегрированная среда разработки и инструменты профилирования, написанные с использованием Flutter. Внесены оптимизации производительности и размера.
Источники[править]
Любой участник может оформить статью: добавить иллюстрации, викифицировать, заполнить шаблоны и добавить категории.
Любой редактор может снять этот шаблон после оформления и проверки.
Комментарии[править]
Если вы хотите сообщить о проблеме в статье (например, фактическая ошибка и т. д.), пожалуйста, используйте обычную страницу обсуждения.
Комментарии на этой странице могут не соответствовать политике нейтральной точки зрения, однако, пожалуйста, придерживайтесь темы и попытайтесь избежать брани, оскорбительных или подстрекательных комментариев. Попробуйте написать такие комментарии, которые заставят задуматься, будут проницательными или спорными. Цивилизованная дискуссия и вежливый спор делают страницу комментариев дружелюбным местом. Пожалуйста, подумайте об этом.
Несколько советов по оформлению реплик:
- Новые темы начинайте, пожалуйста, снизу.
- Используйте символ звёздочки «*» в начале строки для начала новой темы. Далее пишите свой текст.
- Для ответа в начале строки укажите на одну звёздочку больше, чем в предыдущей реплике.
- Пожалуйста, подписывайте все свои сообщения, используя четыре тильды (~~~~). При предварительном просмотре и сохранении они будут автоматически заменены на ваше имя и дату.
Обращаем ваше внимание, что комментарии не предназначены для размещения ссылок на внешние ресурсы не по теме статьи, которые могут быть удалены или скрыты любым участником. Тем не менее, на странице комментариев вы можете сообщить о статьях в СМИ, которые ссылаются на эту заметку, а также о её обсуждении на сторонних ресурсах.