Flutter va bient�t permettre d'�crire de v�ritables applications multiplateformes y compris pour le desktop
et pourrait rivaliser avec Electron
Si certains ne jurent que par le d�veloppement en natif d�applications, des frameworks multiplateformes offrent d�sormais la possibilit� de concevoir des applications � moindre co�t, tout en essayant de livrer les meilleures performances. Certes, cette performance n�est pas aussi bonne que celle d�une application native, mais les entreprises sont tent�es de baisser les co�ts de d�veloppement tout en s�effor�ant d�avoir des applications fid�les au maximum aux diff�rentes plateformes.
Flutter est le dernier framework en date d�velopp� par Google. Tout en �tant open source, il sert � d�velopper des applications multiplateformes pour Android et iOS, ainsi que Fuchsia (Windows, Mac et Linux sont aussi support�s).
Les cr�ateurs de Flutter sont issus pour la plupart du monde du web, c�est pour cela qu�on remarque qu�ils ont essay� d�impr�gner les meilleures de ses pratiques dans le mobile. Le moteur de rendu de Flutter, �crit essentiellement en C++ supporte un rendu � bas niveau en s�appuyant sur la biblioth�que graphique Skia de Chrome. Il se connecte �galement avec des SDK sp�cifiques de plateforme comme ceux fournis par Android et iOS.
� l�approche d�une version stable et finale, Flutter a gagn� en popularit� depuis l�annonce de la premi�re version b�ta au d�but de cette ann�e. Il permet d��crire le code une seule fois et le d�ployer nativement sur Android, iOS, Windows, Mac et Linux avec toute la logique du web derri�re (en utilisant AngularDart), c�est pour �a que ce framework pourrait changer la donne du d�veloppement multiplateforme.
Norbert, un �tudiant et d�veloppeur Android qui contribue au d�veloppement de ce framwork a livr� une pr�sentation de cette question tout en pr�sentant Flutter desktop, une solution permettant de d�velopper des applications desktop r�elles et acc�l�rer le d�veloppement pour mobile.
Un client Desktop natif pour acc�l�rer le d�veloppement mobile
Avant de s�attarder sur le d�veloppement d'applications desktop natives, voyons comment ex�cuter Flutter sur desktop peut �tre b�n�fique pour le d�veloppement mobile.
Temps de d�marrage
Pour tout d�veloppeur Android, la premi�re des choses est de d�marrer l��mulateur Android et ex�cuter Gradle. Dans le GIF suivant, Norbert a enregistr� le d�marrage de l��multaur et l�ex�cution de l�application par d�faut de Flutter. Cette �tape a dur� 2 minutes et 40 secondes, ce qui est lent.
D�marrage d'Android et ex�cution de Gradle (vitesse x10)
Pour acc�l�rer cette �tape, il vaut mieux ex�cuter l�application nativement, ce qui �vite la n�cessit� d�ex�cuter Android sur votre syst�me et passer par Gradle. Norbert explique qu�en utilisant cette m�thode, vous pouvez commencer � travailler en quelques secondes.
D�marrage d'un simulateur de Flutter en temps r�el
Redimensionnable en temps d�ex�cution
Tout d�veloppeur qui se respecte teste son application sur diff�rentes r�solutions d��cran, pour mener � bien cette t�che, vous pouvez soit cr�er diff�rents �mulateurs pour s�assurer que votre application tourne comme il le faut sur chaque appareil, ou bien vous pouvez faire comme ici !
Travailler avec les ressources sur votre PC
� Quand vous �tes en train de d�velopper et tester des applications qui doivent interagir avec des ressources sur votre mobile, il peut �tre encombrant de transf�rer d�abord tous les fichiers de test vers l��mulateur ou l�appareil. �
Le mieux serait de pouvoir choisir votre fichier nativement et c�est ce qui est possible ici !
L�impl�mentation desktop utilise la m�me m�thode canal que l�impl�mentation mobile, de ce fait, il n�y a pas besoin de changer de code.
Hot reloads et d�bogage
Du fait que Flutter a �t� en partie �crit en Dart, le langage de programmation de Google, ce framework b�n�ficie de la fonctionnalit� de Hot Reload. Pour dire simple, elle permet de r�duire consid�rablement les temps n�cessaires entre chaque build. Ainsi, vous pourrez acc�l�rer le d�veloppement de votre application. Le hot reloading et le d�bogage sont n�cessaires pour tout d�veloppeur !
Hot reload et d�bogage de l'application native
RAM
Si vous n�avez pas une machine puissante, l�utilisation de la m�moire vive peut-�tre probl�matique. L��mulateur Android utilise � lui seul pr�s de 1 Gb de RAM. Maintenant, essayez de tester deux applications, IntelliJ et Chrome.
1 Gb de RAM pour l'�mulateur d'Android
Parce que l�embedder s�ex�cuter nativement, il n�est pas n�cessaire de charger Android, ce qui r�duit l�utilisation de la RAM.
100 Mbs de RAM pour l'application native
Les applications Desktop natives
Comme on l�a vu, Flutter facilite le d�veloppement pour mobile, mais qu�en est-il pour les applications desktop. Le fait de simplement ex�cuter Flutter sur desktop ne permet pas d�avoir une application de production adapt�e au bureau. Il apparait juste comme si on a ex�cut� une application mobile sur desktop. En effet, plusieurs �l�ments manquent comme le pointage de souris(hover), changement de curseur, l�interaction avec la molette de d�filement, etc.
Norbert et Simon Lightfoot ont r�ussi � impl�menter ces fonctionnalit�s sans avoir � changer le code de plateforme. Il s�agit d�un package qui peut �tre inclus dans n�importe quelle application Flutter.
Application de chat g�n�rique dans Flutter sur Desktop
C�est le m�me code qui est en train de tourner sur l��mulateur Android.
. . .
D�veloppez pour Android et Desktop en m�me temps
Remarquez que l�application est normale sur l��mulateur, mais change le curseur et ajoute l�effet de hover sur desktop.
�crire une vraie application multiplateforme, y compris pour le desktop
Widgets
Pointage de curseur
La conception de l�interface utilisateur dans Flutter inclut la cr�ation de nombreux widgets. Un widget dans Flutter repr�sente une description immuable d�une partie de l�interface utilisateur. Tous les graphiques y compris le texte, forme et animation sont cr��s en utilisant des widgets. Des widgets plus complexes peuvent �tre cr��s en combinant des widgets simples.
� La plupart des widgets que vous cr�ez sont universellement utilisables. Comme un bouton, indicateur de chargement, etc. �, a �crit Norbert. � Ceux qui n�cessitent une apparence diff�rente selon la plateforme peuvent �tre encapsul�s facilement en v�rifiant la propri�t� TargetPlatform. �
Les Widgets comme CursorWidget peuvent aussi �tre inclus dans la version Android sans souci, ils sont simplement ignor�s.
Pages
Les pages se diff�rent un peu selon la plateforme et la taille de l��cran. Cependant, elles sont diff�rentes seulement au niveau de la disposition et non pas la fonctionnalit�.
Utiliser PageLayoutWidget rend facile la cr�ation de disposition pour chaque plateforme.
Le support de tablette est disponible par d�faut
Plugins
Aucun changement n�est n�cessaire au code Flutter lors de l�utilisation d�un plugin qui supporte le desktop embedder.
Un projet encore en d�veloppement
Ces changements ne sont pas encore disponibles, mais le d�veloppeur a inform� qu�ils seront pr�ts prochainement. Le but �tant de publier un outil qui sera facile � installer, r�gler et utiliser dans le futur.
Verdict
Puisque Flutter se compile en natif sur chaque plateforme cible, il est diff�rent de la majorit� des frameworks multiplateformes. Il ne perd pas en termes de performance comme les options qui utilisent les webviews ou ponts natifs (native bridges). Flutter n�a pas donc de freins s�rieux � la performance.
Il apparait que Flutter (avec ces nouveaut�s) pourrait devenir une alternative viable � Electron, un framework permettant de d�velopper des applications multiplateformes de bureau avec des technologies web (JavaScript, HTML et CSS). L'infrastructure (backend) est cod�e en node.js, et l'interface (frontend) est b�tie sur la base des outils Chromium, la partie open source de Google Chrome.
Plusieurs applications populaires comme Slack et Whatsapp Desktop ont �t� d�velopp�es avec Electron. Il a permis aussi de d�velopper les �diteurs de texte libres Atom de Github et Visual Studio Code de Microsoft.
Seulement, Electron est tr�s gourmand en ressources (CPU et RAM), et certains d�veloppeurs accusent ses utilisateurs (d�veloppeurs JavaScript) de paresse, en refusant d�apprendre de vrais langages de programmation.
� Oui, Electron rend la vie facile aux d�veloppeurs au d�pens des ressources des utilisateurs, autrement dit, c�est un d�veloppement pourri. �
Source : billet de blog(Norbert)
Et vous ?
Qu�en pensez-vous ?
Pr�f�rez-vous le d�veloppement multiplateforme ?
Si oui, quel est votre outil pr�f�r� : Flutter ? Electron ? Autre ?
Voir aussi
Google publie la Preview finale de Flutter, son SDK mobile Android et iOS, la derni�re �tape majeure avant la publication de la version stable 1.0
Quels sont vos environnements de d�veloppement int�gr�s (EDI) pr�f�r�s en 2018 ? Et pourquoi ? Partagez vos avis
Le mode sombre d'Android permet-il d'�conomiser l'�nergie de la batterie des smartphones ? Oui, confirme Google
Kotlin 1.3 est disponible : coroutines d�sormais stables, Kotlin/Native Beta, biblioth�ques multiplateformes et bien plus encore
Partager