Développer des applications mobiles avec Android Studio
Cours et exercices
Mondher Hadiji
Sami Hadhri
Ellipses
Chapitre 1 : Les systèmes d'exploitation mobiles1
Introduction
1
1. IOS2
2. Windows Phone3
3. Android4
3.1. Historique et différentes versions
4
3.2. Architecture
7
Conclusion
8
Chapitre 2 : Les solutions de développement mobiles9
Introduction
9
1. Application native9
1.1. Définition
9
1.2. Avantages
10
1.3. Inconvénients
10
1.4. Exemples de solutions natives
10
2. Application web10
2.1. Définition
10
2.2. Avantages
11
2.3. Inconvénients
11
3. Application hybride11
4. Application Multiplateforme (Cross-plateform)11
4.1. Définition
11
4.2. Avantages
12
4.3. Inconvénients
12
4.4. Exemples de solutions Multiplateforme
12
5. Comment choisir ?12
Conclusion
13
Chapitre 3 : Prise en main d'Android studio15
Introduction
15
1. Configuration de l'environnement15
1.1. Installation de JDK
15
1.2. Installation et configuration d'Android Studio
15
1.3. Utilisation de l'A VD Manager
17
2. Première Application Android19
2.1. Création d'un projet
19
2.2. Description de l'interface
23
2.3. Le moteur de production Gradle
24
2.4. Description de l'arborescence
25
2.5. Exécution
27
Conclusion
28
Chapitre 4 : Applications Android : composants & interfaces29
Introduction
29
1. Composants d'une application29
1.1. Activité
29
1.2. Service
31
1.3. Fournisseur de contenu
31
1.4. Intention
32
1.5. Récepteurs de diffusion
32
1.6. Notifications
32
2. Le concept d'interface32
3. Les ressources33
4. Classes de base des interfaces35
4.1. La classe View
35
4.2. La classe ViewGroup
38
5. Hiérarchie des classes pour les interfaces39
Conclusion
40
Chapitre 5 : Les conteneurs41
Introduction
41
1. RelativeLayout41
1.1. Position relative au conteneur
41
1.2. Position relative aux autres éléments
42
2. FrameLayout43
3. LinearLayout43
3.1. Orientation
43
3.2. Poids
44
3.3. Gravité
45
4. TableLayout45
5. GridLayout47
Conclusion
48
Exercices des chapitres 1 à 5
49
Chapitre 6 : Les éléments graphiques53
Introduction
53
1. Les éléments graphiques simples54
1.1. TextView
54
1.2. EditText
56
1.3. Button
57
1.4. CheckBox
57
1.5. RadioGroup/RadioButton
57
1.6. ImageView/lmageButton
58
1.7. ProgressBar/SeekBar
59
1.8. RatingBar
59
1.9. Web View
60
1.10. DatePicker
61
1.11. TimePicker
62
2. Les éléments graphiques avances62
2.1. Présentation
62
2.2. Gestionnaire de contenu
64
Exercices
67
Chapitre 7 : Gestion des événements71
Introduction
71
1. Définition71
2. Caractéristiques d'un événement72
3. Solutions d'implémentation des écouteurs77
3.1. Une classe anonyme implémente l'écouteur (Solution1)
77
3.2. L'activité elle-même implémente l'écouteur (Solution2)
78
3.3. Exemple
78
4. Ecouteurs a usage courant81
4.1. OnClickListener
82
4.2. OnFocusChangeListener
82
4.3. OnKeyListener
82
4.4. OnLongClickListener
83
4.5. OnTouchListener
84
4.6. OnltemClickListener
84
4.7. OnltemLongClickListener
84
4.8. OnltemSelectedListener
84
4.9. addTextChangedListener
85
Conclusion
85
Exercices
87
Chapitre 8 : Communication sous Android91
Introduction
91
1. Les types d'Intentions91
1.1. Les intents explicites
91
1.2. Les intents implicites
92
2. Passage et récupération de paramètres94
2.1. Paramètres simples et tableaux
94
2.2. Paramètres Complexes
98
3. Récupération d'un résultat102
3.1. La méthode startActivityForResult()
102
3.2. La méthode setResult
102
3.3. La méthode onActivityResult()
102
Conclusion
104
Exercices
105
Chapitre 9 : Les interfaces graphiques avancées113
Introduction
113
1. Les Toasts113
1.1. Les Toasts simples
113
1.2. Les Toasts personnalisés
114
2. Les Boites de dialogues115
2.1. Boîte de dialogue simple
115
2.2. Boîte de dialogue avec une liste de propositions définie
116
3. Menus et barre d'actions121
3.1. Barre d'action
121
3.2. Les menus
122
Conclusion
128
Exercices
129
Chapitre 10 : La persistance des données133
Introduction
133
1. Les préférences partagées133
1.1. Ecriture
134
1.2. Lecture
135
2. Les fichiers135
2.1. Lecture
135
2.2. Ecriture
136
3. Base de données locale : SQLite136
3.1. Création des classes équivalentes aux tables de la base
137
3.2. Création d'une sous-classe de SQLiteOpenHelper
138
3.3. SQLiteDatabase
138
3.4. Méthodes CRUD
139
4. Base de données distante142
4.1. Application Web
142
4.2. Application hybride
142
4.3. Application native
143
Conclusion
149
Exercices
151
Chapitre 11 : Services, récepteurs de diffusion, fournisseurs de contenu & notifications157
Introduction
157
1. Service157
1.1. Définition
157
1.2. Types de services
158
1.3. Gérer un service
158
1.4. Exemple de service
159
2. Récepteur de diffusion161
2.1. Définition
161
2.2. La classe BroadcastReceiver
161
2.3. Diffuser un Intent
162
2.4. Annuler la diffusion d'un Intent
162
2.5. S'abonner à un broadcast
162
2.6. Se désabonner d'un broadcast
162
2.7. Exemple de Broadcast Receiver
163
3. Fournisseur de contenu164
3.1. Présentation
164
3.2. Exemple de Content Provider
165
4. Notification174
4.1. Définition
174
4.2. Créer une notification
174
Conclusion
176
Exercices
177
Chapitre 12 : Géolocalisation & cartes179
Introduction
179
1. Permissions179
1.1. requestPermissions()
180
1.2. shouldSliowRequestPermissionRationale()
181
1.3. onRequestPermissionsResult()
181
2. Clé Google Maps Android API182
2.1. Etapes de génération de la clé
182
2.2. Création de projet & utilisation de la clé
183
3. La localisation183
3.1. Gestionnaire de localisation
184
3.2. Fournisseurs de position
184
3.3. Obtenir des notifications du fournisseur
185
3.4. Les alertes de proximité
186
4. Carte187
4.1. Types de cartes
187
4.2. Propriétés de la carte
188
4.3. Ecouteurs sur la carte
188
4.4. Marker et MarkerOptions
189
4.5. Déplacer la caméra à me localisation
193
Conclusion
193
Exercices
195
Chapitre 13 : Les capteurs199
Introduction
199
1. Présentation199
2. Notions communes a tous les capteurs200
2.1. Déclarer le capteur dans le Manifest
200
2.2. La classe SensorManager
201
2.3. Détecter les changements d'états des capteurs
201
3. Exemples de capteurs204
3.1. Gyroscope
204
3.2. Le capteur de la lumière
204
3.3. Le capteur électromagnétique
205
3.4. Le capteur de proximité
205
Conclusion
206
Exercices
207
Chapitre 14 : Fonctionnalités du Smartphone209
Introduction
209
1. Téléphonie209
1.1. Gérer les appels
209
1.2. Gérer les SMS
212
1.3. Lister les contacts
215
2. Connectivité217
2.1. Wifi
217
2.2. Bluetooth
218
2.3. NFC
223
3. Multimédia224
3.1. Emplacements des fichiers multimédias
224
3.2. Lecteur Multimédia
225
3.3. Caméra
228
3.4. Enregistrement son
228
4. Vibreur229
5. Alarme229
5.1. Types d'alarme
230
5.2. Planification d'une alarme
230
5.3. Annulation d'une alarme
232
5.4. Alarmes visibles par l'utilisateur
232
Conclusion
232
Exercices
233
Chapitre 15 : Publier des applications239
Introduction
239
1. Bonnes pratiques du développement mobile239
2. Référencement d'une application mobile240
3. Publication241
3.1. Génération de l'APK signé
241
3.2. Création d'un compte Play Store
243
3.3. Publication sur le Play Store
246
4. Monétisation251
4.1. Stratégies de monétisation
252
4.2. Activer un identifiant d'annonce AdMob
255
4.3. Application gratuite avec une bannière de publicité
258
4.4. Application gratuite avec une annonce interstitielle
259
Conclusion
261
Exercices
263
Correction exercices265