Flutter 2 permet de créer des apps pour les ordinateurs et des sites web

Nicolas Furno |

Flutter est un framework d’interface multiplateforme conçu par Google et pensé à l’origine pour les apps mobiles. Le même code peut servir à générer des apps iOS et Android natives et c’est d’ailleurs cet outil que notre développeur a utilisé pour créer notre app Android. Avec la deuxième version qui vient de sortir, Flutter pourra aussi servir à créer des apps desktop pour macOS, Windows et Linux et même des sites web.

Rive, une app codée avec Flutter 2, convertie en un site web (image Google).

Cette ouverture est en travaux depuis près de deux ans et la création d’apps desktop avec Flutter 2 est toujours considérée en bêta à ce stade. Les sites web en revanche sont prêts pour la production et il est possible de convertir une app en un site compatible avec tous les navigateurs modernes et sans avoir à tout réécrire. C’est la promesse de ce projet après tout, de simplifier le développement avec une base commune pour toutes les plateformes.

Sur les ordinateurs traditionnels, Google peut compter sur le soutien de deux acteurs de poids : Microsoft a contribué au projet pour améliorer l’intégration des apps Flutter 2 dans Windows et l’entreprise travaille sur une meilleure prise en charge des apps sur la Surface Duo, sa tablette en deux parties sous Android. Canonical, l’entreprise derrière la distribution Linux Ubuntu, a de son côté choisi de faire de Flutter son environnement de développement de prédilection pour ses futures apps. L’outil d’installation d’Ubuntu a d’ores et déjà été réécrit avec le framework de Google.

L’outil d’installation d’Ubuntu a été réécrit en utilisant Flutter (image Google).

Les ambitions de Flutter dépassent même le cadre traditionnel de l’informatique. Toyota va l’utiliser pour écrire les interfaces de ses futures voitures et Google cherche aussi une ouverture du côté des téléviseurs connectés. Le géant de la recherche a aussi commencé à réécrire certaines de ses apps mobiles en utilisant Flutter. C’est le cas notamment de Google Pay, mais aussi de Stadia ou encore Google Nest Hub.

Flutter est un projet open-source et gratuit. Sous le capot, il repose sur Dart, un langage de développement créé par Google depuis plusieurs années.

avatar marc_os | 

> compatible avec tous les navigateurs
Même Safari ?

avatar Nicolas Furno | 

@marc_os

Oui.

avatar Florent Morin | 

Nivellement par le bas de l’expérience utilisateur : on supprime tout ce qui fait la différenciation entre les OS. Enfin bon. C’est toujours mieux que Ionic.

avatar borongaj | 

@FloMo

Je suis curieux de lire les arguments pour justifier le « c’est toujours mieux que Ionic » !

avatar byte_order | 

@FloMo
> on supprime tout ce qui fait la différenciation entre les OS

Différencier via l'UX un OS d'un autre n'est pas en soit une "fonctionnalité" pour l'utilisateur.
P'tet que, au contraire, avoir la même UX quelque soit l'OS en dessous est une fonctionnalité qui a plus de sens pour lui.

Etre à l'aise avec l'interface de YouTube, Netflix, Spotify etc que ce soit sur sa télé, sur son navigateur web de l'ordinateur ou sur le smartphone, cela fait p'tet plus sens que de devoir se dire "ah ouais, mince, sur cet OS l'app de machin pour rafraichir faut faire Ctrl+R, sur tel OS c'est F5, sur tel autre c'est en cliquant sur l'icone rigolo".

Par ailleurs, depuis toujours, la customisation c'est *plus* cher. Tans que les utilisateurs sont prêt à la payer, pas de problème. Mais dans le cas contraire, vous m'excuserez, mais c'est assez logique que les développeurs cherchent à unifier leur code, les fonctions et l'UX pour toutes les plateformes ciblées, sachant qu'ils vaut mieux ne pas trop dépendre que d'une seule cible, en particulier une où l'arbitraire peut venir sans prévenir remettre en cause pas mal d'investissement.

avatar Ginger bread | 

@byte_order

+1

avatar Florent Morin | 

@byte_order

> Différencier via l'UX un OS d'un autre n'est pas en soit une "fonctionnalité" pour l'utilisateur.
P'tet que, au contraire, avoir la même UX quelque soit l'OS en dessous est une fonctionnalité qui a plus de sens pour lui.

Une bonne UX signifie que l’utilisateur n’aura pas à apprendre l’interface utilisateur. L’UI reprendra les guidelines du système. Ainsi, l’utilisateur sait exactement comment une information va être présentée, à quoi correspond une icône, etc.

Après, il y a les repères propres au produit. Mais ce n’est pas contradictoire avec une UI native.

Par exemple, l’icône « partager » sera celle de l’OS, mais l’icône « groupe d’amis » sera propre au produit.

> Etre à l'aise avec l'interface de YouTube, Netflix, Spotify etc que ce soit sur sa télé, sur son navigateur web de l'ordinateur ou sur le smartphone, cela fait p'tet plus sens que de devoir se dire "ah ouais, mince, sur cet OS l'app de machin pour rafraichir faut faire Ctrl+R, sur tel OS c'est F5, sur tel autre c'est en cliquant sur l'icone rigolo".

Aujourd’hui, ce n’est pas le cas. Et ça n’aurait pas de sens pour le constructeur puisque leur spécificité leur permet de se distinguer de la concurrence.

Mais votre propos est juste dans le sens où il faut des repères propres à la marque qui soient « cross platform ».

C’est toute la difficulté du design : conjuguer l’expérience utilisateur proposée par l’appareil et les repères proposés par la marque.

> Par ailleurs, depuis toujours, la customisation c'est plus cher. Tans que les utilisateurs sont prêt à la payer, pas de problème. Mais dans le cas contraire, vous m'excuserez, mais c'est assez logique que les développeurs cherchent à unifier leur code, les fonctions et l'UX pour toutes les plateformes ciblées, sachant qu'ils vaut mieux ne pas trop dépendre que d'une seule cible, en particulier une où l'arbitraire peut venir sans prévenir remettre en cause pas mal d'investissement.

Si l’utilisateur n’est pas prêt à payer, c’est que le produit n’est pas assez bon.

En mon sens, si on veut du générique à pas cher, on va sur le web.

avatar Ginger bread | 

@FloMo

Payer ?

avatar borongaj | 

@FloMo

Ionic permettant depuis toujours d’accomplir l’ensemble des points évoqués (UI dédiée pour chaque plateforme, UX de qualité, etc.), j’attend toujours les arguments en faveur de Flutter. Surtout après avoir autant dénigré Ionic.

D’autant qu’avec Capacitor, il est possible de produire une PWA avec la même base de code, et avec les technos web.

Pourquoi donc passer par Flutter, pour produire du web, alors que l’on peut le faire directement avec les technos... web ?

avatar byte_order | 

@FloMo
> Si l’utilisateur n’est pas prêt à payer, c’est que le produit n’est pas assez bon.

C'est une vision très rétrograde du marché des applications.

Vous trouvez Google Search pas assez bon ? Google Maps ? Youtube ? Spotify ? Deezer ? Discord ? Netflix ? Pourtant, les apps web, android, ios sont gratuites.

Merci de ne pas confondre le prix d'un app avec le prix de la fonction rendu par l'app.
Le modèle de l'app qu'on achète pour ses fonctions, c'est plus autant d'actualité en 2021 qu'avant, hein.

> En mon sens, si on veut du générique à pas cher, on va sur le web.

Et c'est en pratique ce qui se passe.
En pratique, ce sont des technologies web qui sont derrière tout cela, à chaque fois.
Et il se trouve que les utilisateurs, ils sont assez content de Netflix, de Youtube, même si c'est gratuit et même si l'interface n'est pas "aussi" native que peut l'être celle de... disons, AppleTV+.

Il se trouve que le générique pas cher n'est pas forcément synonyme de mal foutu.

Je comprends que cela menace les personnes qui sont très attachés aux spécificités de leurs OS préférés (et pour certain leur gagne pain), mais la réalité c'est que Madame Michu, elle s'adapte plus facilement à une interface un peu typée *mais* identique sur tous ces appareils quelque soit leur marque qu'elle n'arrive à s'adapter à une interface différente sur chaque appareil pour la même fonction.

La fonction prime sur la plateforme. L'OS est destiné à devenir invisible.

avatar BeePotato | 

@ byte_order : « Différencier via l'UX un OS d'un autre n'est pas en soit une "fonctionnalité" pour l’utilisateur. »

Si, pour ceux qui s’y intéressent.

« Mais dans le cas contraire, vous m'excuserez, mais c'est assez logique que les développeurs cherchent à unifier leur code, les fonctions et l'UX pour toutes les plateformes ciblées, sachant qu'ils vaut mieux ne pas trop dépendre que d'une seule cible, en particulier une où l'arbitraire peut venir sans prévenir remettre en cause pas mal d’investissement. »

Oui, vu sous cet angle c’est en effet plus logique pour le développeur.
Mais ça n’en est pas moins un nivellement pas le bas.

Tout ceci n’a rien de nouveau, notons bien.

avatar ech1965 | 

Unifier le look des applis sur tous les OS c'est un manque de respect flagrant de l'utilisateur:
EX: les boutons OK/Cancel ne sont pas positionnés pareil sur Mac et Windows. Que faire et comment "uniformiser" ? Faire partout comme sur macos ? partout comme windows ? "niveler par le bas et ne plus mettre de boutons ?"

avatar Ginger bread | 

@ech1965

Pas du tout, tu facilites l’usage de l’utilisateur lambda, tu n’es plus déboussolé à chercher tel bouton ou icone et en plus le travail du développeur est facilité. Pourquoi faire compliqué quand on peut faire simple en cross-platform?
Forcément Apple aurait voulu le faire avant tout le monde aurait acclamé le travail.

À l image de Edge par exemple c’est un succès.

avatar byte_order | 

@ech1965
> Unifier le look des applis sur tous les OS c'est un manque de respect flagrant
> de l'utilisateur:
> EX: les boutons OK/Cancel ne sont pas positionnés pareil sur Mac et Windows.

Pour une même application venant du même éditeur et proposant la ou les mêmes fonctions, ce qui manque de respect flagrant c'est *justement* de lui changer sa mémoire musculaire, car vous pouvez parier déjà qu'il va râler après avoir cliquer sur Ok plutôt que Cancel "chiotte, c'est inversé sur cet OS !".

> Que faire et comment "uniformiser" ? Faire partout comme sur macos ?
> partout comme windows ?

Faire partout avec un framework UI/UX dispo partout.
C'est *déjà* le cas pour l'immense majorité des sites et apps web, le navigateur n'ayant que très peu d'importance au final, sauf usage très spécifique et poussé.

> "niveler par le bas et ne plus mettre de boutons ?"

Est-ce que l'adoption du Flat Design comme chez la concurrence était un nivelement par le bas ou un pas fait pour faciliter la vie des utilisateurs plutôt que de leur imposer de jongler avec 2 très différentes approche d'UX, le skeuomorphisme cherchant a simuler une métaphore du monde physique qui ne tient pas forcément debout mais dont on pense que l'utilisateur saura instinctivement comment s'en servir et le minimalisme du Flat Design, qui cherche à ne propose que le strict minimum en réduisant la charge visuelle au maximum pour mettre le contenu en avant, pas l'interface ?

Il me semble inévitable que les UX des fonctionnalités applicatives vont continuer de s'uniformiser.
Cela passe non pas par du nivellement mais par une rationalisation des UX qui font sens de facto partout quelque soit la plateforme.

avatar Ginger bread | 

@byte_order

On appele cela les habitudes utilisateur/ user habits.

avatar byte_order | 

@BeePotato
> Si, pour ceux qui s’y intéressent.

C'est pas franchement la personne lambda, ça.
Et, d'ailleurs, c'est pas la clientèle typique d'Apple de ne pas vouloir savoir comment ça marche mais de vouloir que cela marche simplement ?

La réalité, c'est que les gens n'utilisent plus comme dans les années 90/2000 une seule plateforme informatique, ils en utilisent plusieurs quotidiennement. Leur smartphone, l'ordinateur à leur boulot pour beaucoup, l'ordinateur et/ou la tablette à domicile, la console de jeu, la télé connecté dans le salon, le truc intégré dans leur voiture.

Et derrière tout cela, y'a pas qu'un seul OS, loin de là, même chez les fans du tout-Apple ils n'ont pas du Apple dans leur Tesla ni, souvent, dans leur télé connectée ou ordinateur du boulot.

> Mais ça n’en est pas moins un nivellement pas le bas.

si l'UX de l'app est la même ou presque quelque soit le plateforme, je vois pas en quoi, au contraire l'utilisateur peut exploiter sa connaissance de l'app - qui est ce qu'il veut utiliser, utiliser l'OS y'a que les développeurs qui le font, les utilisateurs, eux, utilisent des apps (même si certaines sont livrées *avec* l'OS, cela reste des apps - sans se prendre la tête a s'étonner que la même app ne se comporte pas de la même manière partout.

C'est assez étrange de lire dans la communauté qui défend le "it just works" que c'est mieux qu'une app qui rend le même usage sur chaque plateforme ne propose pas la même UX selon la plateforme !?

Ou alors c'est parce que cela souligne que les spécificités de chaque OS sont finalement assez périphériques aux besoins communs du plus grand nombre d'utilisateurs, ce qui rend la défense de la prétendue supériorité de tel OS sur tel autre assez inutile...

Le multi-plateforme n'a jamais été aussi présent. Les fonctions n'ont jamais été autant côté serveurs. Va falloir vous habituez à ce que l'app ne soit surtout qu'une interface "cliente", et que celle-ci soit de plus en plus uniformisée sur toutes les plateformes supportées.

Y'a une place pour un framework d'UI/UX bien foutu multiplateforme. Et y'a de la demande.

Sauf à ce que madame Michu soit prête à payer l'achat de l'app cliente de Netflix & co pour lui faire une version spécifique pour macOS, une autre pour iOS, une autre pour le PC Windows de son fiston, une autre pour sa télé Sony, cela ne changera pas.

avatar borongaj | 

@byte_order

"Y'a une place pour un framework d'UI/UX bien foutu multiplateforme. Et y'a de la demande."

Il en existe déjà de nombreux, et depuis des années, pour ne pas dire 20 ans pour certains.

avatar byte_order | 

Tout à fait, mais la tendance et leur utilisation n'a jamais été aussi forte et nette.

avatar Brice21 | 

@byte_order

"Y'a une place pour un framework d'UI/UX bien foutu multiplateforme. Et y'a de la demande."

QT ?

avatar BeePotato | 

@ byte_order : « C'est pas franchement la personne lambda, ça. »

En effet.
Mais tu ne parlais pas spécifiquement de la personne lambda, puisque tu as écrit : « l’utilisateur ».

La personne lamba n’est pas concernée par ces histoires, vu qu’elle utilise juste un PC sous Windows et ne passe pas son temps à jongler entre les OS (ne sachant même pas ce qu’est un OS).
Mais parmi les utilisateurs, il n’y a pas que ces personnes lambda. Il y a aussi des personnes qui ont fait le choix d’utiliser une plateforme différente parce qu’elle leur propose une interface qui leur plaît bien plus que celle de la plateforme lambda. Du coup, il n’est pas étonnant que ces personnes soient agacées quand des développeurs viennent leur expliquer qu’il vont tout de même leur fourguer exactement la même application que sur la plateforme lambda, en ne l’adaptant pas le moins du monde pour que son fonctionnement corresponde au fonctionnement attendu sur la plateforme qu’ils ont choisie, et en ne faisant bien sûr pas le moindre effort pour utiliser fonction supplémentaires que cette plateforme peut fournir.

Tout comme il peut y avoir un soupçon d’agacement quand quelqu’un vient leur expliquer que c’est parfaitement normal, même carrément souhaitable car c’est pour leur bien, et que s’ils ne s’en rendent pas compte c’est juste qu’ils n’ont rien compris. ;-)

« si l'UX de l'app est la même ou presque quelque soit le plateforme, je vois pas en quoi, au contraire l'utilisateur peut exploiter sa connaissance de l’app »

Mais il ne peut plus utiliser sa connaissance de l’OS — acquise via l’utilisation de plein d’autres applications sur cet OS. Or, comme il passe bien plus souvent d’une application à l’autre que d’un OS à l’autre (sur le même type de plateforme, s’entend — nous sommes bien tous conscients qu’essayer d’argumenter sur la base des différences entre OS de machines de bureau, de smartphones et de voitures était juste une plaisanterie un peu ridicule), il trouve ça frustrant et doit faire à chaque fois un effort un peu plus important pour résister à la tentation, somme toute naturelle, d’aller s’acheter une tronçonneuse avant de rendre visite au développeur de l’application. :-)

« C'est assez étrange de lire dans la communauté qui défend le "it just works" que c'est mieux qu'une app qui rend le même usage sur chaque plateforme ne propose pas la même UX selon la plateforme !? »

Ce n’est en fait pas vraiment ce qui est reproché à cette approche par cette communauté. Ce qui est reproché, c’est que ces applications ne proposent pas une interface correspondant à une application pour Mac.
S’il sortait un framework multiplaforme qui assurait aux applications l’utilisant d’avoir exactement l’interface et le fonctionnement normal d’une application pour Mac et d’exploiter toutes les fonctionnalités de MacOS présentes et à venir au moins autant que si elles étaient développées avec les frameworks natifs de MacOS, je crois que personne dans cette communauté ne viendrait reprocher à ces applications de proposer la même interface sur tous les OS où elles tourneraient.
En revanche, je soupçonne que bien d’autres personnes, dont certaines qui nous expliquent ici que c’est bien et souhaitable d’avoir la même interface partout, trouveraient d’un coup à y redire. :-)

« Ou alors c'est parce que cela souligne que les spécificités de chaque OS sont finalement assez périphériques aux besoins communs du plus grand nombre d’utilisateurs »

Ça, c’est constaté depuis longtemps.

« ce qui rend la défense de la prétendue supériorité de tel OS sur tel autre assez inutile... »

Absolument pas, car il n’y a pas que le plus grand nombre dans ce monde.

« Y'a une place pour un framework d'UI/UX bien foutu multiplateforme. »

Ça n’existe pas.

avatar ech1965 | 

@byte order

La même UI sur tous les OS... c'est quand même une idée "égocentrique" de créateur/développeur...
Quand je manipule une appli A sur un OS B, je me fous éperdument du look de l'appli A sur un OS Z que je n'utilise pas.
Par contre une Appli doit se fondre dans les "guidelines" de l'OS;
Une appli qui sous prétexte d'être "identique" sur tous les OS à l'air "Alien" sur chacun, c'est dommage.

avatar byte_order | 

@ech1965
> c'est quand même une idée "égocentrique" de créateur/développeur...

Ouais.
Mais en même temps, le concepteur, c'est bien lui qui décide de ce qu'il veut faire, il est bien au centre.

L'utilisateur, lui, décide si cela lui convient ou pas et combien il est prêt à mettre pour avoir ce qu'il veut du concepteur mais qu'il n'aura pas gratuitement.
Convaincre le concepteur de faire autrement que ce que, lui, veut faire, if faut soit sortir un argument soit financier soit de "la concurrence fait mieux".

Le hic, c'est que désormais le financier sur une app cliente bien souvent gratuite, cela marche pas trop.
Reste donc la concurrence.
Fait-elle vraiment mieux ?
Comme la concurrence, souvent, se pose elle aussi la question de la rentabilité du pure natif sur chaque plateforme...

> Quand je manipule une appli A sur un OS B, je me fous éperdument du look de
> l'appli A sur un OS Z que je n'utilise pas.

Il se trouve que tout le monde n'utilise pas uniquement un seul OS.
Même les fans d'Apple utilisent souvent 2 OS qui sont assez différent (comme le démontre Catalyst...), iOS et macOS.

Même Apple fait déjà le choix de recycler des apps iOS en apps macOS via SwiftUI, parce que cela lui simplifie le boulot et parce que l'utilisateur, même s'il ralera un peu d'avoir perdu la version "purement" pensé que pour macOS, il s'y fera rapidement quand même.

> Par contre une Appli doit se fondre dans les "guidelines" de l'OS;

Sinon quoi ?
On file en prison ?!

La réalité, c'est que des applis réellement voulues par les utilisateurs seront acceptées et utilisées, même si elles ne se "fondent" pas totalement dans un "guideline" spécifique à l'OS.
Depuis toujours la fonction prime.

Discord est un bon exemple.

> Une appli qui sous prétexte d'être "identique" sur tous les OS à l'air "Alien" sur chacun,
> c'est dommage.

Uniquement si cette application a de la concurrence qui fait mieux sur ce plan.
Sinon, non, c'est pas dommage, c'est juste "uniforme".

On utilise des apps.
On utilise pas les OS. Ce sont les apps qui utilisent, très très partiellement souvent, l'OS.

Regardes les apps "pro" d'Apple comme FinalCutPro & co. Ou DaVinci Resolve. Ou Photoshop. Ou InDesign. Ils ont tous des widgets perso, une UX qui leur est finalement propre. Cela n'empêche nullement leur audience. Mieux, cela leur permet de vendre plus facilement les versions pour d'autres OS quand ils en proposent.

avatar Brice21 | 

@byte_order

" une UX"

Dans les cas cités il s’agit d’UI.

avatar Brice21 | 

@ech1965

"La même UI sur tous les OS... c'est quand même une idée "égocentrique" de créateur/développeur..."

Java ?

avatar ech1965 | 

Excellent exemple: le désastre e AWT, le cauchemar de Swing ( et les fameuses skins metal/windows 95 complètement désastreuses).
La tentative de IBM SWT était moins mauvaise mais perclue de Bugs.
A la fin, ya que les "gros" comme Jetbrains qui ont les moyens de fixer les bugs dans le framework UI ( et livrant une JVM patchée) ex: adaptation au HDPI entre autres.

Le framework multi plateforme est un mal ( cf mes opinions) nécessaire ( cf les commentaires de @byte_order).

bref, on n'est pas dans la m.

avatar cnewton | 

@FloMo

+1

avatar Samijuke | 

J'aime bien mais je galère pour gérer l'UI avec flutter 😅

avatar Kelbogamin | 

Flutter propose des widgets IOS à côté de ses widgets classiques. Et je pense que la personnalisation peut aller plus loin.
De plus, gros avantage quand on n’a pas une grosse structure, c’est le coup de développement et la facilité de maintenance.

CONNEXION UTILISATEUR