|
Ouvrir la newsletter dans le navigateur |
![arrow](https://mcusercontent.com/680a000cb817c26ca49ef8da1/images/50536961-81f5-4126-9737-079f8f73efed.png) |
|
|
|
Flutter App Clinic : c’est ce midi ! |
🥰 Merci à tous pour vos soutiens et messages sur Tipeee, cela fait vraiment chaud au cœur de recevoir autant d'encouragements. J'espère que je serai à la hauteur 😇.
📅 Si vous lisez la newsletter le lundi 04, le Flutter App Clinic a lieu ce midi. Petit rappel du concept : plusieurs développeurs mettent leur application "sur le grill". Un jury d'experts les examine en direct pour mettre en avant leurs points forts, mais aussi les éléments qui peuvent être améliorés (tant en termes de code, que d'ergonomie). En parallèle, vous pouvez partager vos avis sur le chat en direct.
Bonne lecture et, je l'espère, à ce midi ! |
|
|
|
![Image go_router : le Navigator 2.0 simplifié](https://mcusercontent.com/680a000cb817c26ca49ef8da1/images/fc1aae6d-256a-7d46-27ed-c1721dda49d0.png) |
![Image go_router : le Navigator 2.0 simplifié](https://mcusercontent.com/680a000cb817c26ca49ef8da1/images/fc1aae6d-256a-7d46-27ed-c1721dda49d0.png) |
|
Un navigator 1.0 qui n'était pas satisfaisant Pour changer d'écran sur Flutter, vous devez utiliser le composant nommé Navigator. Dans sa première itération, il est, certes, simple à utiliser, mais a quelques limitations : il s'utilise uniquement de manière impérative et n'est pas un Widget. Pour Flutter Web, la gestion de l'historique est compliquée, notamment si l'on souhaite ajouter des pages intermédiaires.
Mais un Navigator 2.0 trop complexe Devant les critiques du Navigator 1.0, Google a alors voulu boucher les fonctionnalités manquantes, en créant ce que l'on appelle le Navigator 2.0. Mais las, on est passé d'un code très simple dans la version 1, à énormément de code à écrire. De ce fait, de nombreuses bibliothèques de la communauté ont essayé d'apporter une solution en simplifiant l'implémentation.
Une solution "officielle" C'est maintenant au tour de Google, ou plutôt d'un des ingénieurs de l'équipe, de proposer sa solution. Il vient en effet de publier un package permettant de simplifier l'utilisation du Navigator 2.0. Selon la description officielle :
L'objectif de go_router est d'utiliser des routes déclaratives pour réduire la complexité, quelle que soit la plateforme (mobile, web, desktop), gérer les deep-links sur Android, iOS et le web, tout en offrant un expérience utilisateur bien plus accessible. |
|
|
![Image Apple de plus en plus critiqué](https://mcusercontent.com/680a000cb817c26ca49ef8da1/images/2b9ff7f1-0de9-2887-c919-451f48c0c528.png) |
![Image Apple de plus en plus critiqué](https://mcusercontent.com/680a000cb817c26ca49ef8da1/images/2b9ff7f1-0de9-2887-c919-451f48c0c528.png) |
|
Tout commence par l'application Accessible Hangman En début de semaine dernière, le développeur du jeu Accessible Hangman s'est fait retirer son application lors d'une mise à jour, au motif qu'elle était trop similaire à d'autres applications de l'App Store. Certes son application de type "pendu" n'est pas unique, mais elle est la seule à être optimisée pour les malvoyants. Malgré ses appels, rien ne semble faire changer d'avis l'équipe de validation.
Puis la question des "bug bounty" revient sur le tapis Un autre développeur s'est fait remarquer par un article à charge. L'idée des programmes de bug bounty est de permettre aux hackers ayant trouvé des failles de sécurité, de communiquer avec l'éditeur en amont, pour qu'il puisse les corriger. En contrepartie, les sociétés offrent en retour une dote financière. Mais chez Apple, soit on corrige les failles "ni-vu ni-connu", en ne créditant par la personne l'ayant découverte, soit on ne les corrige pas du tout ! Pour finir, le développeur revient sur les manières dont on peut très facilement contourner les vérifications de l'App Store, preuve que rien n'est infaillible.
Apple permet (enfin) de noter les applications installées Jusqu'à présent, les applications préinstallées comme le client mail, Apple Maps… ne pouvaient pas être notées sur l'App Store. C'est désormais possible et le moins que l'on puisse dire est qu'elles ne rencontrent pas un franc succès. En général , elles tournent entre 2 et 4 étoiles ! |
|
|
|
Le reste de l'actu en bref' |
|
|
⏫ Une nouvelle version stable de Flutter est disponible : 2.5.2 (changelog). Elle corrige trois bugs, dont notamment les lenteurs sur IntelliJ. Dart 2.14.3 est également disponible et corrige deux bugs. |
|
![](https://mcusercontent.com/680a000cb817c26ca49ef8da1/images/a1f693c7-c58f-f7a4-491d-940625ba30a0.png) |
La réalisation de cette newsletter prend 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 !
|
Soutenir sur Tipee
|
✨ Du côté des Pull Requests, on peut noter :
- Le Widget pour la Navigation Bar de Material You (ou Material v3) est maintenant complètement terminé (PR #83047
) - La Material Banner a quelques améliorations : une animation de slide ou encore le support de l'élévation (PR #90380
) - Le mécanisme d'Auto-fill (remplissage automatique des mots de passe, noms, prénoms…) va passer d'un mécanisme d'opt-in à opt-out, c'est-à-dire qu'il sera actif par défaut et il faudra demander sa désactivation. Aujourd'hui c'est l'inverse (PR #85554
) - Le Widget DraggableScrollableSheet
va avoir un attribut snapSizes permettant de définir plusieurs paliers. Lorsque l'utilisateur arrêtera son geste de scroll, le Widget se mettra dans la position la plus proche (PR #84394 ) - La Scrollbar va enfin se rapprocher du comportement natif : sans avoir scrollé et si la souris se dirige vers l'emplacement de la Scrollbar… elle apparaîtra. Aujourd'hui il faut commencer à scroller pour qu'elle soit visible ensuite (PR #90636
) |
|
💶 Un hackathon Dart/Flutter aura lieu du 22 au 24 octobre avec 5 000 $ de prix à gagner. |
|
🕹️ Flame , le moteur pour concevoir des jeux en Flutter va proposer sa quatrième conférence "FlameCon" le 13 octobre prochain. Le lien du stream est déjà disponible. |
|
🔁 A partir du 31 décembre, les images officielles Docker pour Dart vont changer d'adresse et auront par ailleurs de meilleures performances et une taille réduite. Le nouveau lien sera celui-ci . |
|
🔖 Vous cherchez un exemple d'application en prod' sur Flutter Web ? Supernova, un outil permettant la création de design systems, vient de se lancer. |
|
📃 Pour vous aider à vous lancer dans Fuchsia, de nouveaux guides viennent d'être publiés sur le site officiel : "Introduction to Fuchsia", "Building Fuchsia", "Fuchsia Components" et "Fuchsia Interfaces". |
|
📅 Google vient d'annoncer la tenue de quatre conférences en ligne : l'Android Dev Summit (27 et 28 octobre), le Firebase Summit (10 novembre), le Google Smart Home Developer Summit (21 octobre) et enfin le Chrome Dev Summit (03 novembre) |
|
📏 Si vous avez une application existante pour iPad et qui possède l'attribut UIRequiresFullScreen=YES, pensez à la recompiler avec le dernier SDK pour qu'elle s'adapte au nouvel iPad mini . |
|
🎨 SF Symbols, le pack d'icônes fourni par Apple, est disponible dans une nouvelle version avec 600 nouveaux éléments et la possibilité d'avoir une teinte bi-colore. A noter qu'en Flutter, vous pouvez passer par cupertino_icons , mais le package n'a pas encore été mis à jour. |
|
🥱 Apple se réveille enfin et va supporter dans WebKit l'API nommée PushEvent. Elle permet de gérer les pushs et afficher une notification dans les WebView. |
|
🤖 Après de nombreuses années à faire "sa propre vie", Android utilisera la version "normale" du noyau Linux en 2023 . |
|
📱 Android 12 n'est pas encore sorti, que l'on s'intéresse déjà à la version 12.1 qui serait dédiée aux écrans pliants / pliables. XDA-Developers a compilé une version à partir du code open source et montre ce à quoi on pourra s'attendre en termes d'interface. |
|
🐌 Firebase Crashlytics va désormais surveiller les erreurs de type "l'application ne répond plus" (ou ANR). La fonctionnalité est disponible en version alpha, à condition de remplir ce formulaire . |
|
🤑 Très bonne nouvelle pour AppWrite, le concurrent open source à Firebase, qui vient de lever 10 millions de dollars . |
|
🏢 Une étude s'intéresse aux meilleures villes pour les ingénieurs logiciels. Dans le monde francophone, Montréal tire son épingle du jeu et Paris est en milieu de peloton. |
|
📊 Selon une autre étude , 51% des développeurs sont prêts à démissionner à cause des "mauvaises pratiques" de codage. |
|
🤖 Gitpod, GitLab, VMware, Uber, SAP, Sourcegraph, RStudio et SUSE viennent d'annoncer OpenVSCode Server , qui permet d'exécuter une instance de VS Code sur une machine distante et d'y accéder depuis son navigateur. |
|
📚 La société derrière le célèbre SonarQube propose un ebook gratuit "Building mobile apps at scale " qui revient sur les nombreux défis auxquels doivent faire face les applications mobiles. Bien évidemment des solutions sont proposées pour chacun des cas. |
| |
|
Vous n'avez peut-être pas connu le Bi-Bop, mais il s'agissait de l'ancêtre de nos téléphones. Il a d'ailleurs fêté ses 30 ans début octobre. A mi-chemin entre la cabine téléphonique et le téléphone portable, il permettait de passer et recevoir des appels téléphoniques.
Sa particularité ? Vous ne pouviez l'utiliser qu'à côté d'une borne Bi-Bop. Il fallait toutefois éviter de bouger, car une fois la portée des 300m d'une borne atteinte, il n'y avait pas de switch automatique vers une autre borne.
Véritable concurrent français du GSM, France Télécom a réussi à attirer jusqu'à 300 000 abonnés, bien loin des 500 000 initialement espérés. A l'époque, le téléphone coûtait 1 890 FR, l'abonnement 54,50 FR et chaque communication était facturée 0,83 FR la minute.
Malheureusement cette innovation française n'a jamais vraiment décollé, face à la concurrence du GSM jugé plus performant et un réseau de bornes trop limité. Après le minitel, c'est une autre technologie française qui aura fait un flop. Pour les plus nostalgiques, vous pouvez regarder cette vidéo de l'INA qui montre un reportage de l'époque. |
|
|
Articles & tutoriaux Flutter |
|
|
|
En Flutter, la notion d'accessibilité est assurée par les différents Widgets de type Semantics. Cet article vous explique comment tester les side-effects. Par exemple : afficher un SnackBar quand le callback onTap est évoqué. |
|
|
|
|
|
Au chapitre des solutions de state management, Riverpod est une bibliothèque qui est très appréciée (loin derrière les critiques de GetX). Si vous voulez découvrir comment l'utiliser, cet article introductif devrait vous aider. |
|
|
|
|
|
Flutter a certes une courbe d'apprentissage courte, mais il a aussi l'inconvénient de laisser croire que l'on crée une application parfaite dès la première fois. Pour vérifier que les performances sont optimisées, cet article vous explique comment utiliser les différents outils proposés par le framework pour vous en assurer. |
|
|
|
|
|
Lorsqu'il s'agit de récolter des statistiques d'utilisation d'une application Google/Firebase Analytics est la solution la plus répandue, mais Amazon propose également son service. Dans cet article vous apprendrez comment le mettre en place dans une application Flutter. |
|
|
|
|
|
Le Flutter Inspector affiche l'arborescence des Widgets et permet d'obtenir des informations sur certains attributs. Sur vos Widgets, vous pouvez faire de même en modifiant la méthode debugFillProperties… et cet article vous explique comment le faire. |
|
|
|
|
|
Au plus vous ajoutez des widgets dans votre application, au plus sa complexité grandit. Dans cet article, Majid Hajian vous donne ses bonnes pratiques pour, à la fois optimiser votre code, mais aussi le rendre plus lisible. |
|
|
|
|
|
Pour vos appels d'API, vous utilisez probablement du Rest, car c'est de loin la manière la plus simple de procéder. Mais dès lors que l'on souhaite faire évoluer les APIs, le système ne se montre pas si adapté. C'est de ce constat qu'est né GraphQL. Dans cet article vous apprendrez comment consommer des APIs fournies en GraphQL. |
|
|
| |
|
![Image Tips](https://mcusercontent.com/680a000cb817c26ca49ef8da1/images/e98cf66b-2ae6-01a6-d4b7-4dddc33cdb9c.png) |
![Image Tips](https://mcusercontent.com/680a000cb817c26ca49ef8da1/images/e98cf66b-2ae6-01a6-d4b7-4dddc33cdb9c.png) |
|
|
Lister les dépendances (et les sous-dépendances) d’un projet |
Grâce à la commande flutter pub deps, vous allez pouvoir obtenir la liste des dépendances (avec leur version) du projet courant. Mais surtout, vous pourrez obtenir pour chaque dépendance… les dépendances qu'elle utilise à son tour… et ainsi de suite. |
|
|
|
|
Passer des attributs/paramètres à votre application |
Lorsque vous exécutez les commandes flutter run ou flutter build, vous pouvez rajouter des paramètres de type --dart-define="cle=valeur". Vous pourrez ensuite les récupérer dans votre code à l'aide des méthodes String/bool/int/double.fromEnvironnement('cle', defaultValue: xxx) |
|
|
|
|
Créer des graphiques pour vos README |
Pas toujours facile de créer un graphique en ASCII à la main. Mais grâce à l'outil ASCII Flow, vous les concevez dans une interface en mode drag'n'dr avant de pouvoir les exporter au format texte. |
|
|
| |
Bibliothèques Dart/Flutter |
|
|
|
|
|
|
|
![Image Outil Shadows](https://mcusercontent.com/680a000cb817c26ca49ef8da1/images/2155197d-e431-a6c6-2708-470d5ece8b9e.png) |
![Image Shadows](https://mcusercontent.com/680a000cb817c26ca49ef8da1/images/2155197d-e431-a6c6-2708-470d5ece8b9e.png) |
|
|
En Flutter, comme sur le web, vous pouvez facilement appliquer des ombres. Cet outil en ligne vous permet de visualiser les effets de blur, radius et distance. Très utile ! |
|
|
![Image Outil SQlime](https://mcusercontent.com/680a000cb817c26ca49ef8da1/images/6aff9df5-eea4-c25b-8acb-a160a5ddc1ba.png) |
![Image SQlime](https://mcusercontent.com/680a000cb817c26ca49ef8da1/images/6aff9df5-eea4-c25b-8acb-a160a5ddc1ba.png) |
|
|
En matière de SQL, SQLite est la base de données de référence sur mobile. Ses avantages : tenir en un seul fichier, tout en bénéficiant d'une grande partie des fonctionnalités des bases de données SQL "classiques" de type MariaDB.
SQLime vient vous prêter main forte pour tester des requêtes, sans avoir peur de tout casser sur votre application. Entièrement en ligne, vous n'avez qu'à lui donner le fichier et vous pourrez tester vos requêtes SQL (en lecture ou en écriture). Autre fonctionnalité intéressante : pouvoir partager vos requêtes. |
|
|
|
|
Offres d'emploi, missions et stages |
|
| |
|
Seyos - Angers, 49 |
Au sein du service Recherche et Développement, vos missions seront : Vous serez porteur / porteuse de fonctionnalités pour lesquelles vous interviendrez sur l'ensemble du cycle de vie, de la conception à la production. Vous aiderez également à garantir la stabilité de la stack technique et à améliorer en continu la performance. |
| |
|
Sprintechnology - Valbonne, 06 |
Sprint Technology est une société experte des développements web et mobiles. Nous transformons les processus métier de nos clients en construisant avec eux des solutions qui viennent résoudre leurs problèmes business. Notre solution modulaire MOBIREPORT innovante vendue en SAAS offre de nombreux services innovants dans la mobilité depuis une suite logicielle unique qui s'impose aujourd'hui comme l'outil central du dispositif d'exploitation d'un réseau de transport public. Actuellement en phase de déploiement national et européen, de nombreux nouveaux modules constituent la roadmap de développement 2021/22 et c'est dans ce cadre que nous cherchons à renforcer notre équipe avec un(e) développeur(se) mobile Flutter. |
| |
Vous recherchez un talent Flutter ? Envoyez-les sur Flutter-Jobs.tech ! |
![arrow](https://mcusercontent.com/680a000cb817c26ca49ef8da1/images/50536961-81f5-4126-9737-079f8f73efed.png) |
|
|
|
|
04 octobre |
En ligne |
Flutter App Clinic |
|
|
21-22 octobre |
Nantes |
Devfest Nantes |
|
29-30 octobre |
En ligne |
Flutter Kaigi |
|
|
| |
|