Pourquoi Flutter est révolutionnaire?

Traducteur Tan Shu Yun

Ce que oui Flutter?

applications mobiles flutter SDK pour les développeurs de fournir un moyen rapide, nouvelle façon de créer de belles applications afin de se débarrasser de la monotonie de l'application dans le passé, essayé les gens vont adorer Flutter vraiment.

Comme pour tout nouveau système, les utilisateurs veulent savoir ce qui distingue Flutter, « Flutter ce que des choses nouvelles ou très excité à ce sujet? » Ceci est une question raisonnable, d'un point de vue technique que cet article a répondu Flutter quelque chose d'excitant, et il donne aux gens des raisons pour lesquelles l'excitation.

Mais d'abord, un bref exposé sur l'histoire.

Une brève histoire du développement mobile

Le développement mobile est un domaine relativement nouveau, les développeurs commencent à s'impliquer dans le temps de développement mobile a été moins d'une décennie, les outils de développement mobiles sont encore en développement qui, il est pas surprenant.

OEM SDKs

Apple iOS SDKs sorti en 2008, kit de développement logiciel Android de Google a publié en 2009. Les deux kits basés sur différents langages de programmation, à savoir, Objective-C et Java.

Grâce à ces SDK, votre application peut communiquer avec le système, pour créer des composants UI ou accéder à la caméra du système. Ces composants sont rendus à l'écran du téléphone, alors que l'événement correspondant est passé au composant. L'architecture est assez simple, mais il faut encore développer une application distincte pour chaque plate-forme, car ces composants du système ne sont pas les mêmes, sans parler des différents langages de développement.

WebView

Le premier cadre multi-plateforme basée sur JavaScript et WebView, tels que le titane et une série de cadre connexe: PhoneGap, Apache Cordova, ionique, etc., avant Apple a publié iOS, ils encouragent les développeurs tiers à des applications Web de construction pour l'iPhone, donc utilisez la technologie Web pour créer des applications multi-plateforme est une étape logique.

Votre application peut créer HTML et l'affiche sur les plates-formes Webviews comme JavaScript S'il vous plaît noter que cette langue est difficile de communiquer directement avec le code natif (comme les services), ils passeront un code JavaScript et du code natif. " pont « de changement de contexte, parce que les services de la plate-forme ne sont normalement pas appelés souvent, il ne provoque pas beaucoup d'un problème de performance.

vue réactive

Comme ReactJS ou tout autre cadre de programmation réactive est devenu très populaire, principalement parce qu'ils simplifient le processus de création d'une vue Web en utilisant empruntés à la programmation réactive en mode programmation. 2015, React vue sensibles autochtones sera de nombreux avantages pour apporter l'application mobile.

React natif est très populaire (qu'il mérite), mais parce que JavaScript pour accéder aux composants de l'interface utilisateur native, il faut passer par ces « ponts », commandes d'interface utilisateur sur l'écran sont souvent accessible fréquemment (dans l'animation, la conversion ou l'utilisateur avec des trucs de doigt sur l'écran « slide » jusqu'à 60 fois par seconde en cours d'accès), donc cela risque de causer des problèmes de performance. En ce qui concerne l'article React natif dit:

Il est entendu React la performance native d'une de la clé, le code JS et le code natif lui-même est très rapide, les goulots d'étranglement se produisent souvent lorsque nous nous détournons de vue de côté lorsque le côté. Le nombre de fois à l'avenir lors de la construction des applications de qualité, nous devons utiliser le pont au minimum.

voleter

React autochtones et même, le Flutter également fourni vue sensible, une approche différente des questions Flutter éviter de performance causés par un pont JavaScript, à savoir un langage de programmation appelé à compilent Dart. Dart compilé le code natif est plate-forme avec une pluralité de pré-compilée manière, ce qui permet une communication directe avec les plates-formes de flottement sans pont JavaScript en effectuant un changement de contexte. Compilé en code natif peut également accélérer le temps de démarrage de l'application.

En fait, Flutter est la vue que répondre sans avoir besoin de SDK mobile pont JavaScript, ce qui assez Fluttter pour le rendre amusant et la peine d'essayer, mais Flutter des choses révolutionnaires, qui est, il est de savoir comment atteindre les composants d'interface de?

Composants (Widgets)

Les widgets sont des éléments sur la vue et les applications de contrôle et les interfaces que ces composants font partie d'une des plus importantes applications mobiles, ce n'est pas une exagération, en effet, comment les performances de l'interface utilisateur peut faire ou défaire une application.

  • Widgets regarder et donne l'impression est cruciale, Widgets besoin de regarder bien, y compris une variété de tailles d'écran, doivent également avoir une sensation naturelle.

  • Widgets doivent effectuer rapidement: créer ou étendre les contrôles interface utilisateur (instancier leurs widgets), le mettre sur l'écran, ce qui les rend, ou (surtout) Animer.

  • Les applications modernes pour, Widgets devrait être évolutive et personnalisable, les développeurs veulent être en mesure d'ajouter de nouveaux composants d'interface utilisateur flatteuse et personnaliser tous les widgets pour faire correspondre les différentes marques d'une procédure régulière.

l'architecture du système comprend flutter un grand nombre d'agréables, rapide, personnalisable et évolutive Widgets. Oui, composants d'interface utilisateur Flutter sans l'utilisation du système (ou DOM WebViews), il est livré avec des widgets.

composants et l'interface utilisateur renderer flutter de la plate-forme à l'application mobile, ce qui leur permet de personnaliser et de se développer. Flutter seule exigence est que le système fournit la toile, de sorte que les composants de l'interface utilisateur personnalisée peuvent apparaître sur l'écran de l'appareil, et les événements d'accès (tactiles, minuteries, etc.) et des services (localisation, appareil photo, etc.).

Pourtant il existe une interface entre le programme Dart (vert) et effectuer des données codage et de décodage du code de la plate-forme native (bleu, pour iOS ou Android), mais cela peut être des ordres de grandeur plus rapide que le pont JavaScript.

Les composants de l'interface utilisateur et les équarrisseurs se déplacent dans l'application n'affecte la taille de votre application. La taille initiale de l'application Flutter sur Android est d'environ 6,7 millions, la taille de l'application minimale de ce bâtiment et des outils similaires sont similaires, vous pouvez décider si cela vaut la peine de peser les avantages de Flutter, de sorte que le reste de cet article discutera de ces avantages.

disposition

L'une des plus grandes améliorations Flutter est sa mise en page, la mise en page est de déterminer la taille et l'emplacement des composants de l'interface utilisateur en fonction d'un ensemble de règles (également appelées contraintes).

Traditionnellement, l'utilisation d'un grand nombre de règles de mise en page peut être appliquée à tout composant d'interface utilisateur. Ces règles mettent en uvre une variété de méthodes de distribution, nous avons une mise en page CSS bien connu, par exemple (bien que Android et iOS dans la mise en page de base est similaire). CSS ayant des propriétés appropriées éléments HTML (UI) d'éléments (règles), CSS3375 définit les attributs.

Il contient un grand nombre de modèle de mise en page CSS, tel que le modèle boîte multiple, flotteur, table, texte multi-colonnes, et d'autres médias page. En plus FlexBox et le modèle de présentation de la grille après également ajouté, parce que les développeurs et les concepteurs ont besoin d'avoir plus de contrôle sur la mise en page, et a dû utiliser des tables et image transparente pour obtenir la mise en page qu'ils veulent. Dans la mise en page traditionnelle, les développeurs ne peuvent pas ajouter de nouveaux modèles de mise en page, et doivent donc être ajoutés au réseau FlexBox et CSS et mis en uvre sur tous les navigateurs.

Un autre problème est que les règles de mise en page traditionnelles peuvent affecter l'autre conflit même, il y a généralement des dizaines de règles qui les appliquent aux règles des éléments, ce qui rend la mise en page lente. Pire encore, les performances de mise en page diminue généralement l'indice, et par conséquent, avec l'augmentation du nombre de composants, mise en page plus rapide plus lente.

Flutter a commencé comme un projet pilote, les membres de l'équipe Google Chrome, nous voulions voir si nous négligeons le mode de mise en page traditionnelle, si vous pouvez construire une plus rapide renderer. Quelques semaines plus tard, nous avons réalisé une croissance significative en termes de performance, nous avons constaté que:

  • La plupart des mise en page sont relativement simples, tels que: le défilement du texte sur la page, la taille et l'emplacement ne dépend que sur un écran rectangulaire de taille fixe, et certaines formes, les éléments flottants et similaires.

  • La plupart des composants de l'interface utilisateur de mise en page agissent seulement sur une partie de l'arbre, ce qui est généralement un modèle de mise en page de sous-arbre, composants d'interface utilisateur et ne nécessite donc que quelques-unes de ces règles.

Nous avons réalisé que si complètement changer la mise en page du modèle précédent, la mise en page peut être grandement simplifiée:

  • Chaque composants d'interface utilisateur préciseront son propre modèle simple de mise en page, plutôt que d'avoir des composants de l'interface utilisateur peut être appliquée à un ensemble de règles de mise en page.

  • Parce que chaque composant d'interface utilisateur a un plus petit ensemble des besoins de mise en page à considérer, de sorte que la mise en page peut être fortement optimisé.

  • Pour simplifier encore la mise en page, nous avons presque tous les contenus sont convertis en composants d'interface utilisateur.

Voici un composants d'interface utilisateur simple avec une mise en page avec le code Flutter pour créer.

 nouveau centre (enfant: nouvelle colonne (enfants: )

Ce code est sémantiquement assez clair. Vous pouvez facilement imaginer ce que cela va générer. Affiche les résultats de l'exécution de ce code est suit comme:

Bonjour, monde!

Dans ce code, tous font partie d'un composant d'interface utilisateur, y compris la mise en page. Centre composant d'interface utilisateur qui est concentrée dans les composants du sous-ensemble de la mère (par exemple un écran). ColumnUI son assemblage alignement vertical sous-composant (liste composant UI). La liste contient une icône de texte et un contrôle (ayant un attribut de couleur).

Dans Flutter, un rembourrage et centrée sur des widgets, le thème est adapté à leurs sous-composantes de l'interface utilisateur de contrôle, et même des applications et la navigation sont également des widgets.

Flutter y compris de nombreux widgets pour la mise en page, contient non seulement la colonne, comprend également la ligne, grilles, listes, etc. En outre, Flutter dispose également d'un modèle de mise en page unique que nous appelons « modèle de mise en page bande (modèle de mise en page de ruban) » pour le défilement. Flutter La mise en page est très rapide, il peut être utilisé pour le défilement. Imaginez rouler doit être lissée si rapidement, qu'il rend les utilisateurs se sentent quand ils traînent sur l'écran physique, et l'image de l'écran comme connecté que leurs doigts.

En utilisant une mise en page de roulement, Flutter peut mettre en uvre de roulement avancé, comme indiqué ci-dessous. S'il vous plaît noter que ce sont GIF animés, plus lisse réel d'application Flutter. Vous pouvez (et devrait) exécuter leurs propres applications, consultez la section Ressources à la fin de cet article.

Dans la plupart des cas, Flutter une seule passe pour terminer la mise en page, ce qui signifie que la mise en page du temps passé est la croissance linéaire, il peut gérer un grand nombre de widgets. Flutter peut également utiliser le cache, ou un autre élément pour éviter la duplication de mise en page.

Conception sur mesure

Parce que les composants de l'interface font désormais partie de l'application, vous pouvez ajouter de nouveaux composants de l'interface utilisateur, et peut personnaliser un composants d'interface utilisateur existants, de sorte que la marque a un autre aspect ou la sensation, ou correspondre aux tendances de conception de l'entreprise sont en mouvement et il y a quelques années la monotonie du départ des applications couramment utilisées, ont commencé à faire l'utilisateur conçu sur mesure agréable.

Flutter avec une richesse de personnalisable Android, iOS et matériel de conception de composants (en fait, on nous a dit Flutter est le matériau Design a réalisé l'une des plus haute fidélité), nous utilisons personnalisable flutter propose de construire ces composants bibliothèque pour correspondre à l'apparence de composants natifs sur plusieurs plates-formes. Les développeurs de programmes peuvent utiliser des fonctionnalités comme un widget personnalisable plus adaptés pour répondre à leurs besoins.

Voir plus réactif sur

bibliothèque existante vues Responsive Web ont introduit DOM virtuel, DOM représente le modèle objet de document HTML. JavaScript API DOM fourni en manipulant les performances d'un arbre élément de document HTML. objet virtuel DOM DOM version abstraite (dans ce cas, JavaScript) pour créer un langage de programmation en cours d'utilisation.

Dans la vue Responsive Web (mis en uvre par ReactJS et autres systèmes), le DOM virtuel est immuable, chaque fois que vous changez, il fallait tout reconstruire. Le système virtuel et la comparaison DOM DOM, génère un ensemble de changements minimes, et ces changements à mettre à jour le vrai DOM. Enfin, la plate-forme est redessinée dans la vraie DOM sur la toile.

Il semble ajoute beaucoup de travail supplémentaire, mais il vaut la peine, parce que la manipulation HTML DOM prend beaucoup de ressources système.

React indigène aussi fait un travail semblable, mais est réalisé dans les applications mobiles entre. Il manipule le composant natif sur une plate-forme mobile au lieu de DOM. Il construit un des composants d'interface d'arbres virtuels, par rapport aux composants d'origine et mise à jour uniquement des pièces qui ont changé.

Rappelez-vous, React natif doit communiquer avec le primaire à travers l'élément pont et, par conséquent, le composant de l'interface utilisateur de l'arbre virtuel peut aider à maintenir le pont de transmission minimum, tout en permettant l'utilisation des composants natifs. Enfin, une fois la mise à jour membre natif, la plate-forme les rendre sur la toile.

React développement mobile natif est un grand pas en avant, et est une source d'inspiration Flutter, mais Flutter plus loin.

Rappelons que dans le Flutter, composants d'interface utilisateur, et a été intégré renderer de la plate-forme à la demande de l'utilisateur. Aucun composant de l'interface utilisateur du système peut fonctionner, de sorte que l'arbre de commande virtuel d'origine où est maintenant l'arbre de contrôle réel. contrôles flutter rendent l'arbre de l'interface utilisateur et d'en tirer sur la plate-forme de toile. Ce qui est bon, simple et rapide. De plus, l'animation se produit dans l'espace utilisateur, l'application (afin que les développeurs) peut être plus de contrôle.

Flutter lui-même est intéressant renderer: il utilise plusieurs structure arborescente interne pour rendre seulement besoin d'être mis à jour sur les composants de l'interface utilisateur de l'écran. Par exemple, le moteur de rendu utilise « rafraîchissement structure synthétique » (ce qui signifie plus efficace que l'utilisation de la région rectangulaire sur l'écran). Les mêmes contrôles de l'interface utilisateur, même ceux qui ont déménagé contrôles d'interface utilisateur, il suffit de changements très subtils dans la mémoire, bien sûr, la vitesse super rapide. Voilà pourquoi la performance de roulement Flutter si haut, même en scène de roulement très complexe.

Pour en savoir plus sur Flutter renderer, je recommande cette vidéo. Vous pouvez également regarder le code, car Flutter est open source. Bien sûr, vous pouvez personnaliser ou même de remplacer l'ensemble de la pile, y compris le rendu, synthétiseur, animation, la reconnaissance des gestes et des widgets de cours.

langage de programmation Dart

Parce que Flutter Comme d'autres systèmes utilisant vue réactive du même point de vue rafraîchies tous les arbres du nouveau cadre, il va créer un grand nombre d'objets en mémoire que dans un seul (un - soixantième). Heureusement, l'utilisation de Dart « la collecte des ordures de génération » pour de tels systèmes est très efficace, puisque l'objet (en particulier, de courte durée) consomment relativement peu de ressources. En outre, un seul pointeur bosse pour compléter les objets attribués. Ceci est un moyen rapide et ne nécessite pas de blocage bosse de pointeur. Cela permet d'éviter l'interface utilisateur Caton.

Dart a aussi un « arbre secouant » compilateur, il ne contient que le code dont vous avez besoin dans votre application. Même si vous avez seulement besoin d'un ou deux, vous pouvez vous sentir libre d'utiliser la grande bibliothèque de commandes d'interface utilisateur.

surcharge thermique

un flutter des caractéristiques les plus populaires est son rapide, conservé l'état du programme surcharge thermique (rechargement à chaud). Vous pouvez modifier l'application Flutter est en cours d'exécution, le code de recharger l'application, il continuera de la position de fonctionnement précédent. Une surcharge thermique généralement moins d'une seconde. Si votre application rencontre une erreur, vous pouvez généralement corriger l'erreur, et continuer comme si l'erreur avait jamais eu lieu. Même si vous devez complètement recharger, il est également très rapide.

Les développeurs nous disent, ce qui leur permet de « dessiner » leur application, un changement, alors vous pouvez voir les résultats presque instantanément sans avoir à redémarrer l'application.

compatibilité

Parce que les composants de l'interface utilisateur (composants de l'interface utilisateur et le moteur de rendu) fait partie de votre demande, ne fait pas partie de la plate-forme, non « bibliothèque compatible. » Votre application peut non seulement le travail, mais aussi dans la version la plus récente du système d'exploitation Android Jelly Bean plus tard et plus tard le système iOS 8.0 est le même. Cela réduit considérablement la nécessité de tester votre application sur les anciennes versions du système d'exploitation. De plus, il est très probable que votre application est compatible avec les futures versions du système d'exploitation.

Nous avons posé des questions sur un problème potentiel. Étant donné que Flutter ne pas utiliser les composants de l'interface utilisateur native, et par conséquent, lorsqu'un nouvel iOS ou Android version apparaissent, les composants d'interface Flutter doivent être mis à jour pour les nouvelles pièces, ou modifier l'apparence ou le comportement des composants existants ne?

  • Tout d'abord, Google est Flutter d'un grand utilisateurs internes, nous avons donc un grand intérêt à mettre à jour les composants de l'interface utilisateur, de le garder aussi près de la date et des composants de l'interface utilisateur native.

  • S'il y a un moment où nous sommes trop lents dans la mise à jour d'un composant d'interface utilisateur, Google n'est pas le seul à ce jour Flutter composants de l'interface utilisateur. composants d'interface utilisateur flutter sont évolutives et personnalisables, tout le monde peut les mettre à jour, y compris vous, vous ne devez même pas soumettre une demande. Vous ne devez jamais attendre propre mise à jour Flutter.

  • Seulement quand vous voulez tenir compte des nouveaux changements dans l'application, les points ci-dessus applique. Si vous ne voulez pas changer affecte l'apparence ou le travail de votre application, alors il n'y a pas besoin d'utiliser mentionné ci-dessus. composants d'interface utilisateur font partie de votre demande, de sorte que l'interface utilisateur ne sera jamais autorisé à changer en cas de vos connaissances et de faire votre demande une mauvaise (ou pire, briser votre application).

  • Comme un avantage supplémentaire, vous pouvez écrire votre application afin d'utiliser les nouveaux composants de l'interface utilisateur, même sur les versions du système d'exploitation plus anciens.

D'autres avantages

Pendant ce temps, la simplicité Flutter font courir vite, mais son évolutivité et de personnalisation, rester simple avec des fonctionnalités puissantes.

Dart a un dépôt de paquets. Vous pouvez utiliser ces packages disposent d'application étendue. Par exemple, il existe de nombreux logiciels peuvent facilement accéder à Firebase, de sorte que vous pouvez construire une application « serverless ». contributeurs externes pour créer un logiciel qui vous permet d'accéder au magasin de données Redux. Il y a un certain paquet de façons appelé « plugins », et peuvent être indépendants de la plate-forme du système d'exploitation pour faciliter l'accès aux services et le matériel, tel qu'un accéléromètre ou un appareil photo.

Bien sûr, Flutter est un projet open source, ainsi que Flutter rendu pile fait partie de votre application, ce qui signifie que vous pouvez personnaliser presque toutes les applications que vous voulez. La partie verte de votre chiffre peut être personnalisé:

Alors, « Flutter Quoi de neuf et excitant » moyenne?

Si quelqu'un vous demande Flutter, vous savez maintenant comment y répondre:

  • Avantages de vue sensibles, ne nécessite pas de pont JavaScript

  • Rapide, lisse, prévisible, code natif compilé AOT (ARM) Code

  • Les développeurs un contrôle complet sur la mise en page des composants d'interface utilisateur et

  • Avec une belle, des composants de l'interface utilisateur sur mesure

  • outils de développement puissants, reload chaud incroyable

  • Une meilleure performance, une meilleure compatibilité, plus de plaisir en cours d'élaboration

Avez-vous remarqué quoi que ce soit sur cette liste, je le mets? Ceci est généralement la première chose que les gens parlent quand on parle de Flutter, mais pour moi, c'est l'une des choses les plus importantes Flutter.

C'est, Flutter peut construire des applications belles et rapides pour plusieurs plates-formes à partir d'une seule base de code. Bien sûr, cette liste devrait venir! Son évolutivité et de personnalisation peuvent facilement Flutter à de multiples plates-formes sans pour autant sacrifier la consommation de performance ou de puissance.

révolutionnaire flutter

Je ne l'ai pas tout à fait expliquer pourquoi Flutter est « révolutionnaire ». Ceci est en fait une évaluation très appropriée, parce que l'une des premières applications majeures de développeurs externes à construire avec Flutter est de décrire les États-Unis pendant la guerre d'indépendance, « Hamilton: comédie musicale américaine, » l'application officielle. « Hamilton » est l'un des plus populaires comédies musicales de Broadway.

L'équipe de développement d'applications Posse a déclaré qu'ils ont choisi Flutter parce qu'ils ont besoin pour construire des applications en seulement trois mois. Ils l'appellent « la performance des applications révolutionnaire d'un révolutionnaire » et dit « Flutter est une belle, haute performance, grand choix de la marque axée sur l'expérience mobile. » L'application peut être téléchargée sur l'application Android et iOS magasin et obtenir de plus en plus d'éloges.

Joignez-vous à la révolution!

Flutter est actuellement la version Alpha. Nous ajoutons également plus de fonctionnalités, et nous avons plus programme d'optimisation. Cependant, Google groupes internes et externes utilisent déjà pour construire des applications critiques.

Si vous êtes intéressé Flutter, vous pouvez l'installer et l'expérience qui vient avec quelques exemples d'applications installées, il faut essayer de surcharge thermique.

Si vous n'êtes pas un développeur ou que vous voulez juste voir certaines applications, vous pouvez installer la version application Flutter et de visualiser leur apparence et les performances. Je recommande applications Hamilton, mais il y a d'autres applications. Vous devriez également regarder des vidéos de Google I / O, ils compilation en direct l'application Flutter là.

site Web

  • Site Flutter:

    https://flutter.io/

  • Dépôt de sources (bienvenue pour envoyer une demande!):

    https://github.com/flutter/flutter

2019, qu'il y aura un certain nombre de drame loin de nous, que beaucoup de travail encore phénoménal
Précédent
Li Landi drame propagande officielle, la seule Qing prendre soin de drame de la maison de son faisceau, la forme ressemblant Wei Ying Luo?
Prochain
SuperVOOC super charge flash, déclencher une « révolution de charge »
« Le Mexique trois héros » du metteur en scène « Harry Potter » Alfonso Suo Kalong dirigé le chef-d'uvre « Rome »
« Sachant non » Minglan pas tomber en amour avec Gu Ting Ye? Illuminez ces détails pour prouver cela est vrai
80 minutes vie de la batterie, Vorwerk a lancé le premier aspirateur sans fil peut trésor
PS4 Pro encombrant tant, il y a bourré à la fin quoi?
Baidu terminal mobile open source pour apprendre la profondeur du bâti mobile-deep-apprentissage (MDL)
190324 ambition inventaire bébé mis à jour briller peu de soleil pour toujours
7010000000000 yuans! l'amélioration constante du commerce extérieur, où la nouvelle dynamique dans la?
les parents Chen Yu-lin reprêtée: fille vraiment reconnaître notre culpabilité, les initiés dit que sa famille est riche en local?
Nous recommandons un drame de suspense « pécheur » un garçon de 11 ans a tué ses parents
Au prix de 3498 yuans, X23 vivo vente officiellement commencé
Quinze ans de voyage de la lumière : l'enregistrement secret de "Halo" (Partie 1)