Upgrade to Pro — share decks privately, control downloads, hide ads and more …

SwiftLille Meetup #5 - Alexandre MARDON - On a osé ! Flutter dans une application native

Swift Lille
January 23, 2020
100

SwiftLille Meetup #5 - Alexandre MARDON - On a osé ! Flutter dans une application native

Intégrer un module Flutter dans leurs applications natives en production, c'est le pari qu'a fait Decathlon. Pourquoi ils ont fait ce choix, quelles sont les embûches qu'ils ont rencontrées et ce qu'ils en ont tiré, c'est l'objet de ce talk qui présentera le parcours du module, de la conception à la production.

Swift Lille

January 23, 2020
Tweet

Transcript

  1. Qu'est-ce que Flutter ? Introduction à Flutter Release officielle Décembre

    2018 OpenSource Performances Code natif Expérience développeur Hot reload, declarative UI </> Multiplateforme a portable UI framework for an ambient computing world
  2. Challenges attendus Intégration du module Flutter Une nouvelle architecture Partage

    de données OAuth2 Token, API Keys Widget & UI spécifique
  3. Challenges attendus Intégration du module Flutter Une nouvelle architecture Partage

    de données OAuth2 Token, API Keys Widget & UI spécifique
  4. Challenges attendus Intégration du module Flutter Une nouvelle architecture Partage

    de données OAuth2 Token, API Keys Widget & UI spécifique
  5. Challenges attendus Intégration du module Flutter Une nouvelle architecture Partage

    de données OAuth2 Token, API Keys Widget & UI spécifique
  6. Challenges attendus Intégration du module Flutter Une nouvelle architecture Partage

    de données OAuth2 Token, API Keys Widget & UI spécifique
  7. Intégration Intégration du module Flutter Android Source code ou Android

    Archive (AAR) FlutterActivity, FlutterFragment, FlutterView
  8. Intégration Intégration du module Flutter Android Source code ou Android

    Archive (AAR) FlutterActivity, FlutterFragment, FlutterView ou ou
  9. Intégration Intégration du module Flutter Android Source code ou Android

    Archive (AAR) FlutterActivity, FlutterFragment, FlutterView ou ou Facile !
  10. Apprentissage Intégration du module Flutter Reconnaissance des widgets 2-3 semaines

    Cycle de vie, construction des vues à chaque frame ou presque 1-2 semaines State management 1 mois Arbre de widget // arbre de context // RenderObjects 2-3 mois Etapes :
  11. Communication entre natif et Flutter : les MethodChannels Intégration du

    module Flutter Pont d'appel de fonction entre les deux codebase Partage de données : facile
  12. Communication entre natif et Flutter : les MethodChannels Les premières

    difficultés Pont d'appel de fonction entre les deux codebase Faire intéragir du code : pas facile
  13. Intégration aux processus Les premières difficultés Sources Flutter Génération aar

    en local Génération aar en 
 intégration continue + Repo maven distant
  14. Intégration aux processus Les premières difficultés Sources Flutter Génération aar

    en local Génération aar en 
 intégration continue + Repo maven distant ???
  15. Intégration aux processus Les premières difficultés Sources Flutter Génération aar

    en local Génération aar en 
 intégration continue + Repo maven distant ??? Génération Framework local + CocoaPods privé
  16. Intégration aux processus Les premières difficultés Sources Flutter Génération aar

    en local Génération aar en 
 intégration continue + Repo maven distant ??? Génération Framework local + CocoaPods privé Génération Framework
 en intégration continue
  17. Ce qu'on y a gagné L'écosystème 1 code 2 platforms

    Temps de dev diminué Gestion de projet simplifiée
  18. Ce qu'on y a gagné L'écosystème Expérience de développement Hot

    Reload, Vues 1 code 2 platforms Temps de dev diminué Gestion de projet simplifiée
  19. Ce qu'on y a gagné L'écosystème Compétence Flutter Individuelle et

    collective Expérience de développement Hot Reload, Vues 1 code 2 platforms Temps de dev diminué Gestion de projet simplifiée
  20. Ce qu'on y a gagné L'écosystème Réflexion sur la 


    modularisation Externalisation Stand-alone
  21. SWOT Récap Strength Weakness Opportunities Threat 1 code 2 platforms

    Réactivité & Performances Time-to-market Expérience de dév
  22. SWOT Récap Strength Weakness Opportunities Threat Techno 'jeune', 'in preview'

    Multiple intéractions avec le natif 1 code 2 platforms Réactivité & Performances Time-to-market Expérience de dév
  23. SWOT Récap Strength Weakness Opportunities Threat Techno 'jeune', 'in preview'

    Multiple intéractions avec le natif Flutter for Web Communauté grandissante Contributions externes 1 code 2 platforms Réactivité & Performances Time-to-market Expérience de dév
  24. SWOT Récap Strength Weakness Opportunities Threat Techno 'jeune', 'in preview'

    Multiple intéractions avec le natif Flutter for Web Communauté grandissante Contributions externes Montée en compétence sous-estimée Partage et criticité de la compétence 1 code 2 platforms Réactivité & Performances Time-to-market Expérience de dév
  25. Si c'était à refaire ? FAQ Si tu l'avais en

    natif, est-ce que tu aurais mis 
 moins de temps ? Est-ce que tu crois en Flutter ?