Le récap' de la Google I/O
|
Une édition spéciale de la newsletter vous récapitulant les principales annonces de la Google I/O 2021 autour de Flutter.
|
|
|
|
|
|
|
Lorsque Flutter 2.0 a été annoncé il y a quelques semaines, le Google Play comptait 150 000 applications Android développées avec Flutter. La courbe s’accélère, puisque Google annonce désormais avoir franchi le cap des 200 000.
|
|
Parmi celles-ci, WeChat et ses plus d’1,2 milliard d’utilisateurs ou encore ByteDance (l’entreprise derrière TikTok) avec près de 70 applications différentes !
|
|
Encore plus impressionnant, au cours du dernier mois, 1 application sur 8 soumise sur la boutique, était même sous Flutter !
|
|
Enfin selon des statistiques de SlashData, Flutter serait désormais le framework multi-plateforme le plus populaire (45%).
|
|
|
|
|
|
|
Medium Flutter
|
Comme son numéro l’indique, cette nouvelle itération est avant tout tournée vers la correction de bugs et l’amélioration des performances. Une nouvelle fois la communauté a grandement aidé, grâce aux 2 456 PRs intégrées et près de 3 100 tickets fermés. Ce rythme est à mettre en parallèle d’un effort soutenu en matière de tests, côté Google, pour éviter toute régression.
|
|
|
|
La migration vers le null-safety s’est faite sans encombre, puisqu’en prenant les 1 000 packages les plus populaires sur pub.dev, 80% supportent cette nouvelle manière de développer. A partir de Flutter 2.2, tous les nouveaux projets auront ainsi le null-safety activé par défaut.
|
|
|
|
|
|
Documentation Flutter
|
Grâce à la fonctionnalité de Dart permettant de découper du code généré en AOT, il devient désormais possible de télécharger dynamiquement des modules contenant du code en Dart, mais aussi des assets. Vous pourrez ainsi créer une application de base réduite, et installer ultérieurement des fonctionnalités additionnelles. Très prometteur, vous pouvez même passer par le Google Play pour y stocker et télécharger ces modules.
|
|
|
|
|
|
Documentation Flutter
|
Sur le channel dev uniquement, il est désormais possible de générer des applications de type Universal Windows Platform (UWP). Cette plateforme a pour objectif de créer des applications universelles entre Windows 10, la Xbox et Hololens. Une vidéo montre d'ailleurs le rendu de deux applications Flutter sur la Xbox.
Au Flutter Engage, Google avait annoncé une compatibilité avec le moteur Unity : il semblerait que Flutter s'ouvre au monde du jeu vidéo !
|
|
|
|
Les ralentissements au lancement, souvent pointés du doigt sur iOS sont corrigés
|
|
Les transitions entre les pages sur iOS/Cupertino sont plus fluides avec un temps d’affichage de la première frame réduit de 75%.
|
|
Une amélioration sur la gestion du texte et des raccourcis clavier.
|
|
Les icônes Material ont été mises à jour pour désormais offrir un catalogue de 7 000 symboles.
|
|
Grâce à une contribution d’un ingénieur de Sony, il est désormais possible de générer des applications Linux pour les terminaux avec processeur ARM64.
|
|
La documentation Flutter propose un article complet sur la gestion du responsive.
|
|
Le DartPad peut désormais afficher du texte en parallèle du code, très pratique pour partager des tutoriaux ou donner des cours !
|
|
|
|
|
|
Annonce sur Medium
|
Outre les corrections de bugs et améliorations, les deux principales nouveautés concernent les types aliases et Dart:FFI (cf bandeaux suivants). Comme détaillé dans l’annonce, des efforts ont également été mis en œuvre pour réduire la taille du code et l’empreinte mémoire. Une image Dart pour Docker est par ailleurs disponible, en supportant à la fois les versions stable et bêta du langage.
Voici le changelog complet.
Enfin si vous souhaitez connaître la roadmap détaillée du langage, un board est disponible à cet effet.
|
|
|
|
Les types aliases n’étaient utilisables que sur les Function (ex : le type VoidCallback utilisé dans les Ripple). Désormais leur domaine est élargi et vous permettra de pouvoir écrire ce type de code :
typedef IntList = List;
IntList il = [1,2,3];
Il permet ici de raccourcir l'écriture du nom du type, mais ce n’est pas son seul usage. Imaginons que vous ayez initialement ce code :
class BadName { /* some methods */ }
class OtherLibraries extends BadName { }
Puis finalement vous souhaitez forcer à ne plus utiliser BadName, mais cette modification est une “breaking change”. Dans ce cas, vous pouvez écrire :
class BetterName { /* some methods */ } // changed the original
@Deprecated("Use BetterName instead")
typedef BadName = BetterName;
D’autres exemples sont à retrouver sur GitHub ou sur l’annonce.
|
|
|
|
Pour rappel Dart:FFI est le mécanisme permettant d’appeler du code écrit en C depuis Dart. Après un passage en version stable sur Dart 2.12, on peut désormais compter sur le support des structs qui contiennent des inline arrays et des packed structs.
|
|
|
|
|
|
Flutter Flow était dans mon radar, mais malheureusement restait en bêta fermée. Désormais cet outil développé en Flutter est disponible pour tous et permet de concevoir des applications Flutter directement depuis votre navigateur ! Il se décline en version gratuite (UI Builder & Firebase), ou payante, 40$ HT avec l’intégration de GitHub, la possibilité d’appeler des APIs, ou encore un support dédié. A tester !
|
|
|
|
|
|
Tizen est le système d’exploitation qu’utilise Samsung sur ses télévisions ou ses montres connectées Galaxy Watch. Désormais le géant coréen vient de créer une extension pour le SDK Flutter permettant de concevoir vos applications pour ce système.
|
|
|
|
[Nouveau] Outre les achats in-app via le Google Play/App Store, Flutter pourra désormais utiliser Android Pay & Google Pay grâce à un plugin dédié.
|
|
[Mises à jour] Le plugin officiel pour Admob gère désormais le null-safety et celui pour les paiements in-app a été profondément modifié.
|
[Nouveau] Sur pub.dev, certains packages sont certifiés Flutter Favorite par la communauté. 24 nouveaux font leur entrée dans la liste.
|
|
[Nouveau] Aussitôt Firebase App Check annoncé, son package Flutter est disponible
|
|
|
|
|
|
Les codelabs sont des tutoriaux mis en ligne par Google. Un nouveau vient d’être ajouté à la liste : comment intégrer les paiements in-app au sein d’une application Flutter.
|
|
|
|
|
|
Voici les différentes sessions qui ont eu lieu :
|
|
|
|
|
|
Material Design est un ensemble de règles de design que Google utilise sur Android depuis 2014. Après une V2, Material Theming, offrant une plus grande personnalisation pour les marques, la troisième itération va pointer son nez d’ici à la fin de l’année. Le paradigme est désormais d’offrir à l’utilisateur un design personnalisé, d’où le nom de “Material YOU”. Son implémentation en Flutter devrait suivre.
|
|
|
|
|
|
Beaucoup de nouveautés ont été dévoilées: les principales, étant un tout nouveau design Material YOU, des APIs repensées pour le système de Widgets (merci iOS), une notification lorsqu’on copie depuis le presse-papier façon iOS, l’ajout d’un Splashscreen automatique…
|
|
|
|
|
|
Wear OS, le système d’exploitation pour les montres connectées basé sur Android, semblait proche de l’agonie, mais Google lui donne une nouvelle chance, grâce au rachat de Fitbit et un tout nouveau partenariat avec Samsung. Proposer une application pour les montres, ajoutée à celle des téléphones, va peut-être redevenir un passage obligé…
|
|
|
|
|
|
A partir du 1er août, toutes les nouvelles applications devront être soumises au format AppBundle, il ne sera plus possible d’envoyer directement des APKs.
|
|
Sur la partie in-app, il sera désormais possible d’acheter non pas un “item”, mais plusieurs en laissant l’utilisateur spécifier une quantité
|
|
Il sera possible de regrouper plusieurs abonnements en un seul
|
|
Vous pourrez intégrer des plans prépayés, c’est-à-dire proposer l’équivalent d’un abonnement mais sur une période de temps limitée
|
|
|