Cours android

Support de formation pour apprendre à créer des applications mobile Android


Télécharger Support de formation pour apprendre à créer des applications mobile Android

★★★★★★★★★★3.5 étoiles sur 5 basé sur 1 votes.
Votez ce document:

Télécharger aussi :


Support de formation pour apprendre à créer des applications mobile Android

...

Principe 

Les difficultés

Installation 

Installation

Une première application

 Une première application

Notion d’activité

Définition

Une activité est un composant d’une application qui fournit un écran avec lequel l’utilisateur peut interagir.

Une application contient (généralement) plusieurs activités.

Activité = contexte + interface graphique (unique).

Organisation

Que se passe t-il si on reçoit un message alors que l’utilisateur utilise le navigateur ?

Il existe une notion de priorité.

Une activité peut être dans différents états.

Les activités sont empilées :

Une seule activité est visible à la fois.

Une seule activité est active à la fois. 

Explorer

Le fichier de configuration : 

Exercice

Exercice

Modifier (proprement) votre application HelloWorld pour afficher le message "Voici ma première application".


Introduction 

Vues et widgets

Fichier XML basique :

xmlns :android="http ; xmlns :tools="http ;

Ces deux lignes permettent d’utiliser les attributs spécifiques à Android.

Fichier XML basique :

TextView

Un textview permet d’afficher du texte. 

Le champ "@+id/ " permet de spécifier à Android un identifiant à la vue.

EditText

Un edittext permet à l’utilisateur d’écrire du texte.

Exemple

android:hint="@string/letexte" />

android :autoText : correction automatique.

android :capitalize : mets automatiquement une majuscule à la première lettre.

android :digit : n’accepte que des chiffres.

android :singleLine : permet de passer au champ suivant avec la touche entrée.

android :autoCompleteTextView : utilise l’autocompletion Android.

Button

La classe button permet de créer un bouton (un textview cliquable). Les attributs sont identiques à ceux de TextView.

Exemple

Possibilité de rajouter une image avec android :background.



Bouton à deux états (ON/OFF) : classe ToggleButton.

Possibilité de définir une image par état avec la classe StateListDrawable.

Switchs

Variante de case à cocher sous la forme d’un switch à deux états (interrupteur).

Exemple

getTextOn() : renvoie le texte associé à l’état 1 du switch. getTextOff() : renvoie le texte associé à l’état 2 du switch. setChecked() : met le switch à l’état 1.

CheckBox

La classe checkbox permet de créer une boite à cocher (composant à deux états). 

android :checked permet de spécifier que la case est cochée par défaut.

isChecked() permet d’accéder à l’état. setChecked() permet de modifier l’état. toggle() permet d’inverser l’état.

RadioButton

Similaire à checkbox mais une seule case cochée à la fois. Il est recommandé de les regrouper dans un RadioGroup.

Spinner

Widgets 

Positionner et organiser les vues

Les layouts

LinearLayout : alignement linéaire (gauche-droite ou haut-bas)

RelativeLayout : positionnement les uns en fonction des autres. Le premier sert de référence.

FrameLayout : Positionnement en haut à gauche avec priorité aux enfants.

GridLayout/TableLayout : Positionnement comme un table.

ScrollView : Fournit un défilement à son contenu.

Gestion des événements

Principe

Gestion des événements à l’aide de listener.

Différents types d’interactions (clic court, clic long, effleurement).

2 possibilités :

Implémentation d’un objet JAVA (OnClickListener, OnLongListener, ) lié ensuite au widget.

En implémentant directement l’objet xml.

Exemple 1 

Exemple 2 

Application simple

Le idLayout correspond à la mise en page de l’élément. Vous pouvez créer la votre, mais un certain nombre sont à disposition (par exemple android.R.layout.simple_list_item_1).

Clic : public void onItemClick(AdapterView< ?> parent, View view, int position, long id) { }

Plusieurs choix 

Les listes

Le menu de base

Menu contextuel

TP3

Une application : plusieurs activités

Plusieurs activités

On a vu : l’activité principale (celle ouverte directement par l’utilisateur).

Souvent on a besoin d’activités indépendantes (options, aide, menu ).

Communication entre les différentes activités à l’aide des “intentions”.



Les intentions

Une catégorie : LAUNCHER, DEFAULT ou ALTERNATIVE.

Un type MIME : type de ressource sur laquelle on travaille.

Un composant : l’activité qui doit recevoir l’intention.

Des ‘extras” : un Bundle d’autres informations destiné à l’activité réceptrice.

Lancement de sous-activités (dans une même application).

 Lancement de sous-activités (dans une même application).

Lancement

StartActivity(Intent) : lance l’activité (passée à l’intent).

StartActivityForResults(Intent, requestCode) : lance l’activité (passée à l’intent) et attend un résultat. setResult(RESULT_OK) : pour spécifier un resultCode.

onActivityResult(int requestCode, int resultCode, Intent i) : pour traiter le résultat.

… … …

L'onglet "Accueil" affiche un message de bienvenue et assure que l'utilisateur est bien connecté. Prochainement, sur l'accueil sera affiché l'activité de l'utilisateur et sa dépense énergétique. Ce qui n'est pas le cas, car le cadre du projet consiste à collecter les données puis les envoyer sur le serveur. Sachant que l'interprétation de ces données est hors de notre compétence. (échantillon des données - voir annexe)

Pour le moment, l'onglet "Tracking" permet à l'utilisateur de choisir une activité. Il suffit de cliquer sur l'un des boutons "Marche", "courir" ou "Vélo" pour l'activer. L'application va donc collecter les données des capteurs puis l'envoyer au serveur grâce à ses paramètres de connexions (login, mot de passe et code), périodiquement afin de minimiser l'utilisation simultanée des capteurs du réseau WiFi (contrainte d'autonomie de la batterie).

En cas de coupure de connectivité, les données collectées seront sauvegardées sur un fichier en attendant son rétablissement.

L'onglet "Carte" permet de localiser et de marquer la position de ses amis (es) sur la "google map" de l'application. Dans la version suivante, l'onglet "Amie" affichera la liste des amis(es) ainsi que quelques informations comme l'état de la connexion, le login et leurs positions respectives.

L'onglet "Config" permet de sauvegarder les paramètres de connexion, à savoir l'adresse du serveur, le login, le mode passe, le code d'accès. Ainsi, l'utilisateur n'aura plus à saisir les paramètres de connexion à chaque lancement de l'application. La configuration matérielle permet de choisir les fréquences de collecte et d'envoyer des données des capteurs afin d'économiser la batterie du téléphone.

Les problèmes rencontrés

Ce projet est notre première expérience en développement mobile. Plusieurs contraintes nous ont considérablement retardés :

- Limitation de la dimension de l'écran : choisir un minimum de composants essentiels à afficher sur l'écran, pas comme celui des ordinateurs.

- Sous Android, il faut gérer la reprise de l'état de l'application après une perturbation du cycle de vie de celui-ci. C'est-à-dire si au cours de son fonctionnement, nous avons un appel entrant ou un message, par ordre de priorité, le système peut arrêter l'activité en cours pour libérer de la mémoire. Par conséquent, le programmeur doit donc sauvegarder des paramètres avant la destruction de l'instance de l'application, pour pouvoir par la suite les recharger. Car c'est une nouvelle instance de l'application qui sera lancée après la reprise. Grâce aux paramètres sauvegardés, nous avons l'impression que l'application était juste réduite.



17