Debrief de la Flutter connection 2024

Sommaire
Pour cet article, j'aimerais faire un point sur les différentes conférences qui ont été tenues durant la Flutter Connection 2024.
Après avoir visionné les 12 conférences, je vous propose un résumé de chaque conférence en y ajoutant quelques remarques et observations personnelles.
J’ai séparé les conférences en 5 thématiques, vous permettant de survoler celles qui vous intéresses le moins.
Vous trouverez un lien vers chacune d’entre elle, ainsi qu’un client vers le site de techconnection.
Merci aux différents intervenantes et intervenants pour la pluralité des sujets traités et l’inspiration que j’ai pu en tirer !
On commence par la hype, l’IA générative
Getting started with GenAI in Flutter Apps, par Elaine Dias Batista. Un tour d'horizon sur comment prendre en main l'IA générative, des premiers tests à des cas concrets. Très pédagogique, avec des exemples inspirants ! Une légère emphase sur les produits Google et Gemini (évidemment) que je ne connais pas très bien, ce qui m'a donné envie de m'intéresser à Vertex AI 👍
Ensuite on enchaine sur des conférences plus techniques
Server-Driven UI par Aloïs Deniel, qui nous parle des différentes solutions actuelles pour gérer des interfaces dynamiques avec Flutter. Il travaille sur l'adaptation d'un protocole qui permettrait d'envoyer des widgets Flutter depuis un serveur pour qu'une vue puisse les interpréter. Assez fou ! C’est pour le moment en phase de R&D, donc pas du tout prévu pour être utilisé en production.
Je ne vois pas de cas d’utilisation qui pourrait me concerner pour mes projets, mais c’est bon d’avoir en tête que de telles possibilités existent!
Into-the Flutter-verse par Loïc Sharma : On aborde ici le sujet des applications de bureau avec plusieurs fenêtres. Les défis et les limitations actuels, et les nouvelles API et widgets prévus pour gérer ce cas d'utilisation à l'avenir.
Cette présentation avait une emphase nette pour les applications desktop qui ne sont pas dans mon champ de développement, mais il est intéressant de noter que l’équipe de Flutter continue d’avancer sur différents fronts.
How FlutterFlow generates Flutter code par Leigha Reid : Le titre de la conférence ne ment pas ! Je n'utilise pas FlutterFlow mais c'était très intéressant de voir comment ce type de service no-code/low-code moderne s'adapte aux besoins des utilisateurs, qui souhaitent utiliser un outil pour obtenir des résultats rapides, sans pour autant sacrifier la possibilité d'intégrer du code personnalisé eux-mêmes. La présentation rentre dans les détails de la génération du code lorsqu’on configure des vues et des composants au sein de FlutterFlow, impressionnant.
J’ai noté en fin de présentation qu’un des objectifs de FlutterFlow sera à l’avenir de permettre aux utilisateurs de facilement entrer et sortir de leur service.
Des conférences portaient également sur des sujets propres au développement et au code
From Touch To Code: Flutter's Gesture Mechanics par Esra Kadah : On reprend le sujet à la base, puis on explore les possibilités offertes par Flutter ! La conclusion est inspirante : l'évolution des interactions tactiles et leur importance croissante dans nos vies rendent obligatoire la parfaite maîtrise de ce sujet pour avoir une expérience utilisateur digne de ce nom !
Shorebird: My Journey with Code Push par Masahiro Aoki.
Vous savez, lorsque vous avez une mise à jour de votre app à publier, il faut build cette nouvelle version, l'envoyer sur les stores, puis attendre la validation de l'équipe en charge de la vérification de votre app. Et si je vous disais que vous pouvez sauter quelques étapes ? En réalité, c'est une pratique courante, le "Hot Patch" qui permet de mettre à jour une application directement. Quelle est donc cette sorcellerie, me direz-vous ?
Eh bien l'intervenant présente comment utiliser Shorebird, un service permettant de faire ces fameuses mises à jour. Il explique le fonctionnement de CodePush, qui permet de déployer directement des correctifs et nouvelles fonctionnalités aux utilisateurs. Il aborde également les aspects techniques et pratiques de l'intégration de Shorebird dans les pipelines CI/CD, et met en évidence les avantages de cette approche pour nous, les développeurs et pour les utilisateurs finaux.
Demystifying App Architecture: The LeanCode Guide par Mateusz Wojtczak et Marcin Chudy.
Une conférence très intéressante où les intervenants expliquent comment ils sont parvenus à architecturer des applications Flutter en se basant sur leur expérience de développement de plus de 40 applications. Avec plusieurs typologies de clients dans leur portefeuille, ils nous donnent une piste sur les différents facteurs influençant les décisions architecturales, comme les contraintes techniques et les exigences fonctionnelles.
Ils partagent des pratiques pour la gestion de l'état avec Bloc, l'injection de dépendances, et l'optimisation de la communication API.
L'accent est mis sur la qualité, la maintenabilité, et le pragmatisme pour répondre aux besoins spécifiques des projets.
Flutter place l’UI et UX en avant
Flutter Text: From Pixels to Perfection par Gayathri Devi Srinivasan.
Si vous voulez en savoir plus sur la façon dont Flutter gère le rendu du texte, vous êtes au bon endroit ! L'intervenante présente quelques widgets comme "ParagraphBuilder" ou "Semantic", puis aborde également les techniques d'optimisation des performances, la gestion des surcharges de texte ainsi que l'intégration de polices personnalisées.
Bring your Flutter App to the HomeScreen - HomeScreen Widgets par Anton Borries
Anton Borries est le créateur du package home_widget, qui permet l'utilisation des widgets d'écran d'accueil pour améliorer l'interactivité des applications Flutter.
Dans cette présentation, il explique comment l’utiliser pour créer et mettre à jour dynamiquement des widgets sur iOS et Android. Les widgets permettent d'afficher des informations clés et des actions interactives directement sur l'écran d'accueil, augmentant ainsi l'engagement des utilisateurs.
L’intervenant a pendant la présentation porté l’attention sur le fait qu’un peu de code natif devait être écrit pour faire fonctionner un widget iOS/Android, mais le code à produire semble accessible même pour des néophytes (selon lui).
Encore de nouvelles idées à explorer pour enrichir l’expérience utilisateur !
Animations VS Delivery: Do you Really Have to Choose? par Maxime Rougieux et Thomas Coumau.
Dans cette présentation, on parle de fancy et de juicy, ou plutôt de l'intégration des animations dans les applications Flutter ! (sans compromettre la livraison des fonctionnalités).
Le retour d’expérience des deux intervenants fait état des défis liés à l'ajout d'animations, tout en maintenant l'efficacité du développement.
Les développeurs ont opté pour une approche “kata”, en faisant des ateliers pour pratiquer les animations. L’expérience engendrée par l’équipe permet ensuite de collaborer plus facilement avec les designers, notamment en étant capable de jauger la difficulté d’intégration d’une animation rapidement. En procédant ainsi, ils estiment réussir à améliorer l'expérience utilisateur sans sacrifier la performance ou les délais de livraison.
Flutter pour le web
Flutter Web Laughs: Element Embedding Made Easy par Lukas Goldner. L'intervenant explique comment Flutter facilite l'intégration d'applications dans des sites web, sans avoir recours aux iframes. On peut synchroniser les états entre l'application et une page web, grâce à quelques bouts de JavaScript. C'est également possible de faire une intégration avec des frameworks frontend comme React ou Angular (pas présenté dans la démo mais plus d'infos dans le dépôt GitHub de l'intervenant).
Des possibilités intéressantes, pour une migration progressive ou du micro-frontend...
Bringing Your Flutter App to the Web par Maxime Eglem et Michaël Ohayon.
Les intervenants présentent comment eux et leur équipe ont porté une application mobile Flutter vers le web.
Ils discutent des raisons de cette transition, des défis techniques rencontrés et des solutions mises en place.
Quelques points positifs notés :
- Réutilisation du code existant ;
- La gestion de l'état de l'application ;
- Beaucoup de packages fonctionnaient bien sans modifications ;
- Possibilité de build une app web à partir d’une app mobile en deux temps, trois mouvements !
- UI/UX au top (fidèle à une appli mobile).
Concernant les points négatifs :
- Adaptation à faire sur la navigation et les interfaces pour avoir le feeling web (navbar, liens et transition…).
- Pas de SEO (pour le moment), en tout cas très dur à mettre en place. Il est probable qu’avoir un CMS ou un site vitrine traditionnel qui englobe l’app soit une bonne piste pour le moment.
- Flutter pour le web reste très jeune, on voit que tout n’est pas encore bien rodé. Certaines API du framework ne fonctionnent tout simplement pas !
- Niveau sécurité, un point non négligeable sur les assets et fichiers env, qui ne sont pas offusqués de base. Remarque à étendre à tous les packages qu’on utilise. Certes, ils ne jettent peut-être pas d’erreur au visage mais sont-ils vraiment adaptés au web, pour votre cas d’utilisation ?
Une conférence à voir si vous êtes intéressé par un déploiement web.