tp_mvc_android


Préambule : MVC

  1. Le Modèle est une calculette qui utilise en interne une pile.
  2. Le Contrôleur  implémente les actions de l'utilisateur et uniquement.
  3. La Vue contient toute l'interface.

 

Une architecture type selon le paradigme MVC

  1. Le Modèle est une calculette.
  2. Le Contrôleur implémente toutes les actions de l'utilisateur.
  3. La vue contient toute l'interface.

En Java

  1. Le Modèle est observable,  Calculette extends java.util.Observable
  2. Le Contrôleur  implements tous les "Listener"
  3. La vue est un observateur, implements java.util.Observer

Les sources  du modèle Calculette sont ici : http://douin.free.fr/tp4Calculette/ ou ici

 

Sur la plate forme Android, à un écran est associé une "activity", assimilable à la vue selon le découpage MVC. Les composants graphiques de l'interface décrits en XML sont accessibles depuis cette activité. C'est au sein de cette activité que les "listeners" sont associés au comportement des composants graphiques. L'activité devient le contrôleur des actions de l'utilisateur.

Sous Android

  1. Le Modèle est observable, extends java.util.Observable,
  2. L'activité est le Contrôleur  implements les "Listener"
  3. L'activité est la vue du modèle, implements java.util.Observer

 

Déploiement sur plate forme Android

 

[Image]Développez l'activité Calculette pour Android

Une idée d'interface pourrait être :

soit l'usage par exemple de ces composants graphiques,

 ou tout autre interface ...

           Par exemple le bouton  (Button) pourrait être remplacé (ImageButton) (www.iconfinder.com  pour les images)

 

Le code source de la méthode onCreate, redéfinie au sein de l'activité pourrait être :

Cette méthode onCreate est appelée au démarrage de l'activité, comme le montre ce diagramme d'états d'une activité sous Android

Persistance à l'aide des Bundle

    La rotation de l'écran entraîne une nouvelle création de l'activité, la méthode onSaveInstanceState est appelée avant sa destruction, onRestoreState lorsque cette activité est de nouveau créée, au premier plan. Une solution serait d'utiliser le Bundle en paramètre,
    http://developer.android.com/reference/android/os/Bundle.html
    http://stackoverflow.com/questions/151777/how-do-i-save-an-android-applications-state

 

    Prenez en compte cette rotation de l'écran dans votre activité

    Note : la commande de rotation de l'écran de l'émulateur s'effectue avec Ctrl + F11,
          https://developer.android.com/studio/run/emulator

 

Envoi de SMS

A chaque mauvaise entrée de nombre, envoyez un SMS au deuxième émulateur installé sur le même poste, le contenu contient le message de l'exception ...

L'envoi est effectué selon les deux façons, présentées sur les transparents 56,57 et 58 du support de cours

  1. Appel au service prédéfini
  2. Envoi du SMS par votre application

 

       

Une exception est levée   ->     un sms est envoyé, second émulateur ici numéro de tél. 5556, "exception over the air"

https://developer.android.com/studio/run/emulator