Comment convaincre un client ou une entreprise d'utiliser Flutter

Bonjour, Habr! Je vous présente la traduction de l'anglais. Pitching Flutter à vos articles d' entreprise ou de client (auteur Wm Leler )

Plus d'un an s'est écoulé depuis la publication de l'article What's Revolutionary about Flutter (et ce matériel est toujours d'actualité). Lorsque j'ai écrit cet article, seuls quelques développeurs mobiles ont entendu parler de Flutter, mais depuis, beaucoup de choses ont changé. Maintenant, je n'ai pas le temps de suivre le flux de nouveaux articles et vidéos qui apparaissent dans cette communauté active et en constante évolution . Les développeurs ont découvert Flutter , et ils en sont fous . Voici un exemple d'application de Reflectly créé avec Flutter :


Smart Reflectly Diary App

J'entends souvent des développeurs dire combien il est difficile de convaincre les chefs d'entreprise - ou les clients, si nous parlons d'une agence ou d'un pigiste - d'essayer Flutter. Les décideurs ne sont pas prêts à passer aux dernières technologies simplement parce qu'elles sont de pointe. En règle générale, ils comprennent le problème, mais la pile technologique n'est qu'une partie de leur travail. Il est important pour eux de savoir que l'utilisation de nouveaux outils aidera leur entreprise à mieux réussir sur le marché, par exemple, à attirer de nouveaux consommateurs ou à réduire les risques.

Cet article est destiné à:

  • les développeurs qui souhaitent expliquer les avantages de l'utilisation de Flutter à la direction de l'entreprise. Même si vous connaissez ce cadre, vous aurez toujours besoin d'arguments convaincants en sa faveur;
  • les développeurs qui envisagent de créer leur propre produit sur Flutter.

Cet article expliquera également les raisons pour lesquelles Flutter peut ne pas convenir à une application particulière, ce qui vous aidera à prendre une décision éclairée.

Qu'est-ce que le flottement?


Slogan Flutter (concis et parlant):
Créez des applications natives esthétiques en un temps record!

Ce slogan comprend quatre parties, chacune devant être considérée séparément:

  1. Création d'application
  2. Esthétique
  3. Nativité
  4. Dates record

1. Créez une application


Maintenant Flutter est emprisonné pour le développement d'applications mobiles pour iOS et Android. Mais la façon dont il est perçu à long terme se démarque du contexte des frameworks mobiles existants: Flutter n'est pas seulement un framework, c'est un SDK à part entière pour créer des applications utilisant l'écran. Cela signifie que Flutter a tout ce dont vous avez besoin pour créer une interface utilisateur, y compris un outil de visualisation et des éléments nécessitant un rendu (widgets dans la terminologie Flutter).

Flutter a beaucoup en commun avec les moteurs de jeux tels que Unity ou Unreal , qui fournissent également leurs propres outils de visualisation. La différence est que Flutter est utilisé pour créer des applications , pas des jeux.

Le fait que Flutter soit un SDK complet signifie qu'il peut être porté sur presque tous les appareils dotés d'un écran. Le rendu Flutter utilise Skia, un moteur graphique open source populaire utilisé sur toutes les plateformes.


Flutter sur le bureau et le Raspberry Pi

Alors que nous nous sommes concentrés sur les applications mobiles chez Google, diverses sociétés ont porté Flutter sur des ordinateurs de bureau (macOS, Windows, Linux et autres), des téléviseurs (ici, vous pouvez voir comment Flutter fonctionne sur Nvidia Shield TV ), ainsi que sur Raspberry Pi. Flutter est même utilisé dans la construction d'interfaces utilisateur pour Fuchsia .

Progressivement, les applications apparaîtront en dehors des téléphones portables. L'accès aux applications sur plusieurs appareils à la fois deviendra familier: y compris les assistants à domicile (Google Home Hub, Lenovo Smart Display, etc.), les écrans interactifs dans les voitures, les appareils électroménagers (tels que les réfrigérateurs), les accessoires (montres, vêtements) et autres objets connectés. -des appareils.

Déjà en 2017, 8,4 milliards de ces appareils étaient enregistrés en ligne, et selon les prévisions d' International Data Corporation , leur nombre dépassera 30 milliards d'ici 2020 (contre 5 milliards de téléphones mobiles). Cependant, beaucoup de ces appareils auront des écrans interactifs. L'architecture Flutter a tous les ingrédients pour créer de belles interfaces utilisateur fonctionnelles pour les nouveaux appareils.


Écrans partout!

Et, bien sûr, Flutter est entièrement gratuit et open source.

2. Esthétique


Pouvez-vous garantir le succès de votre application mobile si elle est en concurrence avec 3,8 millions d'applications dans le Google Play Store et 2 millions dans l'Apple App Store ? Même si vous parvenez à convaincre l'utilisateur de télécharger votre application, la probabilité qu'il l'utilise activement 30 jours plus tard n'est que de 3%! Société de conseil Gartner Inc. a déclaré que seulement 0,01% de toutes les demandes publiées avaient un succès financier. Dans une telle situation, l'aide ne sera pas superflue.

Selon la recherche, avoir un design attrayant joue un rôle énorme . Si vous regardez les applications mobiles les plus populaires de ces dernières années, vous verrez que chacune d'entre elles a une conception esthétique unique. De plus, de belles applications gagnent des prix et gagnent en renommée, ce qui est particulièrement précieux.


Alibaba (à gauche) et Topline (à droite)


2Dimensions

Les meilleurs exemples d'applications Flutter incluent les applications d'Alibaba (la plus grande entreprise de commerce électronique au monde), l' application d' enregistrement audio Topline d' Abbey Road Studios et une démonstration de l'incroyable application 2Dimensions pour créer des animations en temps réel .

De plus en plus d'entreprises s'efforcent de faire en sorte que leurs applications mobiles correspondent à leur image de marque, tout comme leur site Web ou leurs applications Web. Ceci, à son tour, nécessite un haut niveau de personnalisation .

En fin de compte, les concepteurs proposent souvent des idées créatives fortement érodées au moment de leur mise en œuvre en raison des limites des outils. Grâce à Flutter, vous pouvez implémenter n'importe quelle conception pour votre application.

D'autres exemples peuvent être trouvés sur le site Web officiel de Flutter, ainsi que sur It's All Widgets . Parmi eux, vous trouverez l' application Reflectly diary, que j'ai citée en exemple au début de l'article. Je vous recommande de vous familiariser avec cette application inhabituelle en la téléchargeant sur votre smartphone Android ou Apple depuis la boutique d'applications. Assurez-vous également de lire un article sur leur expérience du passage à Flutter .

3. Nativité


Cet élément doit être déroutant pour les développeurs mobiles. Dans le développement mobile, le terme «application native» est souvent utilisé pour désigner une application qui accède directement à l'API de la plateforme en utilisant des langages spécifiques. Et pour confondre complètement tout le monde, dans des cadres tels que React Native et Xamarin, le terme «natif» signifie qu'ils peuvent utiliser des widgets de plate-forme.

Dans d'autres domaines de développement, ce terme ne s'applique pas comme dans le mobile. Par exemple, vous pouvez installer Linux sur des ordinateurs exécutant Windows ou macOS (et bien d'autres), mais vous n'appellerez pas Windows ou macOS "natif", et Linux un système d'exploitation "multiplateforme" ou "hybride". Nous prenons Linux aussi natif que Windows ou macOS, car il l'est .

Une définition plus précise de «natif» dans le développement ressemble à ceci:
Destiné ou intégré au système spécifié, en particulier dans le sens du langage associé à ce processeur, ordinateur ou compilateur, ainsi qu'aux programmes écrits dessus.
Les applications Flutter sont compilées en code machine native ( ARM ) immédiatement sur iOS et Android.

Les avantages d'utiliser des applications natives sont plus que suffisants: ils fonctionnent plus rapidement et, surtout, fonctionnent plus stables et souffrent moins de retards ou de freinage (le gel est moche). De plus, les applications natives donnent au développeur plus de contrôle sur le comportement de son application.

Pour bénéficier de tous les avantages des applications natives, les développeurs mobiles ont généralement écrit deux applications distinctes à l'aide d'ensembles d'outils et de langues distincts. Souvent, deux équipes de développement distinctes qui doivent se coordonner doivent travailler sur de tels projets. Cette approche augmente considérablement les coûts de développement, augmente les risques et repousse la date limite du produit. Flutter, d'autre part, permet aux développeurs d'unir leurs efforts pour écrire une base de code unique, unir les équipes de développement, réduire les risques et accélérer le temps de lancement de l'application sur le marché - tout cela combiné aux avantages de l'application native.


Laquelle de ces applications est native? Les deux!

Mais qu'en est-il des widgets? En raison du fait que Flutter fonctionne avec ses propres widgets , il peut sembler que les applications écrites dessus seront différentes des applications écrites sur des widgets et des outils de plate-forme.

L'animation GIF ci-dessus montre à quoi ressemble la fenêtre des paramètres écrite sur iOS en comparaison avec l'interface similaire écrite sur Flutter. Malgré des différences mineures au niveau des pixels, Flutter simplifie considérablement la création d'écrans qui ressemblent à ceux natifs.

Nous ne devons pas oublier que même une application native est généralement différente en fonction de la version du système d'exploitation. Essentiellement, Flutter n'a pas besoin d'être «pixel parfait».

Les widgets Flutter s'adaptent à la plate-forme cible, fournissant à l'application le bon aspect, y compris les icônes, la palette de couleurs, la mise en page, les polices, le comportement de défilement, etc. La tâche principale de Flutter est de créer des applications conviviales qui répondent également aux principes de conception d'une plate-forme spécifique.

Le rendu de haute qualité des applications écrites en Flutter est assuré par le fait qu'elles sont affichées directement sur la toile de la plateforme. Cela est possible du fait que Flutter a la fonctionnalité d'un SDK complet. Par conséquent, votre application ne dépend pas des modifications apportées aux widgets, polices et autres éléments de plate-forme.



L'utilisation de Flutter élimine l'utilisation des bibliothèques de support . Par exemple, cette application Flutter exécutée sur un téléphone avec le système d'exploitation Android Jelly Bean (4.1.2) utilise des widgets d'une conception matérielle, bien que le téléphone lui-même ait été publié deux ans avant son apparition . Bien sûr, le téléphone n'a pas de widgets intégrés de conception matérielle. Quoi qu'il en soit, votre application Flutter fonctionnera comme sur un appareil plus moderne et aura l'air incroyable.

Sinon pour Flutter, vous devrez résoudre ces problèmes par vous-même. Cela signifie la nécessité de tests plus approfondis sur les anciennes versions du système d'exploitation et de trouver des solutions de contournement pour les plates-formes qui ne donnent pas accès aux éléments utilisés dans l'application. Les développeurs nous disent constamment que Flutter simplifie considérablement le processus de test.

En plus des avantages des applications natives, Flutter a d'autres avantages:

  • Les applications écrites en Flutter fonctionneront également sur les anciennes versions de système d'exploitation de n'importe quelle plate-forme. En particulier, si vous testez votre application Flutter sur une nouvelle version d'Android, elle sera exactement la même sur les anciennes versions. Cela permet à ces applications de fonctionner correctement sur les téléphones plus anciens et de gagner du temps lors des tests.
  • Les nouvelles versions des systèmes d'exploitation ne pourront pas casser votre application (c'est extrêmement rare, et, en règle générale, c'est un bogue dans Flutter, et pas dans votre application).
  • Votre application ne sera pas soumise à des modifications en raison de modifications du système d'exploitation par le fabricant ou le fournisseur (l'exemple le plus courant est la modification de la police par défaut).
  • Plus important encore, Flutter vous donne un contrôle total sur l'apparence de votre application sur toutes les plates-formes et systèmes d'exploitation, jusqu'au dernier pixel .
  • Si vous le souhaitez, vous pouvez spécifiquement rendre votre application Flutter différente sur iOS et Android. Même si vous ne le faites pas, les widgets Flutter eux-mêmes s'adapteront aux principes de conception de chaque plate-forme.


Flutter vous permet de faire tout cela en utilisant une seule base de code pour les deux plates-formes. Ou vous pouvez ajouter du code natif pour chaque plate-forme dans une application Flutter si vous le souhaitez.

4. Enregistrer les dates


Enfin, Flutter est également bon car il vous permet de développer de meilleures applications encore plus rapidement . La fonctionnalité la plus populaire (et hype) de Flutter est le redémarrage à chaud avec état. Cela impressionne non seulement par la vitesse (prend moins d'une seconde), mais aussi par la préservation de l'état, c'est-à-dire que si vous modifiez le code profondément dans l'application, après la recompilation, vous n'aurez pas à recréer manuellement le dernier état de l'application pour voir le résultat.


Redémarrage avec état!

Un tel redémarrage a été rendu possible grâce à la technologie de compilation avancée (développée par les créateurs des compilateurs V8 pour JavaScript et Strongtalk pour Smalltalk), ainsi que du fait que Flutter est natif et construit sur des vues réactivement mises à jour.

En plus d'accélérer les processus, de nombreux développeurs notent que Flutter change sérieusement leur style de travail: ils peuvent créer de nouvelles dispositions dans deux comptes et apporter les modifications nécessaires en présence des clients.

Nous constatons également un effet positif dans le travail des designers qui obtiennent exactement ce dont ils ont besoin. Ainsi, ils peuvent jouer avec différents paramètres jusqu'à ce qu'ils trouvent l'option parfaite. En effet, les concepteurs utilisant CSS dans les applications Web affirment qu'il leur est assez facile de comprendre comment apporter eux-mêmes des modifications de mise en page sur Flutter.

Pour en savoir plus sur le fonctionnement de Flutter, consultez cet enregistrement de développement d'applications en temps réel . Vous pouvez également participer au hackathon pour voir à quelle vitesse vous pouvez apprendre Flutter et créer une application qui fonctionne dessus.

Comme mentionné dans le paragraphe précédent, les applications Flutter nécessitent moins de tests, ce qui signifie que vous pouvez ajouter de nouvelles fonctionnalités beaucoup plus rapidement. Voici ce que JD.com dit de son expérience avec Flutter:
Nous avons réussi à créer la même fonctionnalité, en utilisant seulement la moitié de l'équipe de développement. Avec le même nombre d'ingénieurs, nous pouvons ajouter plus de fonctionnalités dans une seule version.

Alibaba note également que l'utilisation de Flutter a réduit le temps moyen nécessaire pour ajouter de nouvelles fonctionnalités d'un mois à deux semaines.


Hamilton app

En parlant de records. Dans l'application Hamilton, les développeurs ont fait un changement majeur dans la soirée à la veille de la sortie sans l'ombre d'un doute sur sa stabilité! Et cette application, écrite en trois mois environ, a été présentée dans les deux magasins d'applications. De plus, Flutter facilite considérablement l'ajout régulier de nouvelles fonctionnalités pour susciter l'intérêt des utilisateurs.

Et donc une application mobile réussie est créée.


Flutter rend la mise à jour des widgets aussi rapide et facile que la création et la modification d'applications. Nous entendons souvent craindre que Flutter soit difficile à suivre avec les mises à jour des widgets de plate-forme. Cependant, quand Apple a annoncé son nouvel iPhone X avec sa célèbre découpe à l'écran, Flutter a réussi à ajouter un support pour cette découpe avant même le début des ventes.

Et cela ne s'applique pas seulement à iOS. Au moment où Google a annoncé une conception matérielle considérablement repensée pour les E / S 2018, Flutter avait déjà reçu une mise à jour pour incarner pleinement de nouvelles idées. C'est la capacité de Flutter à personnaliser rapidement qui a rendu cela possible.

Nous recevons régulièrement des commentaires de développeurs qui affirment que grâce à Flutter, ils ont commencé à travailler 2 à 3 fois plus efficacement, et que leurs applications dans leur ensemble sont devenues plus efficaces.

Risques et limites


Il n'y a pas de solutions intransigeantes et Flutter ne fait pas exception. Voici quelques raisons pour lesquelles Flutter n'est peut-être pas le meilleur outil pour une application particulière.

Étant donné que les applications Flutter contiennent des widgets Flutter et leur propre outil de visualisation, elles sont légèrement plus grandes que les applications utilisant des outils intégrés à la plate-forme. Jusqu'à récemment, la taille minimale d'une application Flutter était de 6,7 Mo, mais maintenant la taille a été réduite à 4 Mo. Nous prévoyons de poursuivre l'optimisation à l'avenir.

L'un des avantages les plus importants de Flutter est la possibilité d'utiliser une base de code unique lors du développement d'applications pour les deux plates-formes mobiles (Flutter convient également pour créer des applications pour une seule plate-forme). Cependant, il existe des applications liées à une plate-forme particulière ou agissant comme un wrapper pour la présentation fournie par la plate-forme. Un exemple est une application exécutée dans le thread d'arrière-plan pour afficher les notifications. De telles applications peuvent également être écrites en Flutter, mais cela ne donnera pas d'avantages particuliers.

On nous demande souvent si Flutter restera sur le marché. Il y a plusieurs raisons pour lesquelles nous déclarons en toute confiance: oui . Premièrement, Google lui-même est un fidèle utilisateur de Flutter, à la fois dans le développement d'applications grand public et de programmes internes, en particulier, l'application mobile Google Ads récemment publiée (anciennement appelée AdWords) a été écrite en Flutter. Google prend entièrement en charge Flutter et met tout en œuvre pour réussir.

Deuxièmement, en raison du fait que les grandes applications étaient généralement développées pour deux plates-formes indépendantes, les entreprises considéraient qu'il était moins risqué, par exemple, de publier d'abord une application pour iOS et de créer une application Android plus tard en cas de demande. Avec Flutter, vous pouvez libérer simultanément des applications pour les deux plates-formes . Ainsi, vous réduisez non seulement les risques liés à l'identité de leurs fonctionnalités, mais élargissez également le marché potentiel de votre application. Android en profite grandement.

Il existe un autre problème potentiel: Flutter est un cadre relativement nouveau. Naturellement, Flutter aura besoin de temps pour créer les outils nécessaires, étendre les fonctionnalités et développer la communauté.Les plateformes ont aujourd'hui des fonctionnalités que Flutter n'a pas encore implémentées. Dans le même temps, Google travaille constamment à l'ajout de nouvelles fonctionnalités à Flutter.

Si vous souhaitez approfondir Flutter, vous pouvez utiliser les articles Qu'est-ce qui est révolutionnaire sur Flutter et pourquoi Flutter utilise Dart . Vous pouvez également consulter les résultats de notre plus récent sondage auprès des utilisateurs Flutter.

Par où commencer


Si vous décidez d'essayer Flutter, voici quelques conseils utiles:

  1. Ce guide vous aidera à installer Flutter, à configurer l'éditeur et à créer la première application de test.
  2. Découvrez ces vidéos Flutter .
  3. , Android , iOS , React Native Xamarin .
  4. , : Building Layouts in Flutter , Add Interactivity , A Tour of the Flutter Widget Framework ( ).
  5. Flutter , FAQ .
  6. It's All Widgets . , . Flutter-.
  7. Flutter, Flutter Weekly .
  8. Google Codelabs Flutter , , , Flutter Udacity.
  9. .

Rejoignez la communauté Flutter sur Twitter , Gitter et Stack Overflow . Je vous recommande de vous abonner à la liste de diffusion Flutter Dev . Alternativement, vous pouvez trouver votre Meetup Flutter local ou Study Jam et découvrir s'il y a des hackathons de développement mobile à proximité auxquels vous pourriez participer.

Conclusion


Flutter permet donc le développement d'applications à grande vitesse, ce qui augmente votre productivité et vous aide à créer des applications de meilleure qualité. Il s'agit d'un ensemble d'outils expressif, extrêmement flexible et hautement personnalisable qui donne au développeur un contrôle total sur son produit. Flutter crée des applications natives rapides et stables pour iOS et Android en utilisant une seule base de code.

Flutter vous fait économiser de l'argent et réduit les risques. C'est gratuit et open source. Avec cela, Flutter vous aide à gagner plus d'argent. Cela est possible car vous entrez sur deux marchés à la fois: les applications Android et iOS, et créez de meilleures applications en moins de temps.

Le feedback le plus flatteur des développeurs est peut-être que le développement mobile avec Flutter est amusant! C'est génial: 92% des développeurs utilisant Flutter disent qu'il répond pleinement à leurs besoins. N'oubliez pas que cette enquête a été réalisée avant la sortie de la version 1.0, et le nombre d'utilisateurs satisfaits ne cesse d'augmenter!

Enfin, Flutter est tourné vers l'avenir. Il s'agit du seul outil de développement mobile natif prenant en charge les vues réactives. Il s'agit d'un paradigme de programmation qui vous aide à créer de meilleures applications à l'aide de fonctionnalités incroyables telles que les redémarrages ultra rapides avec état. Et, du fait que Flutter est un SDK à part entière, il conservera sa pertinence pendant longtemps avec le développement de nouvelles plateformes.

Source: https://habr.com/ru/post/fr433456/


All Articles