Chapitre 1
APPLICATION MOBILE
 
 
Précédent Suivant
 

Application mobile
Android Studio
* Environnement de développement intégré
* Editeur de texte
* Editeur d'interface graphique (WYSIWYG et XML)
* Compilateur / débugueur
* Emulateur
* Langage Java
* Programmation objet
* Bibliothèque de composants
* Gestionnaire de projet
* Code source Java
* Ressources
* Maquettes des activités = layouts (format XML)
* Images = drawables
* Constantes = values
Premier exercice
Création d'une activité
* Exercice: créer le projet "Welcome"
* Choisir la distribution d'Android minimale supportée
* Récente ==> moins de terminaux compatibles
* Ancienne ==> limitation des fonctionnalités
* Exemple: Android 4.4 (KitKat)
* Choisir le modèle de l'activité initiale
* Activité = page/écran de votre application
* Exemple: Empty Activity
* Activité = classe + layout(s)
* Conserver la convention de nommage
* Classe = AccueilActivity
* Layout = activity_accueil
Test de l'application
* Possibilité de lancer l'application sur un téléphone
* Ordinateur: connexion en USB
* Nécessite l'installation de drivers
* Téléphone: activer le débogage USB
* Nécessite l'activation des options de développement
* Sinon, lancer l'émulateur [option Run]
* Choisir un modèle de téléphone
* Modèle simple ==> empreinte mémoire plus faible sur l'ordinateur
* Choisir une distribution d'Android
* Attendre le lancement de l'émulateur
* Une fois démarré, il peut rester ouvert
* Après une modification, le relancer [option Run]
Maquette d'une activité (1/2)
* Maquette = description de l'interface
* Composée d'éléments graphiques ==> les "vues"
* Arborescence comme en HTML (une vue peut contenir des vues)
* Un type de vues ==> une classe
* Classe mère "View" = composants visibles (bouton, label...)
* Exemple: classe "Button"
* Classe mère "ViewGroup" = conteneurs invisibles
* Exemple: classe "LinearLayout"
* Maquette = fichier XML
* Exemple: ouvrir activity_accueil.xml
* Deux modes d'édition possibles
* Mode visuel (WYSIWYG) [onglet Design]
* Mode texte (XML) [onglet Text]
Maquette d'une activité (2/2)
* Mode Visuel
* Manipulation préalable
* Remplacer le thème "AppTheme" par "DeviceDefault"
* Opérations possibles
* Sélectionner une vue dans l'arborescence [fenêtre Component Tree]
* Modifier les caractéristiques d'une vue [fenêtre Attributes]
* Ajouter une nouvelle vue [fenêtre Palette]
* A tout moment, possibilité de basculer en mode texte
* Système de balises similaire à HTML
* Type de la vue = nom de la balise
* Caractéristiques de la vue = attributs de la balise
Conteneur principal
* 1ère étape: adapter le conteneur principal de l'activité
* Choisir une manière de disposer les vues
* Disposition = layout
* Disposition horizontale, verticale, en grille, libre...
* Exemple: sélectionner la disposition "LinearLayout"
* Balise "LinearLayout" dans XML
* Placement horizontal ou vertical des vues
* En mode texte, remplacer la balise principale par "LinearLayout"
* Régler les paramètres de la disposition
* Orientation ==> attribut "orientation"
* Exemple: "vertical"
Ajout d'une vue (1/2)
* Exemple: ajouter un champ de saisie [Text / Plain Text]
* Classe "EditText"
* Possibilité de choisir les dimensions
* Attributs "layout_width" et "layout_height"
* "match_parent" ==> prend la taille du parent
* "wrap_content" ==> prend la taille du contenu
* Possibilité d'alignement
* Attribut "layout_gravity"
* Possibilités dépendantes du conteneur: "left", "right", "center"...
* Modifier l'identifiant du composant pour y accéder plus tard
* Attribut "id" (exemple: "nom_utilisateur")
* Indiquer une consigne
* Attribut "hint" (exemple: "Votre nom ?")
Ajout d'une vue (2/2)
* Exemple: ajouter un bouton [Buttons / Button]
* Modifier son intitulé
* Attribut "text" (exemple: "Valider")
* Mettre un espace entre le champ de saisie et le bouton
* Ajouter un conteneur "FrameLayout"
* Fixer la hauteur de ce composant
* Utiliser l'unité "dp" indépendante de l'écran
* Exemple: layout_height = "10dp"
* Ou utiliser tout l'espace vide
* layout_height = "0dp"
* layout_weight = "1"
Détection d'un événement
* Détecter un clic sur un bouton
* Mécanisme d'écouteur simplifié ==> attribut "onClick"
* Indiquer dans l'attribut le nom de l'écouteur
* Ecouteur = méthode de l'activité
* Exemple: méthode "valider" de l'activité "AccueilActivity"
* Ecrire l'écouteur dans la classe de l'activité
* Ouvrir le fichier "java/welcome/AccueilActivity"
* Créer la méthode "valider"
public void valider(View vue) {
System.out.println("clic !");
}
* System.out.println ==> message dans la console [fenêtre Run]
* L'argument "vue" est la vue ayant déclenché l'écouteur
Ajout d'une activité
* Création d'une nouvelle activité [New / Activity / Empty Activity]
* Exemple: BienvenueActivity
* Choisir le conteneur principal de l'activité
* Exemple: LinearLayout (vertical)
* Exemple: message de bienvenue avec le nom saisi
* Ajouter un 1er texte "Bienvenue"
* Classe "TextView"
* textSize = "40sp"
* textAlignment = "center"
* Ajouter un 2nd texte (pour afficher la saisie de la page précédente)
* Paramétrage idem premier texte ("XXX" pour l'instant)
* Modifier l'identifiant: "message_bienvenue"
Transition entre activités (1/2)
* Créer un message (intent) au moment du clic sur le bouton
* Remplacer le code de la méthode "valider"
* Création d'un message à destination de l'activité "BienvenueActivity"
* Intent message = new Intent(this,BienvenueActivity.class);
* Récupérer la valeur du champ de saisie
* A partir de son identifiant: "nom_utilisateur"
* EditText saisie = findViewById(R.id.nom_utilisateur);
* String utilisateur = saisie.getText().toString();
* Placer cette valeur dans le message
* Sous la forme d'une variable: "utilisateur"
* message.putExtra("utilisateur",utilisateur);
* Démarrer la nouvelle activité en envoyant le message
* startActivity(message);
Transition entre activités (2/2)
* Récupérer le message dans la nouvelle activité
* Se placer dans la méthode "onCreate"
* Exécutée automatiquement au lancement de l'activité
* Intent message = getIntent();
* Récupérer le nom de l'utilisateur contenu dans le message
* A partir du nom de la variable: "utilisateur"
* String utilisateur = message.getStringExtra("utilisateur");
* Placer le nom dans la 2nde zone de texte
* Dont l'identifiant est: "message_bienvenue"
* TextView zoneTexte = findViewById(R.id.message_bienvenue);
* zoneTexte.setText(utilisateur);