Chapitre 03 - MVC Flashcards
Que contient le fichier AndroidManifest.xml?
La description des composantes et les paramètres de l’application
Que contient le fichier build.gradle?
Les propriétés de l’application et ses dépendances.
Qu’est-ce que Proguard?
Un outil qui permet d’optimiser, protéger et réduire en taille une application.
Comment est-ce que Proguard fonctionne?
Il retire les classes non utilisées, il optimise le bytecode, retire les instructions inutiles, il renomme les classes pour des noms cours sans valeur et retire toute trace de log lors d’une compilation en release.
Qu’est-ce que Gradle?
Programme qui automise le processus de compilation et de gestion de dépendance.
Qu’est-ce que MVC?
Model View Controller
Model: Modèle de donnée
View: Vue visible à l’utilisateur
Controller: Logique de contrôle, colle entre données et UI
Quel est le flow de MVC?
Modèle mets à jouse la vue informe des événements le contrôleur qui mets à jour le modèle
Qu’est-ce que MVP?
Model View Presenter
Comme MVC, mais on retire le lien entre la vue et le modèle
Qu’est-ce que MVVM?
Model View ViewModel
Comme MVC
ViewModel: Modèle de la vue. Agit à titre intermédiaire entre le modèle et la vue.
Qu’est-ce que PAC?
Prsentation Abstraction Control
Presentation: Formate et présente information
Abstraction: Récupère et traire information
Control: S’occupe de la communication entre Abstraction et Presentation et gère le flux d’information
Qu’est-ce que HMVC?
Hierarchical model-view-controller
Variation de MVC qui ressemble à PAC
Quelle est la différence entre HMVC et MVC?
HMVC utilise les modules de MVC pour une hiérarchie. Le contrôleur sélectionne le modèle et ensuite la vue.
Différence entre MVC et MVP?
MVP: Vue couplée de manière indirecte au modèle. Un presenter avec une seule vue
MVC: Contrôleurs basés sur actions et peuvent être partagées à travers les vues. Peut être responsable de déterminer quelle vue sera présentée.
Quelle est le style architecturale de Android?
Officiellement pas annoncé, probablement un mix de MVC et MVP.
Quelle est le style architecturale de iOS?
MVC
Model: NSObject
Vue: UIView
Contrôleur: UIViewController
Qu’est-ce que le cycle de vie d’une activité sur Android?
onCreate(), onStart(), onResume(), onPause(), onStop(), onRestart(), onDestroy()
Quelles sont les trois boucles de cycle de vie Android?
Boucle de vie, boucle de vie disponible, boucle de vie visible premier plan
Qu’est-ce que la boucle de vie?
Contient les boucles de vie visible et non visible, l’activité est chargée en mémoire à l’intérieur de cette boucle.
Qu’est-ce que la boucle de vie disponible?
L’activité est disponible, mais aucune garantie qu’elle est en premier plan.
Qu’est-ce que la boucle de vie visible de premier plan?
L’activité est au premier plan.
Qu’est-ce que onCreate() fait?
- Appelé une seule fois lors de la création de l’activité.
- Établir liens entre interface et contrôleur (activité)
- Recois un bundle qui contient de l’information utile
Qu’est-ce que onStart() fait?
L’activité devient visible
Qu’est-ce que onResume() fait?
L’activité est au premier plan et devient active
Qu’est-ce que onPause() fait?
L’activité n’est plus au premier plan et n’est plus active
Qu’est-ce que onStop() fait?
L’activité n’est plus visible
Qu’est-ce que onDestroy() fait?
L’activité sera bientôt complètement désallouée
De quelles facons sont gérées les activités?
Pile de type LIFO (Last in first out)
Qu’est-ce qu’un intent?
Description d’une opération à effectuer
Comment est-ce qu’on démarre une activité?
Intent monIntention = new Intent(getApplicationContext(), MonActivite.class); startActivity(monIntention)
Comment mettre des options dans un intent?
monIntention.putExtra(“Nom du truc”, “truc lol”);
Qu’est-ce que l’objet context dans une application Android?
Objet qui contient le contexte d’exécution d’une application/activité.
Qu’est-ce que la classe R.* dans Android?
Classe qui regroupe toutes les ressources et qui est généré automatiquement par compilateur.
Comment est-ce qu’on transfère des classes complexes dans un intent?
Via Parcelable ou Serializable
Qu’est-ce qu’un delegate sur iOS?
Permet de partager de l’information entre des contrôleurs et de respecter le MVC
Comment est-ce qu’on implémente un delete en iOS?
@protocol
Qu’est-ce qu’un service sur Android?
Composante d’une application qui nécessite une longue période de temps et qui ne doit pas nécessairement interagir avec l’utilisateur ou qui ne fourtnit pas nécessairement des fonctionnalités à d’autres applications.
Quels sont les deux états possibles d’un service sur Android?
Démarré (après avoir appelé startService())
Lié (avec avoir appelé bindService())
Comment est-ce que tu peux arrêter un service sur Android?
stopService() et stopSelf()
Quels sont les deux cycles de vie nécessaires pour démarrer un service sur Android?
Commencer le service: startService(), onCreate(), onStartCommand() -> Service running
Se lier au service: bindService(), onCreate(), onBind() -> Clients are bound to service
Comment est-ce que tu termines complètement l’exécution d’un service?
Service: onDestroy()
Bind: onUnbind() -> onDestory()
Qu’est-ce qu’un BroadcastReceiver?
Une classe qui permet de recevoir des broadcasts
Qu’est-ce qu’un Broadcast?
Méthode de transmission d’informations interapplication et/ou intra-application.
Qu’est-ce qu’un LocalBroadcastManager?
Envoie un message qui reste local au processus qui l’envoie.
Quels sont les avantages d’un LocalBroadcastManager?
- Les Broadcast restent à l’intérieur de l’application.
- Impossible pour d’autres applications de nous envoyer un Broadcast
- Plus rapide/efficace qu’un broadcast normal
Coment envoyer un Broadcast?
Context.sendBroadcast
Comment arrêter un Broadcast pendant l’envoie?
Possible avec .sendOrderedBroadcast