⏫ Une nouvelle version stable de Flutter est disponible : la 2.10.3 et vient corriger des bugs plus ou moins bloquants.
⏫ Comme chaque début de mois, les plugins pour VS Code (changelog) et IntelliJ/Android Studio (changelog) ont été mis à jour. Malheureusement, le rythme se confirme pour la version IntelliJ dont les dernières nouveautés intéressantes datent d'il y a plusieurs mois. Pire ! la version initialement mise en ligne avait des régressions !
La réalisation de cette newsletter nécessite plusieurs heures chaque semaine.
Vous voulez soutenir Flutter Digest en donnant à partir d’un euro sur Tipee ?
En contrepartie : vous n’aurez jamais de pub et vous recevrez la newsletter en avant première !
Le Widget ReorderableListView peut maintenant avoir un footer, dont la position ne sera, logiquement, jamais modifiable (PR #92086)
Pigeon, l'outil permettant de générer automatiquement le code pour la communication avec les plateformes (Dart -> Android/iOS…) va bientôt supporter Swift (PR #976) et Kotlin (PR #999)
Un nouveau projet est disponible dans les exemples Flutter : une calculatrice
🥳 Une excellente nouvelle : la prochaine version de Dart permettra d'ajouter des attributs aux énumérations. La fonctionnalité vient tout juste d'être ajoutée à la roadmap.
🍬 Google anime, certes, la communauté avec des concours, mais il existe aussi des compétitions "non-officielles". C'est ainsi que chaque mois des nouveaux Flutter Challenges sont proposés. Pour le mois de mars, vous devrez mettre en œuvre du drag'n'drop pour trier des bonbons !
🐢 Vos applications fonctionnent moins bien sur des téléphones Samsung ? Des utilisateurs ont découvert que le Game Optimization Service présent sur certains téléphones de la marque venait réduire les performances. Des applications populaires comme Instagram, Netflix, Snapchat sont touchées, mais aussi certaines du constructeur lui-même !
🤷 Peu à peu, Google supprime l'affichage des changelogs sur les applications du Google Play. Difficile d'en comprendre le motif… à tel point que créer un écran dédié va bientôt s'imposer. [EDIT : Il semblerait que ce soit un bug… récurrent]
🪟 Le Windows Store a maintenant une interface web, mais à priori seules les applications natives sont présentes. En effet, celles sous Android via l'Amazon AppStore ne semblent pas (encore ?) être listées.
👋 Le cofondateur de Xamarin, Miguel de Icaza, a quitté Microsoft… soit près d'un an après l'autre co-fondateur de la technologie, Nat Friedman.
🗂️ La dernière version de SQLite (3.38.0) supporte maintenant le JSON comme données, avec des opérateurs dédiés pour effectuer des recherches. Sur mobile, il faudra attendre bien quelques années avant de pouvoir les utiliser, vue la lenteur de propagation des nouvelles versions.
📡 Après le réseau cuivre, Orange va mettre fin à son réseau 2G en 2025, puis la 3G en 2028. Les autres opérateurs européens ont tendance à privilégier une feuille de route inverse. Généralement, les plus vieux terminaux qui ne sont compatibles ni avec la 4G, ni la 5G, fonctionnent à minima sur l'une ou l'autre des technologies. La fin d'une époque !
La SNCF, c'est un peu comme l'équipe de France, tout le monde a son avis (pas toujours très favorable d'ailleurs). La nouvelle application du groupe, SNCF Connect, est développée en Flutter et vous n'avez probablement pas raté tout le remue-ménage qu'elle a généré. Un UX Designer s'est penché dessus pour mettre en avant les faiblesses, qu'il faudrait éviter de commettre dans vos applications. Le YouTuber Basti Ui s'y est aussi penché dessus, mais son avis n'est pas si négatif. Quoi qu'il en soit, on souhaite bon courage à toute l'équipe de dev' qui doit faire face aux critiques et aux pressions du gouvernement.
Flutter offre de nombreux Widgets pour gérer les animations, mais dès lors qu'il s'agit d'animations plus complexes (des logos, personnages…), autant passer par Rive, un outil dédié. Dans cet exemple, vous verrez comment rendre le chargement de vos écrans moins ennuyant pour l'utilisateur.
Place à trois articles dédiés aux tests en Flutter. On commence par la partie unitaire, à savoir tester votre code Dart. L'idée est avant tout de vérifier que vos méthodes s'exécutent toujours comme vous le souhaitez.
Place maintenant au test d'une partie de votre interface graphique, à savoir vos widgets. Tout comme précédemment, aucun émulateur n'est nécessaire, ce qui permet d'en enchaîner un grand nombre rapidement.
Les tests d'intégration peuvent paraître comparables aux tests de Widgets, puisqu'il s'agit de vérifier la cohérence de la partie visuelle. Toutefois, la partie intégration se veut plus large, puisque vous allez également vérifier le bon fonctionnement avec les dépendances.
Trucs & astuces
Pour ce numéro, voici quelques astuces pour des outils que vous utilisez dans votre quotidien de développeur :
Utiliser des alias pour ssh
Vous en avez assez d'écrire ssh g123k@flutter-digest.com ? Grâce à des alias à mettre dans le fichier ./.ssh/config, vous pourriez simplement écrire ssh flutter. En voici un exemple :
Host flutter
HostName flutter-digest.com
User g123k
Modifier la couleur de la barre de statut sur Visual Studio Code
Sur VSCode, la barre, en bas de l'écran, est bleue, mais saviez-vous que vous pouviez la personnaliser en y changeant la couleur ? Vous pouvez même différencier selon certains critères (ex : mode debug)
Ce n'est pas vraiment utile sur mobile ou dans un navigateur, mais le fait qu'une application se lance au démarrage d'une session fait partie intégrante des applications natives. Et c'est tout simplement ce que vous permet cette bibliothèque.
Que ce soit sur Windows, macOS ou Linux, chaque fenêtre dispose de ses propres boutons pour se réduire ou se fermer. Cette bibliothèque vous permet de les récupérer pour vos applications Flutter desktop.
Maintenant que l'écosystème Flutter se densifie avec des technologies comme Flare et le support de Windows, pourquoi ne pas développer des jeux ? Oui… mais supporter des manettes, ce serait encore mieux, me direz-vous ! Eh bien, c'est justement ce que permet cette bibliothèque qui offre également la gestion des moteurs haptiques ou encore de la batterie.
Le site de Pub n'est disponible que dans un style clair (light), alors que Google pousse pourtant les modes sombres sur nombre de ses services. Qu'à cela ne tienne, en passant par userstyles.org et en appliquant ce thème, vous transformerez le site en version sombre.
Vous vous demandiez quel framework utiliser pour votre backend ? La réponse pourrait maintenant être du côté de Serverpod, qui est un serveur entièrement codé en Dart. Son gros avantage est de pouvoir générer le code pour votre client Flutter ! Encore jeune, le projet est très prometteur !
Vous connaissez peut-être Charles, un superbe outil sur macOS/iOS pour intercepter les requêtes HTTP(s). Requestly est un équivalent, qui a l'avantage de fonctionner sur tous les systèmes d'exploitation, y compris mobiles. La version gratuite est rapidement limitée, mais offre tout de même le nécessaire pour intercepter et modifier les requêtes.