Google a lancé Dart 3, une mise à jour majeure de son langage de programmation, en même temps que la boîte à outils Flutter 3.10 associée pour les applications mobiles, web et desktop, avec des améliorations au niveau du design et du support de macOS/iOS. Outre la sécurité null ou null safety et les nouvelles fonctionnalités du langage, Dart 3 inclut en avant-première la compilation WebAssembly (Wasm).
Plusieurs évolutions dans Dart 3
Désormais disponible en version stable, Dart 3 apporte trois améliorations qualifiées de majeures par Google. Tout d’abord, le langage devient 100% null safety, ce qui évite les erreurs d'exécution dues aux null. Il réduit aussi la taille des fichiers compilés et améliore les performances. Actuellement, 99 % des 1 000 paquets du gestionnaire de paquets dev pour Dart supportent la sécurité null. En second lieu, des caractéristiques supplémentaires du langage acceptent les données structurées avec les enregistrements, la déstructuration et la correspondance de motifs ou pattern matching, ainsi que les types de données abstraits pour la programmation moderne. Enfin, la troisième évolution concerne les modificateurs de classe, une fonctionnalité pour utilisateur expérimenté afin de mieux exprimer les capacité des API pour les propriétaires de paquets.
Les concepteurs de Dart ont également travaillé sur la compilation du langage au format binaire Wasm, l’objectif étant d'accélérer le chargement dans le navigateur et d'améliorer les performances des applications web. La compilation de Dart vers Wasm est pour le moment au stade de preview. Pour compiler vers Wasm, les développeurs ont besoin d'un navigateur qui supporte WasmGC. L'interopérabilité de Dart avec Java et Kotlin sur Android, ainsi qu'avec Objective-C et Swift sur macOS/iOS est aussi en cours d'élaboration, tout comme l'interopérabilité existante de Dart avec le code compilant vers les bibliothèques C. À un moment donné, Dart faisait figure de potentiel rival de JavaScript, mais les développeurs ont abandonné l’idée au milieu de la dernière décennie.
Flutter 3.10 fait la part belle à macOS et iOS
Quant à Flutter 3.10, il offre une meilleure prise en charge de la boîte à outils de widgets Material 3, y compris la prise en charge de la génération de schéma de couleur algorithmique de Material 3, ainsi qu'un certain nombre d'améliorations qui facilitent la création d'applications macOS et iOS. C’est le cas par exemple de l'ajout d'un correcteur orthographique dans le widget de texte éditable, un nouveau widget de case à cocher et la prise en charge du débogage sans fil. Le moteur de rendu Impeller, en avant-première depuis Flutter 3.7, est désormais le moteur de rendu par défaut sur iOS, promettant moins de lenteur dans l’interface utilisateur et des performances plus cohérentes. Flutter 3.10 propose également un pont JNI (Java Native Interface) vers les bibliothèques Jetpack écrites en Kotlin, ce qui permet d'appeler une nouvelle bibliothèque Jetpack directement depuis Dart sans avoir besoin d'un plugin externe.
Concernant Flutter, Google vise à fournir cinq caractéristiques essentielles : une qualité d’image, grâce à un contrôle sur chaque pixel de l'écran ; la vitesse, à l’aide de graphiques accélérés par le matériel ; la productivité, en faisant prendre en charge les workflows par des outils de rechargement à chaud et des outils de développement ; la portabilité, en s’appuyant sur une base de code unique partagée pour de multiples plateformes ; et la disponibilité universelle, en étant gratuit et open source.
Les mises à jour de Dart et de Flutter ont été annoncées le 10 mai lors de la conférence Google I/O 2023. Les instructions d'installation de Flutter sont disponibles sur docs.dev.flutter, et celles du SDK Dart sur dart.dev.