|
Ouvrir la newsletter dans le navigateur
|
|
|
|
|
Nouvelle version stable !
|
Exceptionnellement un numéro spécial de la newsletter est disponible pour vous annoncer la double sortie de Flutter 2.5.0, ainsi que Dart 2.14.
Cette édition consistera à évoquer les principales nouveautés, avant de rentrer plus dans les détails dans l’édition #36 de lundi matin. Si vous avez suivi nos précédentes éditions, vous noterez qu’une grande partie des nouveautés était déjà connue.
Bonne lecture et à vos flutter upgrade !
|
|
|
|
|
|
Comme pour chaque nouvelle version, Google a donné quelques chiffres, toujours très impressionnants. On peut notamment citer :
- 4 600 tickets (issues) ont été clos sur GitHub
- 3 932 Pull Requests ont été intégrées au code de Flutter
- 100% des 250 packages les plus utilisés sont compatibles null safety
|
|
|
|
|
|
Avant de regarder en détails les nouveautés du framework, intéressons-nous à Dart. Tout comme la précédente itération, les changements sont assez légers (tout au moins ne nécessitant pas une migration telle que le null-safety). Mais côté "déceptions", aucun mot sur le très attendu static meta-programming.
|
|
|
|
|
Dart : Un nouvel opérateur >>>
|
|
L'opérateur >> sert aujourd'hui à effectuer un décalage arithmétique. Sa déclinaison avec non plus, deux, mais trois chevrons, effectue un décalage logique non signé.
|
|
|
|
|
|
Dart : La publication sur Pub améliorée
|
|
Aujourd'hui lorsque vous publiez sur Pub, l'intégralité des fichiers est mise en ligne (sauf ceux du .gitignore). Mais l'utilisation du .gitignore n'est pas forcément appropriée, car certains fichiers peuvent être nécessaires sur Git et pas sur Pub.
Désormais tout comme les .gitignore, nous allons pouvoir écrire un .pubignore. Une bonne nouvelle ne vient jamais seule : le format de ce fichier est identique à celui des .gitignore.
|
|
|
|
|
Flutter : Amélioration des performances
|
|
Un titre que nous mettons de nombreuses fois dans nos changelogs, mais côté Flutter, ce n'est pas du blabla. Qui dit performances, dit bien évidemment iOS et ses animations souvent décriées au lancement. Selon l'article officiel, des améliorations ont à nouveau été apportées dans ce domaine, mais d'autres restent encore à réaliser.
Plus "palpable" cette fois-ci, Flutter va désormais avantager l'interface graphique et réduire la priorité autour des événements asynchrones (ex : une requête réseau, l'accès au système de fichiers…). Une très bonne nouvelle, car il n'y a rien à changer dans nos codes.
Côté mémoire, Dart dispose d'un Garbage Collector pour nous faciliter la tâche. Il pouvait toutefois arriver que de simples images puissent générer une forte quantité d'appels du GC. L'exemple cité est un GIF, où le nombre de passages du GC est passé de plus de 400 à seulement 4. Cela permettra d'avoir une interface graphique bien plus fluide.
Des optimisations ont aussi été livrées sur les Platform Channels, la manière de communiquer votre code Dart/Flutter vers les plateformes sous-jacentes (Android et iOS). Un article est d'ailleurs dédié à ce sujet, pour celles et ceux qui veulent en savoir plus. Là aussi, rien à changer de votre côté.
|
|
|
|
|
Support du plein écran sur Android
|
|
Sur les applications Android, vous avez la possibilité d'indiquer si vous souhaitez voir la barre de statut (en haut de l'écran), la barre de navigation (si disponible et en bas), voire aucune des deux. Désormais, en appelant SystemChrome.setEnabledSystemUIMode, vous pourrez facilement les gérer dynamiquement et même être notifié des changements grâce à SystemChrome.setSystemUIChangeCallback
|
|
|
|
|
Une bibliothèque de Widgets qui s'enrichit
|
|
La troisième itération de Material Design n'est toujours pas en version stable, mais son implémentation côté Flutter a bien avancé (FloatingActionButton…).
En parallèle, le ScaffoldMessenger qui servait essentiellement à afficher des Snackbar (sur le bas de l'écran), va aussi pouvoir afficher des MaterialBanner : des messages fixes sur le haut de l'écran.
|
|
|
|
|
Amélioration de l'édition de texte avec les raccourcis clavier
|
|
L'équipe Flutter continue d'améliorer le support des claviers physiques. Cette version tourne principalement autour des raccourcis. Il est ainsi possible de modifier les raccourcis par défaut via le Widget Shortcuts ou d'avoir la liste des raccourcis déjà implémentés par plateforme.
|
|
|
|
|
Un nouveau template pour vos nouveaux projets
|
|
Attention la commande classique vous donnera toujours le bon vieux compteur. Si vous souhaitez avoir le nouveau template nommé sketelon, il faut saisir la commande flutter create -t skeleton.
Concrètement, il s'agit d'une mini-application composée d'une liste et d'un écran de détails. Outre les Widgets, ce template bénéficie d'une traduction, d'une architecture basée sur ChangeNotifier et d'un changement dynamique du thème.
|
|
|
|
|
|
Processeurs Apple Silicon
|
|
Le support des processeurs des Mac ARM continue (mais n'est pas totalement terminé). Dans Flutter 2.5.0, si vous développez avec le simulateur iOS, Rosetta n'est plus utilisé, pour ainsi profiter à 100% des performances.
|
|
|
|
|
Les Flutter DevTools passent en version 2.6.0
|
|
Pour rappel, pour télécharger cette version, il vous suffit de lancer : flutter pub global deactivate devtools, puis flutter pub global activate devtools.
Côté Widget Inspector, vous noterez l'apparition d'icônes pour mieux distinguer chaque type de Widget, une console avec un évaluateur 🙌 ou encore la possibilité de voir les propriétés en passant sa souris au-dessus.
Sur le CPU Profiler, vous pouvez filtrer le code natif, le code des bibliothèques Dart et celles de Flutter. Vous noterez aussi que différentes couleurs sont utilisées, une amélioration également valable pour les autres onglets.
Sur la partie Network, on peut désormais voir le contenu des requêtes pour celles envoyées en POST.
|
|
|
|
|
|
L'idée de cette édition "spéciale" était de vous résumer les principales annonces. Mais, je vous invite à lire les différents articles d'annonce sur Medium :
|
|
|
|