Что нового в Dart 3.5

Dart обновился до версии 3.5. Мы получили улучшение совместимости с JS, стабилизацию новой модели взаимодействия Dart с JavaScript для веб-разработки, улучшение совместимости с нативом и другие фичи.

Flutter-команда Friflex делится тезисами из официального релиза Dart 3.5.

Веб-платформа и совместимость с JS

Появилась поддержка компиляции веб-приложений на Flutter в WebAssembly! Для нее необходима новая модель совместимости Dart с JS. Ранее она находилась в режиме предварительного просмотра. В Dart 3.5 она появилась в стабильной версии. 

Обновились привязки к API браузера в пакете веб до версии 1.0. Они заменили устаревшую библиотеку dart:html.

Нативная совместимость Dart

В 3.5 улучшилась нативная совместимость, которая поддерживает прямые вызовы из Dart в C, Java, Kotlin, Objective-C и Swift. Совместимость с:

C обеспечивает библиотека FFI (Foreign Function Interface), которая поддерживается уже несколько лет. Подробнее об этом на Github.  

Java и Kotlin обеспечивает генератор JNIgen, который сейчас находится в статусе предварительного просмотра. Больше деталей смотрите на Pub.dev. 

Objective-C строится на базе FFI и нашего генератора FFIgen, который сейчас находится в статусе предварительного просмотра. 

Стабильная версия взаимодействия Java и Kotlin с использованием JNIgen появится в течение двух кварталов. Такие же планы есть и по взаимодействию с Objective-C. 

В следующих релизах появятся улучшения поддержки этих библиотек и Swift.

Репозиторий пакетов Pub.dev

Pub.dev — репозиторий пакетов, где сообщество делится и находит пакеты с разными функциональными возможностями. В репозитории появились новые функции.

Механизм, с помощью которого авторы могут помечать свои пакеты категориями, например, виджетами.

Команда pub unpack позволяет быстро загрузить пакет в файловую систему. Это может быть полезно, например, если нужно запустить пакет на своем локальном компьютере.

Команда pub downgrade —tighten позволяет проверять все ограничения версий в зависимостях пакета. 

Производительность IDE и анализатора для крупных монорепозиториев

Монорепозиторий — это распространенный способ структурировать исходный код для набора связанных пакетов и приложений в одном репозитории, например, как в репозитории пакетов Flutter. 

Благодаря обратной связи от сообщества стало известно о низкой производительности некоторых инструментов, в частности, анализатора. Было решено создать единое общее разрешение версий каждой зависимости в монорепозиториях. Для этого появилась функция под названием workspaces. В следующем релизе Dart будет больше подробностей. Узнать, как это работает сейчас, можно на Github.  

Нативный interop и упаковка нативного исходного кода

Как упаковать и собрать нативный исходный код и не заставлять при этом пользователя пакета совершать много действий вручную? Для этого у авторов пакетов появилась система нативных ресурсов (native assets system). 

Dart и макросы

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

В планах переписать форматер Dart. Старый дизайн хорошо работал многие годы, но пришло время для нового стиля. Он лучше подходит для декларативного кода, который часто пишут пользователи Flutter. Обновленный форматер появится в ближайшее время. Если вы хотите попробовать его, используйте экспериментальный флаг tall-style. Следуйте инструкции по флагам. И не забывайте про обратную связь.

Новые функции Dart 3.5 уже доступны для установки.

Источник: habr.com

0 0 голоса
Рейтинг новости
12497
0
Подписаться
Уведомить о
0 комментариев
Межтекстовые Отзывы
Посмотреть все комментарии