Retour sur Flutter Vikings 2022
Après deux éditions 100% en ligne, Flutter Vikings, la conférence dédiée à l'écosystème Flutter, se déroulait en physique, à Oslo, le 31 août dernier.
Des centaines de fans se sont donc envolés pour la Norvège et se sont retrouvés sur le magnifique site du Felix Konferanse Senter, à deux pas de la mer. Et pour cette édition hybride, quelques milliers de passionnés se sont également joints aux festivités en ligne afin de suivre le livestream des talks et de ne rien manquer des annonces et des présentations faites par un line-up de folie !
Andrés et Pierre, Développeurs Flutter & envoyés spéciaux ESENS, étaient sur place, en Norvège, et nous racontent ces deux journées osloïtes.
Jour 1
21 conférences réparties sur 3 salles. Il y avait donc de quoi faire pour cette première journée de conférence qui démarre sur les chapeau de roue avec le café et l'annonce de Flutter 3.3 !
Pour son premier talk de la matinée, Pierre opte pour "Deep dive into theming", une présentation de Mike Rydström, Développeur Flutter et auteur du FlexColorScheme package. Mike y aborde le thème du 'theming', justement ^^, et nous partage bonnes pratiques et astuces pour développer tout le potentiel visuel d'une application avec Flutter.
Outre les couleurs et les formes empruntées pour la création d'un widget, l'importance du 'theming' se vérifie tout autant dans l'implémentation des applications. Créer de belles applications avec Flutter passe par une certaine rigueur et la bonne application des standards, d'autant plus avec la sortie de Flutter 3.3 qui amène encore de nouvelles possibilités côté création visuelle.
Pendant ce temps, Andrés suit “Let's Test The Full Widget Tree!” où Alicja Ogonowska, Développeuse Flutter chez EQUIQO, explique comment faire le test end-to-end d'une application en utilisant les outils de testing fournis par Flutter.
Cette approche permet de tester les interactions entre les widgets et de simuler plusieurs scénarios. Seul petit bémol à cette méthode : il peut s'avérer compliqué de maintenir les fichiers JSON nécessaires à la configuration des tests et parfois d'identifier pourquoi un test échoue.
La suite pour Andrés : “Flutter Architecture Components” (45:10), présenté par Alessio Salvadorini, Team Lead chez Signant Health.
Dans son talk, Alessio nous partage une méthode intéressante pour architecturer toute une application Flutter en s'appuyant sur le pattern MVC (Model View Controller), Riverpod et change notifier. Cette méthode assure la mise en place de la structure nécessaire à la création d'applications évolutives et faciles à maintenir.
Pierre, de son côté, retrouve Anna Leushchenko, Google Developer Expert Dart & Flutter, venue aborder le sujet des librairies de génération de code automatique dans son talk "Fun with code generation" (1:01:38).
Ce type de méthode permet d'automatiser au maximum la programmation d'applications web ou mobiles afin de faire gagner du temps aux développeurs et de leur permettre, notamment, de se concentrer sur les fonctions les plus complexes à développer.
A noter, cependant, que le niveau d'abstraction et de compréhension de l'application augmente significativement.
Après la pause déjeuner, l'occasion de faire connaissance avec d'autres fans de Flutter et de partager nos premières (et excellentes !) impressions sur la conférence, Pierre part pour "Lifecycle of a Widget", un exposé de Craig Labenz, sur l'objet Flutter même : Le Widget. 🙌
Des idées reçues ("tout est widget dans Flutter"), aux spécificités d'implémentation, l'exposé de Craig, Flutter Developer & Relations Engineer chez Google, aborde des concepts techniques et témoigne de l'évolution du Widget au fil du développement de Flutter, avec son intégration dans le moteur d'affichage et son rôle majeur dans le développement du langage qui contribue largement au succès de Flutter.
Andrés, quant à lui, se positionne sans hésitation sur “End To End IoT With Dart And Flutter”, le talk de Chris Swan, Ingénieur chez The @ Company, qui explique comment son équipe utilise Flutter, Dart et un Raspberry Pi pour récupérer, afficher et envoyer les données d’un capteur, le tout chiffré de bout en bout.
Il enchaîne ensuite avec “Architecting Success - Building A Great Open-Source SDK” (1:04:25) présenté par Deven Joshi, Developer Advocate de l'équipe Flutter chez Stream, et Gordon Hayes, DevRel Advocacy Manager chez Stream.
Le talk relate l'aventure de la création de la librairie Stream Chat qui permet la prise en charge facile des fonctionnalités de chat (messages enrichis, réactions, fils de discussion, téléchargements d'images et de vidéos) au sein des applications développées sur Flutter.
Parmi les thèmes abordés : la gestion du projet Stream Chat, son service client, l’importance du 'DevRel' (Developer Relations) et l’amélioration continue.
Pierre se rend ensuite "Creating Responsive UI For Authentication Flows" (1:06:11) présenté par Salih Guler, Senior Developer Advocate chez AWS Amplify.
Au programme : la revue des différentes méthodes visant à rendre une application réactive et/ou responsive, et quelques astuces pour bien différencier les deux.
Après la pause café, Andrés choisit d'écouter “Structure Your GraphQL Apps !” (2:32:30), une présentation de Christian Budde Christensen, Senior Engineer chez Meta à l'origine des librairies open-source Dart graphql, graphql_flutter, et graphql_codegen.
Christian y expose bonnes pratiques et outils pour mieux intégrer GraphQL, dont les fragments et la librairie de génération du code GraphQL Codegen.
Pierre, de son côté, en profite pour faire le tour des stands et des sponsors présents à l'évènement.
C'est surtout l'occasion d'échanger avec qulques-unes des équipes les plus actives de l'écosystème Flutter : AWS Amplify, une alternative à Google Firebase, des ESN, comme Rebel App, Bouvet ou Very Good Ventures, ou encore des services et outils liés au monde des applications, comme Codemagic ou Appwrite.
La journée s'achève avec la super star Remi Rousselet, créateur de Provider/Riverpod, flutter_hooks et Freezed, et son live coding introduisant "Riverpod 2.0" (3:32:57).
Bilan de ce premier jour de conférence : des rencontres passionnantes et un bel aperçu du futur de l'écosystème Flutter qui s'offre aux développeurs.
Jour 2
Après une belle balade matinale, un aperçu de la baie d'Oslo et un bon café, Andrés attaque cette seconde journée de Flutter Vikings avec “Taking The Bus. Create Reactive Flutter Apps, Using An Event Bus”.
Dans son talk, Efthymios Sarmpanis, GDE Dart & Flutter, nous présente l’application d’une approche des bus d'événements pour le développement des applications Flutter, avec ses avantages et ses inconvénients (comme la nécessité d’orchestration et l’ajout de complexité).
Pierre, quant à lui, assiste à "The Ultimate Cookbook of Flutter Testing", une présentation des applications des méthodes de Testing appliquées à Flutter par Teresa Wu, GDE Dart & Flutter.
TDD, BDD, bonnes pratiques et workflow d'équipes sont notamment passés en revue.
On continue la matinée avec "Parallel Beauty - With Isolates Into The Mandelbrot Set" (1:11:30) par Thomas Burkhart, GDE Flutter : une démonstration assez technique sur les capacités de Flutter et Dart à exécuter du code en parallèle.
Sans être une compétence fondamentale, la parallélisation a son utilité dans certains cas précis d'implémentation qui auront surement de meilleurs langages que Dart. Mais on sait que c'est possible et comment !
Andrés poursuit la journée avec “Custom User Interactions: Building A Desktop Drawing App” (1:03:46) présenté par Justin McCandless, Ingénieur Logiciel de l’équipe Flutter chez Google.
Justin nous parle notamment du Shortcuts/Intents/Actions system qui permet aux applications desktop d’interagir avec les raccourcis clavier du système.
Après une bonne pause déjeuner, on profite des dernières heures pour se rendre au talk de Felix Angelov, Head of Architecture chez Very Good Ventures : "Meet Mason: Intro To Templating And Custom Code Generation".
Figure connue de la communauté, Felix a notamment développé la librairie BLoC, une excellente alternative pour la gestion des états entre les widgets de son application.
Cette fois-ci, on parle toujours de génération de code, mais dans l'optique de se faire gagner du temps : Mason permet aux développeurs et aux équipes de créer des templates et de pouvoir les générer relativement facilement. Pensez à l'onboarding de nouveaux collaborateurs, par exemple !
Andrés décide ensuite de se rendre aux Lightning Talks où sont abordés bien d'autres sujets intéressants : une application qui tourne sur l'Apple Watch, la démo de l’A/B testing (23:37) avec un exemple de la vie réel, ou encore un talk sur les tests adaptatifs (33:58) qui utilise des librairies capables de simuler des visuels d'écran proches de vrais devices.
L'équipe ESENS clôture la Flutter Viking avec "Trusting Your Clients: Live-Coding A Cross-Platform Multiplayer Bingo App" (1:08:33), le talk d'Eric Windmill, Developer Relations Engineer chez Google (Flutter team), et de Franck van Puffelen, Ingénieur Firebase chez Google.
Une présentation atypique sur un jeu de bingo qui tire partie des capacités de Firebase à gérer plusieurs utilisateurs en même temps. La bonne humeur du duo rend le tout très ludique et la salle est remplie à ras bord. Une belle réussite, à l'image de l'évènement tout entier.
Un petit mot pour la fin ?
Andrés : Stabilité.
Pierre : Widget !
Et surtout, bravo et MERCI aux organisateurs de Flutter Vikings, et à toute la communauté Flutter & Dart, de nous avoir offert cette très belle rentrée tech !
Vi sees snart Oslo! ;)
------------------------------
Article rédigé par Pierre, Développeur Extraordinaire et fan de Flutter, et Andrés, Lead Dev Cloud & IoT et membre de la DT ESENS.
Retrouvez tous nos articles tech sur le Blog ESENS !
Vous êtes à la recherche d’un nouveau challenge technique ? Découvrez la dream team et rejoignez-nous en postulant à nos offres d’emploi !