C'est en cherchant du contenu pour cette newsletter que je suis tombé sur
cet article de The Register. Son auteur fait les gros titres en indiquant :
6 à 10% de l'utilisation CPU peut être utilisé pour faire clignoter un
curseur par Flutter.
De quoi parle-t-il
? Il existe en effet un
bug sur l'implémentation de Flutter sur macOS (de même
que sur iOS). Lorsque vous avez un TextField affiché à l'écran, le moniteur système montre une
utilisation CPU qui oscille entre 6 et 10%. Cela vient du curseur
clignotant qui force le dessin à l'écran de manière régulière. De temps en temps,
l'activité retombe vers les 0% avant de retrouver ce seuil de 6-10% selon les
configurations.
Lorsque
l'application est en arrière-plan Alors que l'on peut considérer cela
comme "acceptable", cette consommation persiste lorsque l'application n'est
plus au premier plan. En effet, que l'application possède le focus ou
non, elle va continuer à animer ce curseur. Ce bug, vieux de
plus d'un an, a irrité le journaliste qui en a aussitôt fait un
article, car à l'époque un Googler avait plus ou moins indiqué que ce comportement
était "normal".
Où en est-on
? Face à cette polémique, le bug est revenu sur le devant de
la scène et, à la fois, Tim Sneath et Eric Seidel ont pris la main sur le
sujet. Une solution court-termiste va consister à désactiver cette
animation si l'application n'est plus au premier plan. L'idée étant à
terme de ne redessiner que le strict minimum, plutôt que la totalité de l'écran, le
vrai problème soulevé ici.
Une mauvaise
publicité Bien qu'une
solution soit en cours d'élaboration, elle montre que
Flutter est devenu un projet d'envergure et que ce bug n'avait
peut-être pas reçu la priorité qu'il méritait. Le pouvoir des polémistes reste fort,
même si le desktop reste une bêta, puisqu'il suffit de consulter les commentaires de
l'article pour voir l'impact négatif qu'un tel article peut avoir.
D'une manière générale, la communauté francophone se montre
bienveillante vis-à-vis des différentes personnes qui la composent,
mais (GDE) a tout de même souhaité
créer une déclinaison francophone des Flutteristas, afin d'être la plus inclusive possible, que ce
soit pour Flutter ou le monde du développement en général. Petite interview avec
elle sur ce programme :
Qu'est-ce que les
"Flutteristas" ? Flutterista est une communauté globale pour les
personnes qui s'identifient en tant que femme ou personne non binaire et qui
s'intéressent au SDK Flutter. Dans sa version globale, un meetup mensuel
est organisé : une personne des équipes Flutter chez Google, ou un membre de la
communauté Flutter, présente un sujet. Pour participer à la communauté globale, rendez-vous
sur Meetup.
Comment rejoindre
le groupe ? Rendez-vous sur le Slack
Flutter Francophone, où vous pouvez joindre Elaine (@elaine [Paris])
pour qu'elle vous ajoute au channel dédié !
En début de semaine dernière, JetBrains a annoncé plusieurs nouveaux produits, dont
certains peuvent sembler très proches des fonctionnalités
existantes.
Fleet JetBrains
conçoit de très beaux produits, mais il faut tout de même avouer que l'on peut leur
reprocher leur grand nombre d'IDEs différents et la
quantité de fonctionnalités pas toujours utiles, voire même
connues.
L'idée de Fleet est d'avoir un IDE en plus ! Mais, rassurez-vous,
ce sera pour notre bien !
Ce nouvel IDE veut corriger les deux
problématiques préalablement citées avec le support du
multilangage, une ré-écriture de zéro (= plus léger), la
gestion du multi-utilisateur (~ Code
with Me) et la possibilité d'être exécuté soit en local,
soit en virtualisé. Pour le moment, l'accès est limité via
soumission d'un formulaire.
Développer à
distance Outre ce nouvel IDE, il faudra également compter sur JetBrains
Gateway. Cet outil entièrement gratuit vous permet
d'accéder à une instance d'IntelliJ IDEA à distance (ou des autres
IDEs de l'entreprise tchèque). La connexion peut s'effectuer soit par SSH, soit par
Spaces. L'idée est de pouvoir accéder à un IDE, peu importe où vous vous trouvez,
mais surtout l'exécuter sur une machine potentiellement plus puissante que celle que
vous possédez (pour le moment seul Linux est supporté).
Le reste de l'actu en bref'
⏫ Une nouvelle version bêta de Flutter est disponible :
2.8.0-3.3-pre. La version stable se rapproche toujours un peu plus ! Flutter
2.5 étant sorti le 8 septembre et avec un cycle trimestriel, on pourrait avoir
quelques surprises dans les prochains jours.
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 !
⏫ Comme chaque début de mois, les plugins pour les IDEs ont été mis à jour :
Pour Visual Studio Code, la version
3.29.0 a un changelog plutôt conséquent, mais apporte
essentiellement des corrections de bugs
Pour IntelliJ IDEA, les mois passent
et l'on sent un net ralentissement. La version 63.0 se concentre essentiellement
sur le support des dernières versions de l'IDE…
✨ Côté plugin/communauté, quelles sont les nouveautés ?
Le plugin pour avoir le bouton "Sign in with
Apple" est maintenant compatible avec Flutter Web !
(PR #263)
Vous pourrez désormais gérer la quantité de
logs, générée par le plugin CachedNetworkImage (PR #351)
Dans la version 2.4.0, il sera désormais possible de
charger un fichier ou de donner du HTML au format
String sur le plugin
officiel des WebView (PR #4544)
Toujours dans la version 2.4.0 de webview_flutter,
vous pourrez gérer les cookies envoyés à la WebView (PR #4561)
Le plugin path_provider dans sa future version 2.1.0 aura une
implémentation pour la méthode getDownloadsDirectory sur Android
(PR #4559)
💙 Le DartPad permet maintenant de choisir les versions
de Dart et Flutter que vous souhaitez utiliser entre stable, beta ou
ancienne (= stable d'il y a quelques versions).
📺 Android 12 est maintenant disponible sur les télévisions via les
plateformes Android TV et Google TV… Au
programme : interface en 4K, HDMI
CEC 2.0… Petit bémol toutefois : seule l'ADT-3 (la box dédiée aux développeurs) peut en bénéficier
aujourd'hui. Les Chromecasts et autres télévisions ne devraient l'obtenir qu'en
2022.
37% des lycéennes envisagent de
s'orienter vers une école d'informatique ou une école d'ingénieur, contre
66% pour les garçons
33% des filles sont encouragées par
leurs parents à s'orienter vers les métiers du numérique, contre
61% des garçons
Le métier d'expert informatique est considéré comme
masculin par 76% des lycéens. Parmi eux, 33%
pensent que les femmes y trouvent difficilement leur place
🤣 C'est ballot ! L'Amazon Appstore ne
fonctionne pas sur Android 12. Vu le nombre de téléphones avec cette version
aujourd'hui, ce n'est pas si grave (les tablettes Amazon utilisant encore des
versions antérieures du système)
👾 Swift
Playgrounds permet de développer des applications iOS en mode
no-code depuis un iPad. À la WWDC, en juin dernier, Apple avait annoncé
qu'il serait possible de publier sur l'AppStore sans passer par le couple
Mac / Xcode grâce à cet outil. Après des mois sans nouvelles, certains
développeurs testent actuellement cette fonctionnalité via
Testflight, preuve qu'elle ne devrait plus tarder à être déployée.
🐛 Sur un simulateur sur iOS 15, 100% de votre processeur est
utilisé par Spotlight ? Voici comment
résoudre le problème.
💸 Vous voulez un nom de domaine en .io ? Dépêchez-vous, puisqu'à
partir du 1er janvier, les prix
vont augmenter !
🤖 GitHub Copilot s'ouvre aux "Labs" et la première expérimentation
permet d'expliquer
en texte ce que fait le bout de code.
📸 Qualcomm, le célèbre fabricant de puces pour smartphones a annoncé le Snapdragon
8 Gen 1 qui sera le nouveau fer de lance de l'industrie en
2022. Outre des performances toujours meilleures, c'est la
fonction "Always-on" de la caméra qui
fait débat et inquiète…
🙅 Les applications multi-plateformes sont souvent reconnaissables,
car elles n'utilisent pas les composants des plateformes. Petit
guide des choses à ne pas faire pour se faire démasquer.
😢 La communauté Flutter doit malheureusement dire
au revoir à Kevin Gray, qui avait notamment travaillé sur l'application
Hamilton. Une pensée pour sa famille !
Parmi la longue liste de Widgets en Flutter figure celui permettant de
gérer le focus pour le clavier. Dans cet article, vous allez apprendre
son fonctionnement pour, soit le déclencher manuellement, soit au
contraire faire en sorte que votre Widget l'ignore.
Autant sur iOS, que sur Android, le mode sombre s'est imposé pour le
plus grand bonheur de nos yeux (et dans une moindre mesure pour
économiser de la batterie). Après l'article la semaine dernière sur le
fait que la
couleur blanche semble plus épaisse que le noir, celui-ci vous donne des conseils sur
la manière d'implémenter ce fameux mode sombre dans vos applications.
Le sujet récurrent de toutes les newsletters Flutter est bien évidemment
le state management. Dans cet article, l'auteur établit de manière
plutôt honnête les différences et avantages entre les trois solutions
citées.
Le site Flutter
Beads regorge de tutoriaux Flutter avec des questions assez
simples (afficher une ombre, mettre une image d'arrière-plan…). Dans cet
article par exemple, vous allez apprendre à donner la taille d'un Widget
en pourcentage.
Riverpod 1.0 est disponible depuis quelques jours et cet article vous
explique comment l'exploiter pour gérer une fonctionnalité en l'activant
/ désactivant.
Vous souvenez-vous du jeu Fruit Ninja qui consistait à découper des
fruits en faisant simplement des gestes sur son écran de smartphone ? Si
vous vous demandez comment reproduire ce genre d'interaction en Flutter,
vous avez la réponse dans cet article qui explique comment s'assurer de
détecter le bon geste (coordonnées + mouvement) et
l'animation qui l'accompagne.
Comme vous le savez, il existe plusieurs types de tests
allant des tests de code "pur", jusqu'aux tests finaux par un
utilisateur "réel". Dans cet article, vous allez comprendre la
distinction entre chaque, et savoir comment implémenter avec le pattern
BLoC, tout cela en Flutter. Un super bon article, d'autant plus qu'il
est en français. Vous n'aurez donc plus d'excuses pour ne pas tester
votre app !
Les outils de CI/CD sont légion et on compte parmi eux Semaphore qui offre ~21 heures de build gratuites
par mois. Dans cet article, vous apprendrez comment lancer le
build d'une application iOS pour y lancer des tests ou encore
générer l'IPA nécessaire à la publication sur l'App
Store.
So I built a game engine which works with
widgets instead of sprites because I have zero experience with graphic
design and no intention to learn it. Also I have a few cool ideas of what to
do with something like this. In the mean time, here's a basic widget flappy
bird I guess:
Deven Joshi, Google Developer Dart/Flutter s'est amusé à créer un petit
moteur qui permet de faire un Flappy Bird avec des Widgets Flutter ! Il a
également conçu un casse-briques
avec les conversations d'un chat. Une super idée pour un easter egg !
OtaString est un outil qui a deux objectifs : fournir la traduction d'une
application et permettre la mise à jour à distance. Sa
particularité est de pouvoir être hébergé n'importe où (un GitHub public suffit), ce
qui élimine les coûts parfois faramineux demandés par les services spécialisés. Pour
savoir comment utiliser ces deux bibliothèques, le plus simple est de suivre
ce guide.
L'un des gros avantages de Flutter est sa célèbre fonctionnalité de Hot
Reload, qui permet de gagner énormément de temps lors du
développement. Mais Flutter n'est pas Dart. Si vous voulez concevoir une
application en ligne de commande, il faut alors passer par une dépendance comme
celle-ci pour en bénéficier.
Storybook est initialement un
outil en Javascript pour tester ses composants de
manière indépendante. Dans sa déclinaison Flutter, elle permet de tester ses
Widgets. L'aspect pratique est que le résultat peut être exporté
en image et ensuite faire l'objet d'un test de non-régression "visuel"
via des plateformes comme Percy ou reg-suit.
Voici le replay de la session Flutter France organisée par Elaine Dias Batista.
Leticia Baleiro vous explique comment utiliser la notion de Clean Architecture en
Flutter. La présentation est certes en anglais, mais
particulièrement documentée.
Le YouTuber Fireship a lancé plus de 90 vidéos où il explique des
langages, frameworks, outils… en 100 secondes. Vous y retrouverez
ainsi Dart,
Kotlin,
Swift,
VS
Code… et
bien d'autres !
Installer sa propre instance de Pub n'est pas l'une des choses les plus aisées. Unpub vous facilite cela en utilisant une image
Docker reliée à une base de données MongoDB. Malgré tout, vous trouvez
l'installation encore trop difficile ? Unpubd s'occupe de tout pour vous, avec une
seule ligne de commande à lancer. Avoir son propre auto-hébergé n'a jamais été aussi
simple !
Responsively est plutôt un outil à destination des développeurs web… mais n'oublions
pas Flutter Web pour autant. Il vous permet d'afficher en parallèle un site sur
plusieurs tailles d'écran et d'effectuer des actions de manière
synchronisée sur tous, en même temps. Et bonne nouvelle cet outil est à
la fois opensource et gratuit !
Non, non ce n'est pas un lien sponsorisé, mais bien un outil qui utilise le "Refurb"
officiel d'Apple. Pour rappel, ce service permet d'obtenir des produits
reconditionnés de la marque avec une forte réduction. L'outil
Refurb Tracker vous permet d'activer des alertes par produit et
selon une fourchette de prix.