Chp3 - Architecture Logicielle des Applications Mobiles

Lilia Sfaxi
Lilia SfaxiDocteur-Ingénieur en Informatique - Assistante à l'INSAT
Chp3 : Architecture des Applications Mobiles
MVC, MVVM, MVP…
Conception et Développement d’Applications Mobiles
GL4 (Option Mobile) - 2015
Dr. Lilia SFAXI
www.liliasfaxi.wix.com/liliasfaxi
Slide 1
Structure
•  Usuellement: Application multi-couches
•  Interface Utilisateur
•  Couche métier
•  Couche données
•  Choix possible entre:
•  Client léger web-based
•  Couches métier et client probablement localisées sur le serveur
•  Client lourd et riche
•  Couches métier et client probablement sur l’appareil
Dr. Lilia SFAXI
www.liliasfaxi.wix.com/liliasfaxi
Slide 2
Chp3 : Architecture des Applications Mobiles
PLAN
1.  Principes de Conception Mobile
2.  Les Patrons de conception MV*
Dr. Lilia SFAXI
www.liliasfaxi.wix.com/liliasfaxi
Slide 3
Chp3 : Architecture des Applications Mobiles
PRINCIPES DE CONCEPTION MOBILE
Chp3 : Architecture des Applications Mobiles
Dr. Lilia SFAXI
www.liliasfaxi.wix.com/liliasfaxi
Slide 4
1.  Principes de Conception Mobile
2.  Les Patrons de conception MV*
Principes de Conception Clefs
•  Principes clefs qui vous aideront à concevoir une application
mobile qui correspond aux « meilleures pratiques », minimise
les coûts et besoins de maintenance, et favorise l’utilisabilité
et extensibilité
•  Séparation des préoccupations
•  Principe de responsabilité unique
•  « Don’t Repeat Yourself » (DRY)
•  Ne pas commencer par une conception évoluée
•  Privilégier la composition sur l’héritage
Dr. Lilia SFAXI
www.liliasfaxi.wix.com/liliasfaxi
Slide 5
Conception d’Applications Mobiles
P1: Séparation des Préoccupations
« Separation of Concerns »
•  Diviser votre application en parties distinctes dont les
fonctionnalités se chevauchent le moins possible
•  Avantages
•  Optimisation d’un module ou fonctionnalité indépendamment des
autres
•  Si un module est défaillant, il n’impactera pas les autres
•  Rend l’application plus facile à comprendre et concevoir
•  Facilite la gestion des systèmes complexes indépendants
Dr. Lilia SFAXI
www.liliasfaxi.wix.com/liliasfaxi
Slide 6
Conception d’Applications Mobiles
P2: Principe de Responsabilité Unique
« Single Responsibility Principle »
•  Chaque composant ou module doit être responsable
uniquement d’une fonctionnalité ou caractéristique
•  Avantages
•  Rend les composants plus cohésifs (unis, rassemblés)
•  Rend l’optimisation des composants plus facile si une caractéristique ou
fonctionnalité a changé
Dr. Lilia SFAXI
www.liliasfaxi.wix.com/liliasfaxi
Slide 7
Conception d’Applications Mobiles
P3: Pas de Répétition
« Don’t Repeat Yourself (DRY) »
•  Il ne faut pas dupliquer une fonctionnalité dans une
application sur plusieurs modules
•  Avantages
•  Faciliter l’implémentation des changements
•  Augmenter la clarté
•  Renforcer la consistance du code
Dr. Lilia SFAXI
www.liliasfaxi.wix.com/liliasfaxi
Slide 8
Conception d’Applications Mobiles
P4: Ne pas Commencer par une Conception Évoluée
«Avoid doing a big design upfront »
•  Si vos besoins ne sont pas clairs, ou s’il y’a des risques
d’évolution de la conception dans le temps, éviter de fournir
trop d’effort pour la conception au début
•  Faites en sorte que votre conception progresse avec votre
application
Dr. Lilia SFAXI
www.liliasfaxi.wix.com/liliasfaxi
Slide 9
Conception d’Applications Mobiles
P5: Privilégier la Composition à l’Héritage
«Composition over Inheritance »
•  Utiliser si possible la composition à la place de l’héritage
quand vous voudrez réutiliser une fonctionnalité
•  Avantages
•  L’héritage augmente la dépendance entre les classes parentes et filles
•  Limitation de la réutilisation des classes filles
•  Réduire la hiérarchie de l’héritage, qui peut s’avérer pénible
Dr. Lilia SFAXI
www.liliasfaxi.wix.com/liliasfaxi
Slide 10
Conception d’Applications Mobiles
Mais aussi…
•  Grouper les types de composants différents dans des couches logiques
•  Faire en sorte que les design patterns d’une couche soient consistants
•  Ne pas utiliser de design patterns incompatibles dans une même couche
•  Ne pas mixer plusieurs types de composants dans la même couche logique
•  Déterminer le type de couches que vous voulez renforcer
•  Utiliser l’abstraction pour implémenter le couplage faible entre les couches
•  Éviter de surcharger les fonctionnalités d’un composant
•  Comprendre comment est-ce que les composants communiquent les uns
avec les autres
•  Garder des formats de données consistantes dans une couche
•  Séparer le plus possible le code non fonctionnel (sécurité, logging…) du code
métier
•  Être consistant dans les conventions de nommage
•  Établir des standards pour la gestion des exception
Dr. Lilia SFAXI
www.liliasfaxi.wix.com/liliasfaxi
Slide 11
Conception d’Applications Mobiles
LES PATRONS DE CONCEPTION MV*
Chp3 : Architecture des Applications Mobiles
Dr. Lilia SFAXI
www.liliasfaxi.wix.com/liliasfaxi
Slide 12
1.  Principes de Conception Mobile
2.  Les Patrons de conception MV*
Avantages
« Les patrons de conception sont des solutions réutilisables pour des
problèmes récurrents »
•  Réutilisabilité
•  Le modèle n’est pas couplé avec sa représentation, et peut donc être
facilement réutilisé dans d’autres projets
•  Testabilité
•  Tester les couche indépendamment les unes des autres les rend plus faciles
à gérer et à corriger
•  Maintenabilité
•  Il est plus facile de modifier une partie de l’application sans impacter les
autres modules
•  Compréhensibilité
•  Le code est plus compréhensible et plus lisible
Dr. Lilia SFAXI
www.liliasfaxi.wix.com/liliasfaxi
Slide 13
Les Patrons de Conception MV*
MVC : Model – View – Controller
Dr. Lilia SFAXI
www.liliasfaxi.wix.com/liliasfaxi
Slide 14
Les Patrons de Conception MV*
Model
ControllerView
1*
Classes du Modèle
Requête & RelaiComposants UI
MVC : Couches
•  Model
•  Données de l’application
•  Méthodes manipulant ces données
•  Stockage et extraction de la BD
•  View
•  Représentation visuelle du modèle
•  Gère les interactions utilisateur
•  Contrôleur
•  Accès aux données à partir du modèle
•  Affichage des données dans les vues
•  Intermédiaire entre plusieurs vues et modèles
•  Observe les changements du modèle et les transmet à la vue
Dr. Lilia SFAXI
www.liliasfaxi.wix.com/liliasfaxi
Slide 15
Les Patrons de Conception MV*
M
CV
1*
MVC : Flux
•  Les entrées utilisateur sont interceptées par le contrôleur
•  Un contrôleur peut faire appel à plusieurs vues (erreur, succès…)
•  Une vue n’a pas de visibilité sur son contrôleur
•  Le contrôleur passe le modèle à la vue
•  Le modèle a en général peu (ou pas) de méthodes (comportement)
Dr. Lilia SFAXI
www.liliasfaxi.wix.com/liliasfaxi
Slide 16
Les Patrons de Conception MV*
M
CV
1*
MVC : Références
•  La vue fait référence au modèle, mais pas le contraire
•  La vue « observe » les changements du modèle, et s’y adapte
•  Le contrôleur fait référence au modèle, le remplit et le passe à
la vue
•  La vue n’a pas de visibilité sur le contrôleur, mais fait
référence et s’attend à un modèle particulier
Dr. Lilia SFAXI
www.liliasfaxi.wix.com/liliasfaxi
Slide 17
Les Patrons de Conception MV*
M
CV
1*
MVVM : Model – View – ViewModel
Dr. Lilia SFAXI
www.liliasfaxi.wix.com/liliasfaxi
Slide 18
Les Patrons de Conception MV*
Model
ViewModelView
1*
MVVM : Flux
•  L’ entrée utilisateur commence par la vue et peut provoquer l’exécution
d’un comportement ViewModel
•  La vue et le modèle ne communiquent jamais
•  ViewModel est un modèle fortement typé de la vue, qui est une
réflexion exacte ou une abstraction de cette vue
•  ViewModel et Vue sont toujours synchronisés
•  Le modèle n’a aucune idée que le VM ou la vue existent
Dr. Lilia SFAXI
www.liliasfaxi.wix.com/liliasfaxi
Slide 19
Les Patrons de Conception MV*
M
VMV
1*
MVVM : Références
•  Un VM n’a pas besoin de référencer la vue
•  La vue est reliée à des propriétés du VM
•  La vue n’a aucune idée sur l’existence du modèle
•  Le VM et le modèle n’ont pas de référence ou visibilité sur la vue
•  Le modèle n’a aucune idée de l’existence de la vue et du VM
Dr. Lilia SFAXI
www.liliasfaxi.wix.com/liliasfaxi
Slide 20
Les Patrons de Conception MV*
M
VMV
1*
MVP : Model – View – Presenter
Dr. Lilia SFAXI
www.liliasfaxi.wix.com/liliasfaxi
Slide 21
Les Patrons de Conception MV*
Model
PresenterView
11
MVP : Flux
•  L’ entrée utilisateur commence par la vue, pas par le Presenter
•  La vue invoque les commandes du Presenter, et le Presenter modifie la
vue
•  La vue et le modèle ne communiquent jamais
•  Le Presenter est une couche d’abstraction de la vue
•  Chaque vue a un Presenter qui lui est associé (1-to-1)
Dr. Lilia SFAXI
www.liliasfaxi.wix.com/liliasfaxi
Slide 22
Les Patrons de Conception MV*
M
PV
11
MVP : Références
•  Le Presenter a besoin d’une référence vers la vue
•  La vue a également une référence vers son Presenter
•  C’est le Presenter qui va charger la vue à partir du modèle, pas le
modèle
Dr. Lilia SFAXI
www.liliasfaxi.wix.com/liliasfaxi
Slide 23
Les Patrons de Conception MV*
M
PV
11
Références
•  Microsoft Patterns and Practices, « Mobile Application Architecture
Guide: Application Architecture Pocket Guide », 2008
•  Amir Jalilifard, « A belly dance in the holy lands of MVC, MVP and MVVM
Patterns via Javascript », Code Project, 24 février 2015, url:
http://www.codeproject.com/Articles/844789/A-Belly-Dance-in-Holy-
Lands-of-MVC-MVP-and-MVVM-Pa
•  Ketan Thakkar, « Difference between MVC vs. MVP vs. MVVM », 11
septembre 2014, url:
http://blogs.k10world.com/technology/difference-between-mvc-vs-
mvp-vs-mvvm/
•  Wiztelsys, « Design Patterns used in Mobile », 17 avril 2014, url =
https://wiztelsys.com/blog/design-patterns-used-in-mobiles/
Dr. Lilia SFAXI
www.liliasfaxi.wix.com/liliasfaxi
Slide 24
Sites Web & Livres
1 sur 24

Recommandé

Rapport pfe Conceptionet Developpement d'une Application web et Mobile par
Rapport pfe Conceptionet Developpement d'une Application web et  Mobile Rapport pfe Conceptionet Developpement d'une Application web et  Mobile
Rapport pfe Conceptionet Developpement d'une Application web et Mobile Raoua Bennasr
17.2K vues108 diapositives
Rapport application web (Spring BOOT,angular4) et mobile(ionc3) gestion des a... par
Rapport application web (Spring BOOT,angular4) et mobile(ionc3) gestion des a...Rapport application web (Spring BOOT,angular4) et mobile(ionc3) gestion des a...
Rapport application web (Spring BOOT,angular4) et mobile(ionc3) gestion des a...MOHAMMED MOURADI
3.2K vues30 diapositives
Rapport pfe- Refonte et déploiement d’une solution de messagerie en utilisant... par
Rapport pfe- Refonte et déploiement d’une solution de messagerie en utilisant...Rapport pfe- Refonte et déploiement d’une solution de messagerie en utilisant...
Rapport pfe- Refonte et déploiement d’une solution de messagerie en utilisant...Nawres Farhat
22.8K vues102 diapositives
RapportPFE_IngenieurInformatique_ESPRIT par
RapportPFE_IngenieurInformatique_ESPRITRapportPFE_IngenieurInformatique_ESPRIT
RapportPFE_IngenieurInformatique_ESPRITLina Meddeb
6.3K vues65 diapositives
Présentation PFE (Conception et développement d'une application web && mobile... par
Présentation PFE (Conception et développement d'une application web && mobile...Présentation PFE (Conception et développement d'une application web && mobile...
Présentation PFE (Conception et développement d'une application web && mobile...Ramzi Noumairi
38.7K vues24 diapositives
Ma présentation PFE : Application Android & Site Web par
Ma présentation PFE : Application Android & Site WebMa présentation PFE : Application Android & Site Web
Ma présentation PFE : Application Android & Site WebHarrathi Mohamed
79.3K vues22 diapositives

Contenu connexe

Tendances

Rapport de projet de fin d"études par
Rapport de projet de fin d"étudesRapport de projet de fin d"études
Rapport de projet de fin d"étudesMohamed Boubaya
9.3K vues83 diapositives
Conception et Réalisation d’une application de Gestion SCOLAIRE par
Conception et Réalisation d’une application de Gestion SCOLAIREConception et Réalisation d’une application de Gestion SCOLAIRE
Conception et Réalisation d’une application de Gestion SCOLAIREGhizlane ALOZADE
39.2K vues51 diapositives
Projet de fin étude ( LFIG : Conception et Développement d'une application W... par
Projet de fin étude  ( LFIG : Conception et Développement d'une application W...Projet de fin étude  ( LFIG : Conception et Développement d'une application W...
Projet de fin étude ( LFIG : Conception et Développement d'une application W...Ramzi Noumairi
20.5K vues83 diapositives
Rapport de stage du fin d'étude par
Rapport de stage du fin d'étudeRapport de stage du fin d'étude
Rapport de stage du fin d'étudeYahyaoui Mohamed Yosri
73.7K vues72 diapositives
Présentation pfe - Etude, conception et réalisation d'une application web de ... par
Présentation pfe - Etude, conception et réalisation d'une application web de ...Présentation pfe - Etude, conception et réalisation d'une application web de ...
Présentation pfe - Etude, conception et réalisation d'une application web de ...Ayoub Mkharbach
17.3K vues34 diapositives
Rapport pfe talan_2018_donia_hammami par
Rapport pfe talan_2018_donia_hammamiRapport pfe talan_2018_donia_hammami
Rapport pfe talan_2018_donia_hammamiDonia Hammami
33.6K vues90 diapositives

Tendances(20)

Rapport de projet de fin d"études par Mohamed Boubaya
Rapport de projet de fin d"étudesRapport de projet de fin d"études
Rapport de projet de fin d"études
Mohamed Boubaya9.3K vues
Conception et Réalisation d’une application de Gestion SCOLAIRE par Ghizlane ALOZADE
Conception et Réalisation d’une application de Gestion SCOLAIREConception et Réalisation d’une application de Gestion SCOLAIRE
Conception et Réalisation d’une application de Gestion SCOLAIRE
Ghizlane ALOZADE39.2K vues
Projet de fin étude ( LFIG : Conception et Développement d'une application W... par Ramzi Noumairi
Projet de fin étude  ( LFIG : Conception et Développement d'une application W...Projet de fin étude  ( LFIG : Conception et Développement d'une application W...
Projet de fin étude ( LFIG : Conception et Développement d'une application W...
Ramzi Noumairi20.5K vues
Présentation pfe - Etude, conception et réalisation d'une application web de ... par Ayoub Mkharbach
Présentation pfe - Etude, conception et réalisation d'une application web de ...Présentation pfe - Etude, conception et réalisation d'une application web de ...
Présentation pfe - Etude, conception et réalisation d'une application web de ...
Ayoub Mkharbach17.3K vues
Rapport pfe talan_2018_donia_hammami par Donia Hammami
Rapport pfe talan_2018_donia_hammamiRapport pfe talan_2018_donia_hammami
Rapport pfe talan_2018_donia_hammami
Donia Hammami33.6K vues
Soutenance PFE ingénieur génie logiciel par Siwar GUEMRI
Soutenance PFE ingénieur génie logicielSoutenance PFE ingénieur génie logiciel
Soutenance PFE ingénieur génie logiciel
Siwar GUEMRI12.5K vues
Conception et réalisation d'une application web et mobile de e-commerce par AHMEDBELGHITH4
Conception et réalisation d'une application web et mobile de e-commerceConception et réalisation d'une application web et mobile de e-commerce
Conception et réalisation d'une application web et mobile de e-commerce
AHMEDBELGHITH43.4K vues
Rapport PFE : Réalisation d'une application web back-office de gestion pédago... par Anas Riahi
Rapport PFE : Réalisation d'une application web back-office de gestion pédago...Rapport PFE : Réalisation d'une application web back-office de gestion pédago...
Rapport PFE : Réalisation d'une application web back-office de gestion pédago...
Anas Riahi11.8K vues
Chp5 - Applications Android par Lilia Sfaxi
Chp5 - Applications AndroidChp5 - Applications Android
Chp5 - Applications Android
Lilia Sfaxi6.8K vues
Conception et Réalisation d’une Plateforme Web de Gestion des achats par Ayed CHOKRI
Conception et Réalisation d’une Plateforme Web de Gestion des achats Conception et Réalisation d’une Plateforme Web de Gestion des achats
Conception et Réalisation d’une Plateforme Web de Gestion des achats
Ayed CHOKRI49.6K vues
Rapport PFE : Développement D'une application de gestion des cartes de fidéli... par Riadh K.
Rapport PFE : Développement D'une application de gestion des cartes de fidéli...Rapport PFE : Développement D'une application de gestion des cartes de fidéli...
Rapport PFE : Développement D'une application de gestion des cartes de fidéli...
Riadh K.202.1K vues
Pfe master fst_final_decembre2015 par Ghali Rahma
Pfe master fst_final_decembre2015Pfe master fst_final_decembre2015
Pfe master fst_final_decembre2015
Ghali Rahma6.9K vues
Architectures 3-tiers (Web) par Heithem Abbes
Architectures 3-tiers (Web)Architectures 3-tiers (Web)
Architectures 3-tiers (Web)
Heithem Abbes12.6K vues
Conception et developpement d'un site web pour la suggestion et notification ... par Mohamed Boubaya
Conception et developpement d'un site web pour la suggestion et notification ...Conception et developpement d'un site web pour la suggestion et notification ...
Conception et developpement d'un site web pour la suggestion et notification ...
Mohamed Boubaya12.7K vues
Rapport PFE Développent d'une application bancaire mobile par Nader Somrani
Rapport PFE Développent d'une application bancaire mobileRapport PFE Développent d'une application bancaire mobile
Rapport PFE Développent d'une application bancaire mobile
Nader Somrani42.8K vues
Présentation PFE: Système de gestion des réclamations et interventions clients par Mohamed Ayoub OUERTATANI
Présentation PFE: Système de gestion des réclamations et interventions clientsPrésentation PFE: Système de gestion des réclamations et interventions clients
Présentation PFE: Système de gestion des réclamations et interventions clients
Rapport Projet De Fin D'étude Développent d'une application web avec Symfony2 par Sofien Benrhouma
Rapport Projet De Fin D'étude Développent d'une application web avec Symfony2Rapport Projet De Fin D'étude Développent d'une application web avec Symfony2
Rapport Projet De Fin D'étude Développent d'une application web avec Symfony2
Sofien Benrhouma155.7K vues
Conception et développement d’un système d’alerte et notification d’une tou... par Bilel Khaled ☁
Conception et développement  d’un système d’alerte et notification  d’une tou...Conception et développement  d’un système d’alerte et notification  d’une tou...
Conception et développement d’un système d’alerte et notification d’une tou...
Bilel Khaled ☁18.5K vues
Rapport PFE: Gestion de Parc Informatique par Eric Maxime
Rapport PFE: Gestion de Parc InformatiqueRapport PFE: Gestion de Parc Informatique
Rapport PFE: Gestion de Parc Informatique
Eric Maxime54.5K vues

En vedette

Chp1 - Introduction au Développement Mobile par
Chp1 - Introduction au Développement MobileChp1 - Introduction au Développement Mobile
Chp1 - Introduction au Développement MobileLilia Sfaxi
9.1K vues26 diapositives
Chp2 - Conception UX-UI des Applications Mobiles par
Chp2 - Conception UX-UI des Applications MobilesChp2 - Conception UX-UI des Applications Mobiles
Chp2 - Conception UX-UI des Applications MobilesLilia Sfaxi
5.7K vues52 diapositives
Mobile-Chp4 côté serveur par
Mobile-Chp4 côté serveurMobile-Chp4 côté serveur
Mobile-Chp4 côté serveurLilia Sfaxi
3.4K vues21 diapositives
Chp6 - Développement iOS par
Chp6 - Développement iOSChp6 - Développement iOS
Chp6 - Développement iOSLilia Sfaxi
4.6K vues64 diapositives
Android-Tp5 : web services par
Android-Tp5 : web servicesAndroid-Tp5 : web services
Android-Tp5 : web servicesLilia Sfaxi
5.6K vues9 diapositives
P4 intents par
P4 intentsP4 intents
P4 intentsLilia Sfaxi
5.8K vues19 diapositives

En vedette(20)

Chp1 - Introduction au Développement Mobile par Lilia Sfaxi
Chp1 - Introduction au Développement MobileChp1 - Introduction au Développement Mobile
Chp1 - Introduction au Développement Mobile
Lilia Sfaxi9.1K vues
Chp2 - Conception UX-UI des Applications Mobiles par Lilia Sfaxi
Chp2 - Conception UX-UI des Applications MobilesChp2 - Conception UX-UI des Applications Mobiles
Chp2 - Conception UX-UI des Applications Mobiles
Lilia Sfaxi5.7K vues
Mobile-Chp4 côté serveur par Lilia Sfaxi
Mobile-Chp4 côté serveurMobile-Chp4 côté serveur
Mobile-Chp4 côté serveur
Lilia Sfaxi3.4K vues
Chp6 - Développement iOS par Lilia Sfaxi
Chp6 - Développement iOSChp6 - Développement iOS
Chp6 - Développement iOS
Lilia Sfaxi4.6K vues
Android-Tp5 : web services par Lilia Sfaxi
Android-Tp5 : web servicesAndroid-Tp5 : web services
Android-Tp5 : web services
Lilia Sfaxi5.6K vues
P2 éléments graphiques android par Lilia Sfaxi
P2 éléments graphiques androidP2 éléments graphiques android
P2 éléments graphiques android
Lilia Sfaxi7K vues
P6 composants avancés par Lilia Sfaxi
P6 composants avancésP6 composants avancés
P6 composants avancés
Lilia Sfaxi6.9K vues
P1 introduction à android par Lilia Sfaxi
P1 introduction à androidP1 introduction à android
P1 introduction à android
Lilia Sfaxi6.6K vues
Android-Tp4: stockage par Lilia Sfaxi
Android-Tp4: stockageAndroid-Tp4: stockage
Android-Tp4: stockage
Lilia Sfaxi5.1K vues
Android-Tp1: éléments graphiques de base et intents par Lilia Sfaxi
Android-Tp1: éléments graphiques de base et intentsAndroid-Tp1: éléments graphiques de base et intents
Android-Tp1: éléments graphiques de base et intents
Lilia Sfaxi6.8K vues
Android-Tp3: fragments et menus par Lilia Sfaxi
Android-Tp3: fragments et menusAndroid-Tp3: fragments et menus
Android-Tp3: fragments et menus
Lilia Sfaxi6.4K vues
P3 listes et elements graphiques avancés par Lilia Sfaxi
P3 listes et elements graphiques avancésP3 listes et elements graphiques avancés
P3 listes et elements graphiques avancés
Lilia Sfaxi6.6K vues
Android-Tp2: liste et adaptateurs par Lilia Sfaxi
Android-Tp2: liste et adaptateursAndroid-Tp2: liste et adaptateurs
Android-Tp2: liste et adaptateurs
Lilia Sfaxi7.3K vues
eServices-Chp3: Composition de Services par Lilia Sfaxi
eServices-Chp3: Composition de ServiceseServices-Chp3: Composition de Services
eServices-Chp3: Composition de Services
Lilia Sfaxi5.1K vues
eServices-Chp6: WOA par Lilia Sfaxi
eServices-Chp6: WOAeServices-Chp6: WOA
eServices-Chp6: WOA
Lilia Sfaxi4.8K vues
BigData_Chp5: Putting it all together par Lilia Sfaxi
BigData_Chp5: Putting it all togetherBigData_Chp5: Putting it all together
BigData_Chp5: Putting it all together
Lilia Sfaxi26.1K vues
BigData_Chp2: Hadoop & Map-Reduce par Lilia Sfaxi
BigData_Chp2: Hadoop & Map-ReduceBigData_Chp2: Hadoop & Map-Reduce
BigData_Chp2: Hadoop & Map-Reduce
Lilia Sfaxi34.6K vues
BigData_Chp3: Data Processing par Lilia Sfaxi
BigData_Chp3: Data ProcessingBigData_Chp3: Data Processing
BigData_Chp3: Data Processing
Lilia Sfaxi41.6K vues

Similaire à Chp3 - Architecture Logicielle des Applications Mobiles

eServices-Chp5: Microservices et API Management par
eServices-Chp5: Microservices et API ManagementeServices-Chp5: Microservices et API Management
eServices-Chp5: Microservices et API ManagementLilia Sfaxi
6.4K vues50 diapositives
Introducthion mvvm avec wpf par
Introducthion mvvm avec wpfIntroducthion mvvm avec wpf
Introducthion mvvm avec wpfAtmane EL BOUACHRI
690 vues41 diapositives
Modele mvc par
Modele mvcModele mvc
Modele mvcSoulef riahi
1.7K vues16 diapositives
WPF MVVM par
WPF MVVMWPF MVVM
WPF MVVMSlimen Belhaj Ali
4.1K vues33 diapositives
les style d'architecture par
les style d'architecture les style d'architecture
les style d'architecture Mouna Maazoun
1K vues48 diapositives
cycle de vie par
cycle de vie cycle de vie
cycle de vie Shili Mohamed
5.3K vues17 diapositives

Similaire à Chp3 - Architecture Logicielle des Applications Mobiles(20)

eServices-Chp5: Microservices et API Management par Lilia Sfaxi
eServices-Chp5: Microservices et API ManagementeServices-Chp5: Microservices et API Management
eServices-Chp5: Microservices et API Management
Lilia Sfaxi6.4K vues
Design applicatif avec symfony - Zoom sur la clean architecture - Symfony Live par RomainKuzniak
Design applicatif avec symfony - Zoom sur la clean architecture - Symfony LiveDesign applicatif avec symfony - Zoom sur la clean architecture - Symfony Live
Design applicatif avec symfony - Zoom sur la clean architecture - Symfony Live
RomainKuzniak3.6K vues
Agile Tour Nantes 2011 - Jean philippe gouigoux - architecture et agilité, ré... par Association Agile Nantes
Agile Tour Nantes 2011 - Jean philippe gouigoux - architecture et agilité, ré...Agile Tour Nantes 2011 - Jean philippe gouigoux - architecture et agilité, ré...
Agile Tour Nantes 2011 - Jean philippe gouigoux - architecture et agilité, ré...
Objecteering mdday2010 par MD DAY
Objecteering mdday2010Objecteering mdday2010
Objecteering mdday2010
MD DAY469 vues
Design applicatif avec symfony2 par RomainKuzniak
Design applicatif avec symfony2Design applicatif avec symfony2
Design applicatif avec symfony2
RomainKuzniak9.5K vues
Créer et intégrer son thème PrestaShop par PrestaShop
Créer et intégrer son thème PrestaShopCréer et intégrer son thème PrestaShop
Créer et intégrer son thème PrestaShop
PrestaShop6.3K vues

Plus de Lilia Sfaxi

chp1-Intro à l'urbanisation des SI.pdf par
chp1-Intro à l'urbanisation des SI.pdfchp1-Intro à l'urbanisation des SI.pdf
chp1-Intro à l'urbanisation des SI.pdfLilia Sfaxi
426 vues58 diapositives
Plan d'études_INSAT_2022_2023.pdf par
Plan d'études_INSAT_2022_2023.pdfPlan d'études_INSAT_2022_2023.pdf
Plan d'études_INSAT_2022_2023.pdfLilia Sfaxi
1.8K vues28 diapositives
Lab3-DB_Neo4j par
Lab3-DB_Neo4jLab3-DB_Neo4j
Lab3-DB_Neo4jLilia Sfaxi
1.8K vues8 diapositives
Lab2-DB-Mongodb par
Lab2-DB-MongodbLab2-DB-Mongodb
Lab2-DB-MongodbLilia Sfaxi
987 vues4 diapositives
Lab1-DB-Cassandra par
Lab1-DB-CassandraLab1-DB-Cassandra
Lab1-DB-CassandraLilia Sfaxi
956 vues4 diapositives
TP2-UML-Correction par
TP2-UML-CorrectionTP2-UML-Correction
TP2-UML-CorrectionLilia Sfaxi
10.3K vues6 diapositives

Plus de Lilia Sfaxi(20)

chp1-Intro à l'urbanisation des SI.pdf par Lilia Sfaxi
chp1-Intro à l'urbanisation des SI.pdfchp1-Intro à l'urbanisation des SI.pdf
chp1-Intro à l'urbanisation des SI.pdf
Lilia Sfaxi426 vues
Plan d'études_INSAT_2022_2023.pdf par Lilia Sfaxi
Plan d'études_INSAT_2022_2023.pdfPlan d'études_INSAT_2022_2023.pdf
Plan d'études_INSAT_2022_2023.pdf
Lilia Sfaxi1.8K vues
TP2-UML-Correction par Lilia Sfaxi
TP2-UML-CorrectionTP2-UML-Correction
TP2-UML-Correction
Lilia Sfaxi10.3K vues
TP1-UML-Correction par Lilia Sfaxi
TP1-UML-CorrectionTP1-UML-Correction
TP1-UML-Correction
Lilia Sfaxi1.7K vues
TD4-UML-Correction par Lilia Sfaxi
TD4-UML-CorrectionTD4-UML-Correction
TD4-UML-Correction
Lilia Sfaxi1.9K vues
TD3-UML-Correction par Lilia Sfaxi
TD3-UML-CorrectionTD3-UML-Correction
TD3-UML-Correction
Lilia Sfaxi1.2K vues
TD2 - UML - Correction par Lilia Sfaxi
TD2 - UML - CorrectionTD2 - UML - Correction
TD2 - UML - Correction
Lilia Sfaxi21.9K vues
TD1-UML-correction par Lilia Sfaxi
TD1-UML-correctionTD1-UML-correction
TD1-UML-correction
Lilia Sfaxi1.6K vues
Android - Tp1 - installation et démarrage par Lilia Sfaxi
Android - Tp1 -   installation et démarrageAndroid - Tp1 -   installation et démarrage
Android - Tp1 - installation et démarrage
Lilia Sfaxi185 vues
Android - Tp2 - Elements graphiques par Lilia Sfaxi
Android - Tp2 - Elements graphiques Android - Tp2 - Elements graphiques
Android - Tp2 - Elements graphiques
Lilia Sfaxi55 vues
Android - Tp3 - intents par Lilia Sfaxi
Android - Tp3 -  intentsAndroid - Tp3 -  intents
Android - Tp3 - intents
Lilia Sfaxi152 vues
Android - TPBonus - web services par Lilia Sfaxi
Android - TPBonus - web servicesAndroid - TPBonus - web services
Android - TPBonus - web services
Lilia Sfaxi88 vues

Chp3 - Architecture Logicielle des Applications Mobiles

  • 1. Chp3 : Architecture des Applications Mobiles MVC, MVVM, MVP… Conception et Développement d’Applications Mobiles GL4 (Option Mobile) - 2015 Dr. Lilia SFAXI www.liliasfaxi.wix.com/liliasfaxi Slide 1
  • 2. Structure •  Usuellement: Application multi-couches •  Interface Utilisateur •  Couche métier •  Couche données •  Choix possible entre: •  Client léger web-based •  Couches métier et client probablement localisées sur le serveur •  Client lourd et riche •  Couches métier et client probablement sur l’appareil Dr. Lilia SFAXI www.liliasfaxi.wix.com/liliasfaxi Slide 2 Chp3 : Architecture des Applications Mobiles
  • 3. PLAN 1.  Principes de Conception Mobile 2.  Les Patrons de conception MV* Dr. Lilia SFAXI www.liliasfaxi.wix.com/liliasfaxi Slide 3 Chp3 : Architecture des Applications Mobiles
  • 4. PRINCIPES DE CONCEPTION MOBILE Chp3 : Architecture des Applications Mobiles Dr. Lilia SFAXI www.liliasfaxi.wix.com/liliasfaxi Slide 4 1.  Principes de Conception Mobile 2.  Les Patrons de conception MV*
  • 5. Principes de Conception Clefs •  Principes clefs qui vous aideront à concevoir une application mobile qui correspond aux « meilleures pratiques », minimise les coûts et besoins de maintenance, et favorise l’utilisabilité et extensibilité •  Séparation des préoccupations •  Principe de responsabilité unique •  « Don’t Repeat Yourself » (DRY) •  Ne pas commencer par une conception évoluée •  Privilégier la composition sur l’héritage Dr. Lilia SFAXI www.liliasfaxi.wix.com/liliasfaxi Slide 5 Conception d’Applications Mobiles
  • 6. P1: Séparation des Préoccupations « Separation of Concerns » •  Diviser votre application en parties distinctes dont les fonctionnalités se chevauchent le moins possible •  Avantages •  Optimisation d’un module ou fonctionnalité indépendamment des autres •  Si un module est défaillant, il n’impactera pas les autres •  Rend l’application plus facile à comprendre et concevoir •  Facilite la gestion des systèmes complexes indépendants Dr. Lilia SFAXI www.liliasfaxi.wix.com/liliasfaxi Slide 6 Conception d’Applications Mobiles
  • 7. P2: Principe de Responsabilité Unique « Single Responsibility Principle » •  Chaque composant ou module doit être responsable uniquement d’une fonctionnalité ou caractéristique •  Avantages •  Rend les composants plus cohésifs (unis, rassemblés) •  Rend l’optimisation des composants plus facile si une caractéristique ou fonctionnalité a changé Dr. Lilia SFAXI www.liliasfaxi.wix.com/liliasfaxi Slide 7 Conception d’Applications Mobiles
  • 8. P3: Pas de Répétition « Don’t Repeat Yourself (DRY) » •  Il ne faut pas dupliquer une fonctionnalité dans une application sur plusieurs modules •  Avantages •  Faciliter l’implémentation des changements •  Augmenter la clarté •  Renforcer la consistance du code Dr. Lilia SFAXI www.liliasfaxi.wix.com/liliasfaxi Slide 8 Conception d’Applications Mobiles
  • 9. P4: Ne pas Commencer par une Conception Évoluée «Avoid doing a big design upfront » •  Si vos besoins ne sont pas clairs, ou s’il y’a des risques d’évolution de la conception dans le temps, éviter de fournir trop d’effort pour la conception au début •  Faites en sorte que votre conception progresse avec votre application Dr. Lilia SFAXI www.liliasfaxi.wix.com/liliasfaxi Slide 9 Conception d’Applications Mobiles
  • 10. P5: Privilégier la Composition à l’Héritage «Composition over Inheritance » •  Utiliser si possible la composition à la place de l’héritage quand vous voudrez réutiliser une fonctionnalité •  Avantages •  L’héritage augmente la dépendance entre les classes parentes et filles •  Limitation de la réutilisation des classes filles •  Réduire la hiérarchie de l’héritage, qui peut s’avérer pénible Dr. Lilia SFAXI www.liliasfaxi.wix.com/liliasfaxi Slide 10 Conception d’Applications Mobiles
  • 11. Mais aussi… •  Grouper les types de composants différents dans des couches logiques •  Faire en sorte que les design patterns d’une couche soient consistants •  Ne pas utiliser de design patterns incompatibles dans une même couche •  Ne pas mixer plusieurs types de composants dans la même couche logique •  Déterminer le type de couches que vous voulez renforcer •  Utiliser l’abstraction pour implémenter le couplage faible entre les couches •  Éviter de surcharger les fonctionnalités d’un composant •  Comprendre comment est-ce que les composants communiquent les uns avec les autres •  Garder des formats de données consistantes dans une couche •  Séparer le plus possible le code non fonctionnel (sécurité, logging…) du code métier •  Être consistant dans les conventions de nommage •  Établir des standards pour la gestion des exception Dr. Lilia SFAXI www.liliasfaxi.wix.com/liliasfaxi Slide 11 Conception d’Applications Mobiles
  • 12. LES PATRONS DE CONCEPTION MV* Chp3 : Architecture des Applications Mobiles Dr. Lilia SFAXI www.liliasfaxi.wix.com/liliasfaxi Slide 12 1.  Principes de Conception Mobile 2.  Les Patrons de conception MV*
  • 13. Avantages « Les patrons de conception sont des solutions réutilisables pour des problèmes récurrents » •  Réutilisabilité •  Le modèle n’est pas couplé avec sa représentation, et peut donc être facilement réutilisé dans d’autres projets •  Testabilité •  Tester les couche indépendamment les unes des autres les rend plus faciles à gérer et à corriger •  Maintenabilité •  Il est plus facile de modifier une partie de l’application sans impacter les autres modules •  Compréhensibilité •  Le code est plus compréhensible et plus lisible Dr. Lilia SFAXI www.liliasfaxi.wix.com/liliasfaxi Slide 13 Les Patrons de Conception MV*
  • 14. MVC : Model – View – Controller Dr. Lilia SFAXI www.liliasfaxi.wix.com/liliasfaxi Slide 14 Les Patrons de Conception MV* Model ControllerView 1* Classes du Modèle Requête & RelaiComposants UI
  • 15. MVC : Couches •  Model •  Données de l’application •  Méthodes manipulant ces données •  Stockage et extraction de la BD •  View •  Représentation visuelle du modèle •  Gère les interactions utilisateur •  Contrôleur •  Accès aux données à partir du modèle •  Affichage des données dans les vues •  Intermédiaire entre plusieurs vues et modèles •  Observe les changements du modèle et les transmet à la vue Dr. Lilia SFAXI www.liliasfaxi.wix.com/liliasfaxi Slide 15 Les Patrons de Conception MV* M CV 1*
  • 16. MVC : Flux •  Les entrées utilisateur sont interceptées par le contrôleur •  Un contrôleur peut faire appel à plusieurs vues (erreur, succès…) •  Une vue n’a pas de visibilité sur son contrôleur •  Le contrôleur passe le modèle à la vue •  Le modèle a en général peu (ou pas) de méthodes (comportement) Dr. Lilia SFAXI www.liliasfaxi.wix.com/liliasfaxi Slide 16 Les Patrons de Conception MV* M CV 1*
  • 17. MVC : Références •  La vue fait référence au modèle, mais pas le contraire •  La vue « observe » les changements du modèle, et s’y adapte •  Le contrôleur fait référence au modèle, le remplit et le passe à la vue •  La vue n’a pas de visibilité sur le contrôleur, mais fait référence et s’attend à un modèle particulier Dr. Lilia SFAXI www.liliasfaxi.wix.com/liliasfaxi Slide 17 Les Patrons de Conception MV* M CV 1*
  • 18. MVVM : Model – View – ViewModel Dr. Lilia SFAXI www.liliasfaxi.wix.com/liliasfaxi Slide 18 Les Patrons de Conception MV* Model ViewModelView 1*
  • 19. MVVM : Flux •  L’ entrée utilisateur commence par la vue et peut provoquer l’exécution d’un comportement ViewModel •  La vue et le modèle ne communiquent jamais •  ViewModel est un modèle fortement typé de la vue, qui est une réflexion exacte ou une abstraction de cette vue •  ViewModel et Vue sont toujours synchronisés •  Le modèle n’a aucune idée que le VM ou la vue existent Dr. Lilia SFAXI www.liliasfaxi.wix.com/liliasfaxi Slide 19 Les Patrons de Conception MV* M VMV 1*
  • 20. MVVM : Références •  Un VM n’a pas besoin de référencer la vue •  La vue est reliée à des propriétés du VM •  La vue n’a aucune idée sur l’existence du modèle •  Le VM et le modèle n’ont pas de référence ou visibilité sur la vue •  Le modèle n’a aucune idée de l’existence de la vue et du VM Dr. Lilia SFAXI www.liliasfaxi.wix.com/liliasfaxi Slide 20 Les Patrons de Conception MV* M VMV 1*
  • 21. MVP : Model – View – Presenter Dr. Lilia SFAXI www.liliasfaxi.wix.com/liliasfaxi Slide 21 Les Patrons de Conception MV* Model PresenterView 11
  • 22. MVP : Flux •  L’ entrée utilisateur commence par la vue, pas par le Presenter •  La vue invoque les commandes du Presenter, et le Presenter modifie la vue •  La vue et le modèle ne communiquent jamais •  Le Presenter est une couche d’abstraction de la vue •  Chaque vue a un Presenter qui lui est associé (1-to-1) Dr. Lilia SFAXI www.liliasfaxi.wix.com/liliasfaxi Slide 22 Les Patrons de Conception MV* M PV 11
  • 23. MVP : Références •  Le Presenter a besoin d’une référence vers la vue •  La vue a également une référence vers son Presenter •  C’est le Presenter qui va charger la vue à partir du modèle, pas le modèle Dr. Lilia SFAXI www.liliasfaxi.wix.com/liliasfaxi Slide 23 Les Patrons de Conception MV* M PV 11
  • 24. Références •  Microsoft Patterns and Practices, « Mobile Application Architecture Guide: Application Architecture Pocket Guide », 2008 •  Amir Jalilifard, « A belly dance in the holy lands of MVC, MVP and MVVM Patterns via Javascript », Code Project, 24 février 2015, url: http://www.codeproject.com/Articles/844789/A-Belly-Dance-in-Holy- Lands-of-MVC-MVP-and-MVVM-Pa •  Ketan Thakkar, « Difference between MVC vs. MVP vs. MVVM », 11 septembre 2014, url: http://blogs.k10world.com/technology/difference-between-mvc-vs- mvp-vs-mvvm/ •  Wiztelsys, « Design Patterns used in Mobile », 17 avril 2014, url = https://wiztelsys.com/blog/design-patterns-used-in-mobiles/ Dr. Lilia SFAXI www.liliasfaxi.wix.com/liliasfaxi Slide 24 Sites Web & Livres