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

Applications modernes avec Jetpack

Farouk
December 07, 2019

Applications modernes avec Jetpack

Farouk

December 07, 2019
Tweet

More Decks by Farouk

Other Decks in Programming

Transcript

  1. • Rend simple les tâches complexes. • 70% de développeurs

    android utilisent Jetpack (source Google survey) • Constamment mis à jour (fréquence d’une release / 5 jrs) • Documentation technique de qualité Un ensemble de librairies permettant de développer plus rapidement des applications robustes, testables et maintenables.
  2. Témoignages “C’est notre couteau suisse pour affronter tous nos challenges”

    - CTO Hike “AAC nous a permis de ré-architecturer notre application Android” - Drew Hannay, SWE “Avant Room, la persistance de données était un cauchemar pour nous ” - A. Lawton “Avec ViewModel/LiveData, on a une codebase plus consise et stable” - Zheng Songyin
  3. Android Jetpack AndroidX • Ensemble d’outils • Guide pour développer

    une meilleure app • Refactoring de la support Library • Naming & versioning améliorées
  4. Adopter la programmation modulaire • Développer et améliorer progressivement chaque

    module indépendamment des autres. • Facilite la ré-utilisabilité et le partage de votre code • Réduire la durée de build de gradle - APK moins lourds • Favorise l’open source
  5. Architecture MVVM (Model-View-ViewModel) ? Méthode de conception permettant de séparer

    la vue de la logique et de l'accès aux données en accentuant les principes de liaison de données bidirectionnelles et d'évènement. Model ViewModel View Notifications Data Binding interactions Logique métier, BD Logique de presentation Interface utilisateur
  6. Model ❖ Collections de classes définissant le modèle de données

    ❖ REST, GraphQL ❖ Room, SQLite Model Model Logique métier, données
  7. ViewModel ❖ Prépare les données pour la Vue ❖ Responsable

    de l’affichage (quand et comment les afficher) ❖ Observe et notifie la vue des différents changements d'états ❖ Survit aux changements de configuration Model Model ViewModel Logique métier, données Logique presentation
  8. View ❖ Représente les différents composants de l’interface utilisateur ❖

    Affiche les données reçues du ViewModel Model Model ViewModel View Notifications Data Binding interactions Logique métier, données Logique presentation Interface utilisateur
  9. Sunflower https://github.com/android/sunflower Références Foundations • AppCompat • Android KTX •

    Test Architecture Components • DataBinding • Lifecycles • LiveData • Navigation • Room • ViewModel • WorkManager UI Components • Animations / Transitions • Fragment • Layout