Applications mobiles pour Android avec Jetpack Compose¶
Bienvenue sur le site de référence des notes de cours pour le développement d'applications mobiles Android avec Jetpack Compose et le langage Kotlin.
Ces notes sont structurées de façon thématique afin de faciliter l'apprentissage progressif et la consultation rapide lors du développement de vos projets.
📚 Table des matières thématique¶
🛠️ 1. Environnement et Outils¶
- Introduction & Présentation du cours : Plan de cours, compétences ministérielles, politique départementale d'évaluation.
- Installation & Configuration : Installation d'Android Studio, Kotlin et outils annexes.
- Création d'un premier projet : Structure d'un projet Android, imports et organisation du code.
- Android Studio & Ressources : Guide de l'IDE, fenêtres d'outils, raccourcis et gestionnaire de ressources (
res/). - Prévisualisation vs Émulateur : Tester avec
@Previewinteractive ou exécuter sur l'émulateur. - Débogage & Dépannage : Logcat, points d'arrêt, inspecteur de disposition et résolution des problèmes fréquents (Troubleshooting).
- Publication d'application : Génération de clés, signatures et déploiement (APK / Android App Bundle).
💻 2. Référence Kotlin et Outils de Build¶
- Gestion de projet avec Gradle : Fichiers
build.gradle.kts, catalogue de versionslibs.versions.toml, gestion des dépendances et cache. - Kotlin Fondamentaux : Variables (
var/val), types de base, string templates, structures de contrôle (if,when,for,while), optionnels et null-safety. - Normes de code : Conventions de nommage et utilisation de code emprunté.
- Documentation KDoc : Documentation Kotlin, KDoc et génération Dokka.
🎨 3. Interface utilisateur avec Jetpack Compose¶
- Bases de Jetpack Compose : Paradigme déclaratif, fonctions
@Composableet cycle de recomposition. - Composants d'interface (UI) :
Text,Column,Row,Box,Image,AsyncImage,Icon,Surface,Card,Button,Switch,Checkbox, etc. - Modificateurs (Modifiers) : Espacement, dimensionnement, arrière-plan, bordures, clics, alignement.
- Mise en page avec Scaffold : Barre supérieure
TopAppBar, barre inférieureBottomAppBar,FloatingActionButtonet gestion des fenêtres de contenu. - Saisie et Clavier virtuel : Champs de saisie (
TextField,OutlinedTextField), focus et masquage du clavier. - Couleurs, Thèmes et Hasard : Palette Material 3, thèmes clair/sombre et génération aléatoire.
- Icônes et Images : Bibliothèque Material Symbols et ressources graphiques vectorielles.
- Fenêtres Popup et Dialogues : Boîtes de dialogue
AlertDialoget fenêtres contextuelles. - Listes dynamiques : Listes performantes avec
LazyColumnetLazyRow.
🔄 4. Gestion de l'état et Architecture¶
- L'état dans Compose : Utilisation de
remember,mutableStateOfet persistance au changement de configuration (rememberSaveable). - État avancé & State Hoisting : Élévation d'état, listes d'état mutables
mutableStateListOfet flux unidirectionnel (UDF). - Architecture MVVM avec ViewModel : Séparation stricte de l'UI et de la logique métier, cycle de vie du
ViewModel. - Effets secondaires (Side Effects) :
LaunchedEffect,rememberCoroutineScopeet exécution asynchrone sécurisée. - Programmation asynchrone & Coroutines : Tâches de fond et coroutines Kotlin dans l'écosystème Compose.
💾 5. Persistance et Données¶
- Préférences utilisateur : Stockage clé-valeur avec DataStore Preferences.
- Système de fichiers de l'émulateur : Explorateur de fichiers, répertoires internes de l'application et bases de données SQLite.
- Base de données locale avec Room : Entités (
@Entity), DAO (@Dao), base de données (@Database) et requêtes CRUD. - Room avancé : Observation réactive en continu avec
Flow, tris et filtres dynamiques. - Formulaires CRUD : Formulaires d'ajout, de validation, de modification et de suppression de données.
- Données distantes & API REST : Appels réseau HTTP, sérialisation JSON et gestion des autorisations Internet.
🚀 6. Fonctionnalités avancées et Matériel¶
- Lecture Audio & Sons MP3 : Intégration de MediaPlayer / ExoPlayer (Media3) pour effets sonores et musique.
- Navigation multi-écrans : Navigation Compose,
NavHost,NavControlleret passage d'arguments entre destinations. - Internationalisation (i18n) : Traduction des textes, fichiers
strings.xmlet localisation. - Liens hypertextes : Intégration de liens cliquables et ouverture du navigateur web.
- Capteurs de l'appareil (Sensors) : Utilisation des capteurs physiques (accéléromètre, luminosité, etc.).
- Optimisation des performances : Réduction des recompositions inutiles, annotations
@Stable/@Immutable. - Notifications : Canaux de notifications Android, création d'alertes et permissions.
📝 7. Exercices et Évaluations¶
- Exercices pratiques - Partie 1 : Exercices 1 à 4 (Bases Compose, Saisie, Clavier, Préférences).
- Exercices pratiques - Partie 2 : Exercices 5 à 8 (Popups, ViewModel, Audio MP3 et Examen formatif formel).
- Exercices pratiques - Partie 3 : Exercices 9 à 14 (Room, Navigation, Formulaires CRUD, API REST, Capteurs).
- Examens & Épreuve finale : Critères d'évaluation, contextes de réalisation et devis de l'épreuve finale.