Cette semaine, il n'y a pas moins de deux événements Flutter qui
peuvent vous intéresser. Demain, sur le créneau du midi, nous faisons un
nouvel App Clinic dans lequel nous allons décortiquer deux
applications Flutter, sous la baguette d'experts
UI/UX/Dév.
Jeudi, le Flutter Grand Ouest et le GDG Mons organisent
une soirée dédiée à Flutter, où il y sera notamment question de
backend en Dart, la création d'un jeu avec Flame et vous aurez peut-être
même la chance de m'y voir passer une tête en première partie.
Depuis 2005, Google finance des étudiants pendant "leurs vacances" pour qu'ils
travaillent sur des projets opensource. Plus de 18 000 contributeurs ont
participé au programme depuis son lancement.
Quels changements
en 2022 ? Depuis 2005, seuls les étudiants pouvaient candidater, mais
changement de taille en 2022 : n'importe qui peut y participer, y
compris les professionnels. Selon une
grille tarifaire pré-établie, tout dépendra de la taille du projet, mais cela
peut être une belle perspective pour les freelances.
Comment candidater
? Les inscriptions sont ouvertes depuis aujourd'hui,
le 04 avril, jusqu'au 19. Différentes évaluations et sélections auront lieu avant un
lancement en juin (cf. calendrier
détaillé). Côté projets, vous avez la possibilité de faire
du Flutter, mais à peu près toutes les technologies sont
représentées. D'ailleurs, n'hésitez pas à regarder du
côté d'OpenFoodFacts qui réunit en même temps un projet français et du
Flutter.
Annoncé fin 2021, ce mécanisme est désormais déployé à tous les téléphones sur
Android 6+, mais ne devrait pas avoir de conséquences sur vos
applications.
Un peu
d'histoire Depuis Android 6.0, les permissions dites
dangereuses (Bluetooth, position GPS…) requièrent la
validation des utilisateurs. Pour toutes les autres (accès à
Internet par exemple), le même mécanisme qu'auparavant est appliqué : elles sont
accordées dès l'installation de l'application. Ce comportement qui provient tout
droit d'iOS est une véritable avancée pour les utilisateurs, mais demande un peu
plus de travail aux développeurs.
Android 11 change
les règles Depuis Android 11, un mécanisme de suppression
automatique des permissions inutilisées est en œuvre. Concrètement, le
système va observer les applications et si des permissions accordées par les
utilisateurs ne sont plus exploitées, elles seront automatiquement supprimées. Ce
changement brutal pourrait nous effrayer, mais normalement les applications gèrent
déjà le cas où il faut obtenir le consentement de l'utilisateur.
La révocation pour
tous Dans le cadre des Google Play Services, Google a annoncé que
cette fonctionnalité allait être proposée aux téléphones à partir d'Android
6.0. Initialement présenté
en septembre 2021, il semblerait désormais que ce mécanisme soit déployé
auprès des utilisateurs. Vérifiez tout de même votre code, on ne sait jamais !
✨ Quelles sont les nouveautés côté Flutter et de sa communauté ?
Sur Android, la transition d'Android Q (un zoom) est
désormais activée par défaut (PR #100812)
Les icônes Material accueillent 352
nouvelles variantes (PR #100885)
AppWrite,
le BaaS est passé en version 0.13 avec de nombreuses améliorations sur la partie
Storage, des performances en hausse pour les cloud functions et bien
d'autres !
Supabase,
une alternative à Firebase et AppWrite offre désormais des API
en GraphQL pour leur base de données
Flame,
le moteur de jeu pour Flutter vient de sortir en version 1.1.0 (changelog)
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 !
🧩 Pour perpétuer les éditions précédentes, voici trois nouvelles contributions au
concours Flutter Puzzle Hack : Flutter
Rush Puzzle, Gloo
gloo et Slide
Puzzle.
📅 Même si le COVID est toujours proche de nous, les événements en présentiel font
leur retour :
Le Breizh Camp (Rennes, FR) a ouvert
son CFP et aura lieu du 29 juin au 1er juillet
L'Appdevconf (Amsterday, NL) a aussi
son
CFP de disponible, pour un événement du 20 au 24 juin
🐢 Les mises à jour iOS semblent se déployer plus lentement. La
raison ? Apple
privilégie les installations manuelles pendant les premiers jours, avant de
notifier le reste des utilisateurs.
🙌 Le saviez-vous ? Les bugs sur le langage Swift étaient jusqu'à
présent notés sur un Jira. Soulagement, puisque tout
va être migré sur GitHub.
😂 Dans la lignée des "inutiles donc indispensables", un
développeur s'est amusé à utiliser une imprimante pour, non
pas produire des tickets de caisse, mais des reçus pour chaque nouvelle
issue GitHub.
💀 Google, dans sa lignée de fermeture de services et, c'est le peu
connu URL parameters tool qui va en faire les frais (en ligne depuis 2009 tout de
même). Il va donc rejoindre le fameux site cimetière des services
tués par l'entreprise. À noter qu'un site équivalent vient de
sortir, mais cette fois-ci pour
les produits Microsoft.
😃 Stack
Overflow a publié une étude sur ce qui rend les développeurs heureux
au travail : le salaire (60%), l'équilibre vie privée/pro (58%), la
flexibilité (52%), la productivité (49%) et les perspectives d'évolution (49%).
Les toutes premières versions de Firefox datent des années
2000. Depuis, la UI/UX du navigateur a évolué à plusieurs
reprises et cet article vous détaille les différentes
étapes. Chose intéressante, il s'agit d'un article mettant
certes en avant les changements, mais aussi, les petits couacs.
Mais comment générer des fausses données pour nos tests
? Ou comment générer des fausses briques pour la couche
réseau, le stockage des données… Avec Mockito bien évidemment ! Cet
outil peut "mock"-er à peu près tout et n'importe quoi, à condition
d'avoir bien pensé l'architecture de l'application. Et
c'est justement tout ce qu'explique cet article !
MQTT est un protocole de communication pour l'IOT, qui
fonctionne selon un mécanisme de publisher/subscriber.
Si vous souhaitez qu'une application entre dans la
conversation, une bibliothèque existe déjà, mais nécessite
tout de même un peu de confirmation.
Si vous utilisez go_router pour gérer la navigation dans votre
application, vous avez peut-être noté qu'il existe
deux manières de changer d'écran :
go() ou push(). Cet article vous explique les différences
d'usage entre les deux.
La fonction de null-safety en Dart existe depuis la version
2.12, mais la migration ne se fait pas toujours en un claquement
de doigts, comme le laisse pourtant penser l'outil de
migration automatique. Dans cet article officiel, on vous explique
comment effectuer la transition de manière progressive.
Guillaume Bernos nous revient avec un excellent
article sur les goldens, cette manière de vérifier visuellement
que vous n'avez pas de régression. Malheureusement la création des
Goldens n'est pas toujours simple et le package
Alchemist aide à faire cette tâche. Guillaume
vous explique comment l'utiliser, et ainsi gagner du temps !
Trucs & astuces
Des tutoriaux dans le Dartpad
Je n'avais jamais prêté attention, mais le Dartpad peut accueillir des
workshops (exemple).
Il suffit de le coder en Markdown, comme
sur ce repo git.
L'Overscroll d'Android 12
Si vous possédez un téléphone avec la dernière version d'Android, vous
avez peut-être remarqué que lorsque vous atteignez le début ou la fin
d'une liste (overscroll), un effet d'étirement
est appliqué. Vous pouvez obtenir ce même effet en Flutter, en utilisant
comme scrollBehavior le
AndroidOverscrollIndicator.stretch.
found a #Flutter crossword puzzle that was
already published a looong time ago.
If you're a new #flutterdev (or a fan of crossword puzzles)! Try to complete
it and send me your answers by DM, I'll verify your answers! 🧩💪💙
La newsletter se transformerait-elle en journal ? En tout cas, cette semaine vous
aurez le droit aux mots croisés ! Enzo Conty en a réalisé un, assez simple, mais en
anglais. Si cela n'est pas trop compliqué, n'hésitez pas à nous partager votre
grille une fois terminée !
Il est rare que je parle de mes packages, mais je pense que celui-ci pourrait vous
être utile. Il peut détecter comment une application Android ou iOS a été
installée. Provient-elle d'une boutique (Google, Apple
App Store, Samsung App Shop…) ? A-t-elle été installée manuellement
ou au contraire est-elle en debug ? Vous pourrez facilement le déterminer
désormais.
Votre backend s'appuie sur une brique avec Elastic Search ? Ce plugin vous fournit
une implémentation pour se connecter à l'API du moteur. À vous de voir si c'est
vraiment à l'application de consommer ces données ou si une API middleware ne ferait
pas mieux le boulot.
Comme annoncé la semaine dernière, Aloïs Deniel nous a expliqué comment
concevoir et implémenter nos propres design system en
Flutter. Le replay de la session est disponible sur
la chaîne YouTube !
Depuis la dernière version de Dart (2.16), il est possible de se connecter à
d'autres instances que Pub.dev, sans pour autant passer par des références Git.
Aloïs Deniel a créé un "micro" Pub dans lequel vous pourrez héberger vos
dépendances en toute discrétion.
Je ne vais pas vous faire l'affront de vous présenter ce qu'est un diff, mais plutôt
évoquer l'une de ses limites : si un seul symbole change sur une
ligne, l'intégralité est alors marquée comme ayant été modifiée. L'idée de
Difftastic est, selon sa description officielle, de "comparer des fichiers à
partir de leur syntaxe". Imaginons que vous ajoutiez un if à un
bloc, seul le if sera mis en avant, alors que le bloc a pourtant été
indenté.