Qu’est que c’est Flutter ?

Juste au cas où vous n’auriez pas entendu parler de Flutter, Flutter est un kit de développement logiciel (SDK) multi-plateforme à source ouverte qui peut être utilisé pour créer des applications iOS et Android avec le même code source. Flutter existe depuis longtemps, mais il a commencé à attirer davantage l’attention depuis Google I / O 2018, lorsque Google a annoncé la publication d’un aperçu de la version de Flutter. Lors de Flutter Live le 4 décembre 2018, Google a annoncé la première version stable de Flutter avec de nombreuses nouvelles fonctionnalités. Certaines grandes entreprises comme Alibaba l’utilisent déjà pour développer des applications mobiles.

Cet article permet une analyse complète, mais à jour, qui corrige certaines analyses qui datent de décembre 2018, Flutter à beaucoup changé, ou moment ou mettons en ligne cet article, flutter est déjà à la version 1.9

Pour commencer Voici ce que Google nous informe :

Développement rapide:

Le rechargement à chaud de Flutter vous permet d’expérimenter, de construire des interfaces utilisateur, d’ajouter des fonctionnalités et de corriger des bogues rapidement et facilement. Profitez de temps de rechargement inférieurs à une seconde, sans perte d’état, sur les émulateurs, les simulateurs et le matériel pour iOS et Android.

Expressive, belles interfaces utilisateur

Faites plaisir à vos utilisateurs avec les superbes widgets intégrés de Material Design et Cupertino (saveur iOS) intégrés à Flutter, les API de détection de mouvements riches, le défilement naturel en douceur et la visibilité de la plate-forme.

Performance native

Les widgets de Flutter intègrent toutes les différences de plate-forme critiques telles que le défilement, la navigation, les icônes et les polices afin de fournir des performances natives complètes sur iOS et Android.

Pourquoi les développeur devront faire très attention :

 

Android et Flutter, tous deux sont les bébés de Google. Une société gérant à la fois le développement d’applications mobiles natives et multiplate-formes pour les applications Android. Le développement d’applications Android a été lancé par Android Inc, acheté par Google en 2005. Le projet Flutter a été lancé par Google et le tout premier SDK Flutter a été lancé en 2017. Il serait extrêmement intéressant de comparer le développement natif d’Android avec le développement d’applications Flutter. Quel serait l’avenir d’Android avec l’ascension de Fuchsia. Explorons et essayons de répondre à toutes ces questions.

Les entreprises recherchent des options pour développer des applications dans un délai court et avec un budget limité. Le développement d’applications mobiles natives pour iOS ou Android nécessite toujours deux piles de technologies différentes, ce qui entraîne deux équipes différentes et un coût plus élevé. C’est la raison pour laquelle les entreprises ont commencé à rechercher des solutions multiplateformes. La popularité du framework React-Native en est un exemple.

Sauf si vous vivez sur une petite île sans Internet, vous devez avoir entendu parler de Flutter. Il s’agit d’un autre cadre de développement mobile multiplateforme en plein essor sur le marché récemment. Dans cet article, nous analyserons l’impact potentiel de Flutter sur le développement natif d’Android et discuterons des raisons pour lesquelles nous devrions y prêter attention.

Flutter vs développement d’applications natives pour Android:

 

Le développement d’applications Android natives est dans un état intéressant pour le moment. Récemment, Google a annoncé le kotlin comme langue officielle sur Java. Google travaille également sur un autre système d’exploitation pour Chrome et mobile, Fuchsia.

Il ne fait aucun doute que les applications Android natives développées avec Android Studio offrent d’excellentes fonctionnalités et une grande fluidité. D’autre part, les applications développées avec des solutions multiplate-formes peuvent être facilement repérées et on a l’impression qu’il manque quelque chose. Cependant, depuis que les applications Flutter sont arrivées dans les magasins d’applications, il n’y a aucun moyen de savoir qu’elles ont été créées avec Flutter. Les applications se sentent tellement lisse, native et lisse. Alors, en quoi Flutter fait-il que les applications se sentent plus ou moins natives?

De nombreux développeurs Android natifs ont exprimé leurs opinions sur Flutter Online. L’un des articles ici explique le point de vue d’un développeur Android sur Flutter. De plus, il y a une discussion animée sur Quora si Flutter est en train de remplacer le développement Java et Android natif. En regardant tous ces articles, il est clair que les développeurs natifs d’Android ne peuvent pas ignorer Flutter à coup sûr, et certains sont intimement convaincu qu’il n’existe pas une facon romantique de dire adieu mais ça sent la fin.

Flutter est sûrement différent des outils de développement Android natifs. La documentation officielle de Flutter contient un guide clair sur Flutter pour les développeurs Android, mappant les concepts de développement natif d’Android à Flutter.

Comparons Flutter au développement Android natif en utilisant certains critères de base:

Architecture technique La productivité des développeurs Composants de l’interface utilisateur Support de test Support CI / CD.

Architecture technique

La pile technologique utilisée pour le développement natif d’Android et Flutter est complètement différente.

Bien que Flutter et Android soient développés par Google, l’architecture technique des deux plates-formes est complètement différente. Flutter utilise Dart comme langage de programmation, tandis que le développement Android natif utilise Java ou Kotlin.

En termes d’IDE, Android Studio peut être utilisé à la fois pour le développement d’applications Flutter et natives pour Android. Cependant, les applications Flutter peuvent également être développées dans des éditeurs légers, tels que Sublime Text, Atom ou VIM, ou dans un environnement de développement intégré tel que IntelliJ Idea.

Comme nous le savons, les applications natives construites avec Java / Kotlin sont simples et rapides, car tous les composants sont construits de manière native. Flutter utilise le framework Dart et souvent, il n’est pas nécessaire que le pont communique avec les modules natifs. L’architecture du moteur Flutter est expliquée en détail dans GitHub Wiki ici.

En bref, Flutter dispose de tout le nécessaire pour le développement d’applications natives dans le moteur Flutter lui-même. Le guide du développeur Android natif explique l’ensemble de l’écosystème du développement d’applications Android.

La productivité des développeurs :


Lors du développement d’applications natives, les ingénieurs d’Android doivent utiliser Android Studio et les outils de génération et de plate-forme natifs fournis par Android Studio. Android Studio intègre tous les outils SDK intégrés à l’EDI. Ces outils ont également besoin des émulateurs ou des périphériques virtuels Android pour exécuter les applications. Chaque fois que les développeurs apportent des modifications à l’application, ils doivent, dans certains cas, reconstruire l’application ou des dépendances tierces pour afficher les modifications apportées à l’émulateur ou aux appareils. En tant que développeur Android natif, vous avez peut-être rencontré ce processus lent, car la construction de Gradle peut prendre du temps.

Dans Flutter, il y a l’option de rechargement à chaud (hotreload). Lorsqu’un développeur apporte des modifications, celles-ci apparaissent instantanément dans l’émulateur ou les périphériques. Toutefois, à mesure que l’application grandit, les développeurs doivent adopter de nouvelles techniques pour utiliser cette fonctionnalité efficacement.

La gestion de la dépendance pour les applications Android natives est gérée par Gradle. De nombreux packages Java et Kotlin sont disponibles sur le marché et Gradle peut les gérer efficacement dans l’écosystème Android. Flutter utilise son propre système de gestion des dépendances appelé Pub. Le gestionnaire de paquetages est intégré aux applications Flutter, de sorte qu’il est facile d’obtenir les nouvelles dépendances nécessaires au développement.

Sur un autre plan, Dart n’est pas un langage de programmation courant et de nombreux IDE et éditeurs de texte ne la prennent pas en charge. Pour les développeurs, apprendre le nouveau langage peut constituer une courbe d’apprentissage abrupte. Bien que Java existe depuis des années et que Kotlin soit une langue sûre, les langues natives se sentent beaucoup plus conviviales avec Android Studio. La communauté prend également en charge de nombreuses langues autochtones.

Composants de l’interface utilisateur :

 

Les développeurs front-end consacrent la majeure partie de leur temps à la création de l’interface utilisateur.

Les composants de l’interface utilisateur natifs fournis par Google pour la création de l’interface utilisateur sont si puissants et bien documentés. L’interface utilisateur peut également être construite à l’aide du constructeur d’interface d’Android Studio. Grâce à cette fonctionnalité, l’interface utilisateur peut être construite plus rapidement à l’aide des outils de développement natifs. Les documents de l’interface utilisateur Android couvrent toutes les informations de base nécessaires à la création de toutes sortes d’éléments d’interface utilisateur.

Le moteur de l’interface utilisateur Flutter est différent, les applications Flutter s’exécutent sur son moteur de rendu et son framework. Flutter utilise le concept de widgets permettant de créer des interfaces utilisateur complexes. En bref, l’interface utilisateur Flutter est essentiellement un arbre de widgets sans état ou avec état. Le catalogue propose une multitude de widgets permettant de créer des interfaces utilisateur complexes prenant en charge les composants matériels pour Android et Cupertino pour iOS. La présentation et les widgets Flutter sont également parfaits en pixels.

Support de test :

 

Les outils Android natifs bénéficient d’un support incroyable pour les tests. Les applications natives peuvent être facilement testées à partir du studio Android ou de la ligne de commande à l’aide de Gradle. Vous pouvez ajouter des tests unitaires, d’intégration, instrumentés et d’interface utilisateur pour les applications Android. De nombreux frameworks Java et Kotlin, tels que JUnit, sont disponibles pour les tests de niveau inférieur et Espresso est pris en charge pour les tests d’interface utilisateur. Il est facile de se moquer des choses avec des structures telles que Mockito. Les tests sur Android ont été couverts en détail dans la documentation. Vous pouvez vous référer aux différents niveaux de test des applications Android ici .

Flutter fournit un cadre de test solide qui permet aux développeurs d’écrire des tests au niveau de l’unité, de la fonctionnalité et de l’interface utilisateur. Le test de widget est une fonctionnalité intéressante fournie par Flutter pour exécuter des tests d’interface utilisateur aussi rapidement que des tests unitaires. Flutter a une documentation très intéressante sur la façon de tester les applications Flutter à différents niveaux avec un exemple de code. Les tests d’intégration Flutter sont similaires aux tests d’interface utilisateur Xcode qui passent par l’interface utilisateur pour effectuer des opérations spécifiques. Les tests d’intégration Flutter s’exécutent dans un processus séparé et peuvent être exécutés sur des périphériques réels, des simulateurs ou des émulateurs. Flutter fournit un package séparé, Flutter Driver, pour effectuer ces tests.

Support CI/CD (intégration continue/delivrance continue)

 

Des pratiques d’intégration et de livraison continues permettent une livraison plus rapide des applications Android.

Le processus de création et de publication d’applications Android natives est un peu complexe en dehors de l’EDI. Les applications Android natives prennent fortement en charge les tests d’automatisation, l’automatisation de la construction et la publication à partir d’Android Studio. Cependant, Google n’a pas fourni de plate-forme CI/CD dédiée pour Android. Les développeurs Android natifs doivent s’appuyer sur des serveurs CI tiers tels que Jenkins, TeamCity ou des services mobiles CI tels que Travis CI, Circle CI, Nevercode, Bitrise, etc. Heureusement, les applications Android natives peuvent également être construites sous Linux, de sorte que La partie CI/CD pour Android est plus facile en comparaison avec les applications iOS. Une configuration supplémentaire est toujours nécessaire pour déployer des applications Android natives à l’aide d’autres services de CI.

De son côté, l’équipe Flutter de Google s’est associée à Nevercode et a annoncé la solution Codemagic CI/CD réservée aux applications Flutter de Flutter-Live à Londres. Codemagic est une solution CI/CD indolore développée par Nevercode qui détecte, construit, teste et conditionne automatiquement l’application Flutter avec une configuration zéro. Avec Codemagic, les applications Flutter peuvent être construites, testées et déployées sur Play Store facilement.

Nous venons de comparer la solution native et multiplate-forme de Google pour le développement d’applications mobiles, c’est-à-dire Android et Flutter. Cependant, nous ne pouvons pas conclure quel est le meilleur, car cela dépend totalement du projet, de la société, du budget et du contexte. ce qui consiste une bonne nouvelle pour flutter de se comparer à la meilleure solution qui existe sur le marché qui est le native.

Flutter peut-il dominer le développement Android natif ?

Flutter regorge de fonctionnalités, il est de plus en plus parfait. il y a un an, Flutter manque certaines fonctionnalités importantes, telles que OpenGL 2D, Google Maps, le support vidéo et le support d’accessibilité. de nos jours,et avec le plugin Google Maps Flutter, vous pouvez ajouter des cartes basées sur les données de Google Maps à votre application. Le plug-in gère automatiquement l’accès aux serveurs Google Maps, l’affichage de la carte et la réponse aux gestes de l’utilisateur, tels que les clics et les traînées. Vous pouvez également ajouter des marqueurs à votre carte.

En decembre 2018, Google publie  ses premières versions stables. Les ingénieurs de Google ont annoncé Flutter 1.2 lors de la conférence Mobile World Congress.

 

Actuellement en moins d’un an, on est à la version 1.9, Ce qui prouve qu’ils ont une vision et une feuille de route solides. Flutter est également développé avec Fuchsia à l’esprit. Nous ne pouvons prédire l’avenir, mais Flutter a le potentiel de dépasser toutes les frontières.

Globalement, Flutter est une option pour les entreprises qui souhaitent développer des applications iOS et Android natives avec le même code source et moins de ressources. À l’heure actuelle, de nombreux cadres de développement d’applications mobiles multiplate-formes se sont succédé. sans pour autant exceller à battre le développement d’applications natives qui reste donc un choix judicieux pour le développement d’applications mobiles.

Flutter semble être totalement différent de toutes les autres solutions multiplate-formes. Les applications futures de flutter ont un aspect natif et lisse, tout comme les applications natives.

♥  Montée du fuchsia

Ce n’est plus un secret pour personne que Google travaille sur un autre système d’exploitation appelé Fuchsia. Flutter est en cours de développement pour Fuchsia. Il est donc possible que Fuchsia remplace désormais Chrome et Android. Pour en savoir plus sur ce scénario, consultez cet article. C’est un sujet de réflexion pour les développeurs natifs d’Android.

♥  Taux de migration croissant et flottement dans les applications existantes

Certains articles en ligne indiquent que les entreprises ont déjà commencé à porter leurs applications natives dans Flutter. Par exemple, il existe un bon article sur le portage d’une application iOS native d’une ligne 75-000 sur Flutter si vous souhaitez en savoir plus sur le processus de migration. Certaines des équipes utilisent Flutter dans leurs applications Android existantes, tandis que d’autres migrent complètement les applications vers Flutter. Il est clair que Flutter change de vision sur le développement d’applications mobiles multiplate-formes en raison de la facilité de développement, de test et de publication des applications mobiles.

♥  La prise de Google sur Android Il est également important de voir que Google veille à maintenir un cadre de développement mobile natif et multiplateforme. Nous devrions absolument garder un œil sur les annonces de la prochaine conférence Google I / O.
♥  Confusion sur le développement natif d’Android Il existe beaucoup de confusion parmi les développeurs sur la raison pour laquelle le développement natif d’Android est si compliqué, déroutant et moins performant. Cet article montre clairement cette confusion parmi les développeurs compétents. Compte tenu du nombre d’utilisateurs et des revenus générés par les applications Android grâce aux applications Android, c’est trop complexe et difficile à maintenir. Flutter peut être la solution à ce problème car il peut également être utilisé pour créer des applications pour iOS et potentiellement pour Fuchsia à l’avenir.

♥  Prédiction sur le développement multiplateforme

Le développement multiplateforme devrait atteindre son apogée dans les années à venir. Certains experts ont déjà prédit que Flutter serait l’avenir du développement d’applications mobiles. Faire attention à Flutter ou non est un choix personnel, mais il est prudent de dire que Flutter est entré très fortement dans la course au développement d’applications multiplate-formes et qu’il est là pour rester à long terme.

Verdict :

Flutter est en vogue sur le marché depuis que Google a annoncé la première version stable. En regardant les fonctionnalités de Flutter, de nombreuses questions se posent.

Les entreprises choisiront-elles Flutter comme premier choix d’applications en développement ?

Est-ce le début de la fin du développement d’applications Android natives ?

Dart remplacera-t-il Java et Kotlin ?

Les développeurs Android natifs doivent-ils commencer à apprendre Dart ?

Nous ne ferons aucune prédiction ou hypothèse ici, mais les développeurs d’applications natives d’applications mobiles pourraient être alarmés par le fait que quelque chose comme Flutter pourrait affecter leur rôle dans le futur.

Aimez Flutter ou détestez Flutter, vous ne pouvez plus l’ignorer.

Conclusion :

Haute productivité , Puisque Flutter est multi-plateforme, vous pouvez utiliser la même base de code pour vos applications iOS et Android. Cela peut certainement vous faire économiser du temps et des ressources.

Grande performance . Dart est compilé en code natif et il n’est pas nécessaire d’accéder aux widgets OEM car Flutter a le sien. Cela signifie une communication moins médiée entre l’application et la plate-forme. Comme l’explique Wm Leler : «Flutter est le seul SDK mobile offrant des vues réactives sans passer par un pont JavaScript.» Tout cela contribue à des temps de démarrage rapides des applications et à moins de problèmes de performances.

Développement rapide et simple . L’une des fonctionnalités les plus appréciées de Flutter est le rechargement à chaud, qui vous permet de visualiser instantanément les modifications apportées au code sur les émulateurs, les simulateurs et le matériel. En moins d’une seconde, le code modifié est rechargé pendant que l’application est en cours d’exécution sans qu’un redémarrage soit nécessaire. C’est excellent non seulement pour créer des interfaces utilisateur ou ajouter des fonctionnalités, mais également pour corriger des bugs. En ce qui concerne la simplicité, Flutter affirme dans sa documentation que la programmation avec Flutter est si simple qu’aucune connaissance préalable de la programmation n’est requise: «L’expérience des langages orientés objet est certainement utile, mais même les non-programmeurs ont créé des applications Flutter!» une seule façon de savoir si cela est vrai.

Compatibilité Étant donné que les widgets font partie de l’application et non de la plate-forme, vous ne rencontrerez probablement aucun problème de compatibilité, voire aucun, sur différentes versions de système d’exploitation. Cela signifie moins de temps consacré aux tests.

Open-source . Les deux logiciels Flutter et Dart sont des logiciels à source ouverte gratuits à utiliser. Ils fournissent une documentation complète et un soutien à la communauté pour vous aider à résoudre tous les problèmes que vous pourriez rencontrer.

TARIK JARI

Consultant et développeur Applications Mobile FLUTTER

Donnez vie À Vos projets

Travaillons Ensemble :

Email :

contact@fluter-maroc.com

Téléphone

+212 680704032

Mobilité :

Casablanca, Marrakech,
Tanger, Kénitra, Rabat
Tétouan, Mohammédia,
Fès, Meknès.