? OpenSource Toutes les couches Multiplateforme Android (4.1+) & iOS (8.0+) Inspiré du web Hot Reload, concepts… Code natif = performances Dart Langage de programmation
+ regain d'intérêt Multiplateforme Cli, web et Flutter Future/Stream async/await Deux modes AOT et JIT Typage fort Depuis Dart 2.0 Syntaxe familière Apprentissage court
Fils unique Text, Image, Padding, Theme… Padding Texte Fils multiples Column (les uns en dessous des autres) Row (les uns à côté des autres) Stack (les uns aux dessus des autres) Column Texte
StatefulWidget ? StatelessWidget Son état n'évolue pas au fil du temps Bienvenue ! StatefulWidget Widget attaché à un état (State) qui peut évoluer au fil du temps Vous avez 1 item Ajouter un item au panier
Ne contient que des attributs simples permettant d'expliquer comment construire l'interface Arbre immutable A chaque changement d'état, on doit reconstruire l'arbre
arbres Arbre des éléments Arbre mutable qui fait le lien entre un Widget et son RenderObject Arbre de widgets Arbre qui décrit les composants et leurs valeurs Arbre de rendu Arbre mutable de RenderObjects qui s'occupent de gérer le layout, le dessin et la gestion du touch
arbres Arbre des widgets Arbre des éléments Arbre de rendu MyApp Text text : Hello World Container color : Color.black Element Element Element MyAppRender TextRender text : Hello World ContainerRender color : Color.black
arbres Arbre des widgets Arbre des éléments Arbre de rendu MyApp Text text : Hello World Container color : Colors.blue Element Element Element MyAppRender TextRender text : Hello World ContainerRender color : Colors.blue ContainerRender color : Color.black
compromis Google Maps ou WebView demandent beaucoup de travail pour les recréer Widgets indispensables Coucou les SDKs de pub Widgets qui n'existeront jamais La solution : Les Platform Views
! Material Cupertino Widgets Rendering Fondation Animation Painting Gestures Framework (Dart) Flutter Web Engine dart:ui Projet uniquement annoncé et le choix de la solution est en cours (HTML+CSS+Canvas ou CSS Paint API) Projet HummingBird
seulement) Gestion des extensions Communication avec le code en C/C++ Permettre de tester Flutter sans tout l'environnement Meilleure intégration des service Google