SEMAINE 1 : FONDATIONS KOTLIN
Jour Thème Contenu Exercice
Variables (val vs var), types de base
Jour Bases du Programme de calcul
(Int, String, Boolean, Double),
1 langage d'IMC
opérateurs et conversions
Jour Structures de Conditions (if, when expression), Programme de notes
2 contrôle boucles (for, while), ranges et itérations scolaires avec when
Syntaxe des fonctions, paramètres par
Jour Fonctions et Fonctions de filtrage
défaut, fonctions d'ordre supérieur,
3 lambdas de liste
lambdas
Classes, constructeurs, propriétés, Modélisation d'un
Jour Classes et
héritage, classes abstraites, interfaces, système de
4 objets
data classes bibliothèque
Gestion d'une liste
Jour Null safety et Types nullable (? , ?: , !!), Listes, Sets,
d'étudiants avec
5 collections Maps et opérations fonctionnelles
filtres
Jour Coroutines Suspend functions, launch, async, Simulation d'appels
6 (intro) runBlocking, contextes et dispatchers réseau asynchrones
Application console de gestion de Mini-projet :
Jour Révision et
tâches avec classes, collections, Gestionnaire de
7 mini-projet
coroutines tâches
SEMAINE 2 : ANDROID STUDIO & JETPACK COMPOSE
Jour Thème Contenu Exercice
Installation Android Studio, création
Jour Installation et Premier projet "Hello
premier projet, structure du projet,
8 premier projet World"
émulateur
Jour Bases de @Composable, @Preview, Text, Carte de présentation
9 Jetpack Button, Column, Row, Box (nom, titre, contact)
Jour Thème Contenu Exercice
Compose
Jour Gestion de remember, mutableStateOf, state Compteur avec
10 l'état (State) hoisting, recomposition boutons +/-
Jour Composants Image, Icon, Card, Surface, Scaffold Écran d'accueil avec
11 essentiels (TopAppBar, FAB) barre d'outils
Navigation Compose, NavHost,
Jour Application avec 2
Navigation NavController, passage de
12 écrans et navigation
paramètres
Jour Thèmes et MaterialTheme, couleurs, Personnalisation du
13 Material Design typographie, thème clair/sombre thème de l'application
Jour Application de présentation Mini-projet : Portfolio
Mini-projet UI
14 personnelle multi-écrans personnel
SEMAINE 3 : ARCHITECTURE MVVM
Jour Thème Contenu Exercice
Diagramme
Jour Comprendre Théorie Model-View-ViewModel, cycle
d'architecture pour
15 MVVM de vie des activités et ViewModel
app de notes
Création d'une classe ViewModel,
Jour ViewModel Écran de profil avec
viewModel() dans Compose, exposition
16 pratique données persistantes
de l'état
StateFlow, MutableStateFlow,
Jour StateFlow et Formulaire avec
collectAsState(), différence avec
17 collecte validation temps réel
LiveData
Jour Gestion des événements uniques Affichage de messages
UI Events
18 (toast, navigation), Channels après action utilisateur
Jour Repository Qu'est-ce qu'un Repository, Création d'un
19 pattern centralisation des sources de données, repository avec
Jour Thème Contenu Exercice
injection manuelle données fictives
Tests unitaires du
Jour Tests JUnit, Turbine pour Flow, tests des
ViewModel de
20 unitaires états et événements
formulaire
Application de calculatrice avec Mini-projet :
Jour Mini-projet
historique, ViewModel, StateFlow, Calculatrice avec
21 MVVM
Repository historique
SEMAINE 4 : PERSISTANCE LOCALE (ROOM)
Jour Thème Contenu Exercice
Dépendances Gradle, Entités
Jour Introduction à Création d'une entité
(@Entity), DAO, Base de données
22 Room "Note" et son DAO
(@Database)
Insert, Update, Delete, Query, Implémentation de
Jour Opérations
Suspend functions pour toutes les opérations
23 CRUD
coroutines CRUD
Type converters (dates, enums), Ajout d'une relation
Jour Types
relations (One-to-Many, Many-to- entre Notes et
24 complexes
Many) Catégories
Intégration de Room
Jour Intégration avec Repository utilisant Room, Flow
dans le repository
25 Repository pour requêtes observables
existant
Schéma de base de données,
Jour Ajout d'un champ et test
Migrations migration safe, fallback
26 de migration
destructive
Preferences DataStore vs Proto
Jour Sauvegarde du thème
DataStore DataStore, stockage des
27 préféré utilisateur
préférences
Jour Mini-projet Application de notes complète Mini-projet : Application
28 Room avec CRUD, MVVM, DataStore de notes complète
SEMAINE 5 : RÉSEAU (RETROFIT)
Jour Thème Contenu Exercice
Dépendances (Retrofit,
Jour Introduction à Connexion à
Moshi/Gson), configuration client,
29 Retrofit JSONPlaceholder
interface API
GET avec paramètres (@Path,
Jour Gestion des Client API pour service
@Query), POST, PUT, DELETE,
30 requêtes météo
Headers
OkHttp Interceptors, Logging
Jour Intercepteurs Ajout de logging et
Interceptor, authentification Bearer
31 et logging gestion authentification
token
Try-catch, sealed classes pour
Jour Gestion des Gestion réseau avec
états (Loading, Success, Error),
32 erreurs états personnalisés
retry policies
Jour Coroutines et suspend functions, Flow avec Flux de données réseau
33 Flow réseau, combine, flatMapLatest avec Flow
Cache réseau avec OkHttp,
Jour Cache et offline Application avec mode
stratégies offline-first,
34 first hors ligne
WorkManager
Jour Mini-projet Application d'actualités avec API, Mini-projet : Lecteur
35 réseau cache, gestion erreurs d'actualités
SEMAINE 6 : FIREBASE
Jour Thème Contenu Exercice
Création projet Firebase, ajout à
Jour Configuration Configuration Firebase
l'application Android, configuration
36 Firebase dans une application
initiale
Jour Thème Contenu Exercice
Jour Email/password, Google Sign-In, Ajout d'authentification à
Authentication
37 gestion session, utilisateurs l'application
Structure NoSQL, collections,
Jour Cloud Firestore Stockage de données
documents, opérations CRUD
38 (1) utilisateur dans Firestore
basiques
Jour Cloud Firestore Requêtes avancées, listeners Application de chat en
39 (2) temps réel, transactions temps réel
Jour Upload/download images, gestion Ajout d'avatars
Cloud Storage
40 fichiers, sécurité utilisateur avec Storage
Rapports de crash, logs
Jour Crashlytics et Intégration de
personnalisés, événements
41 Analytics Crashlytics et Analytics
analytics
Jour Mini-projet Application complète avec auth, Mini-projet : Réseau
42 Firebase Firestore, Storage, Crashlytics social simple
SEMAINE 7 : PROJET COMPLET
Jour Thème Contenu Exercice
Définition des fonctionnalités, Application de gestion
Jour Conception du
wireframes, architecture, modèles de de tâches avec
43 projet
données équipes
Jour Mise en place Structure du projet, navigation, Configuration de la
44 base thème, dépendances base du projet
Module
Jour Firebase Auth, inscription,
Authentification d'authentification
45 connexion, profil utilisateur
complet
Jour Fonctionnalité Écran de liste, Room, repository, Affichage des tâches
46 principale (1) ViewModel avec Room
Jour Fonctionnalité Création/édition/suppression, CRUD complet avec
Jour Thème Contenu Exercice
47 principale (2) synchronisation avec Firestore synchronisation cloud
Ajout des
Jour Fonctionnalités Notifications push, partage de
fonctionnalités
48 avancées tâches, recherche
secondaires
Jour Animations, gestion des erreurs, Polissage de
Finitions UI
49 chargements, thème sombre l'interface utilisateur
SEMAINE 8 : TESTS, OPTIMISATION & DÉPLOIEMENT
Jour Thème Contenu Exercice
Jour Tests unitaires Tests ViewModel, Repository, Use Tests complets du
50 avancés Cases avec MockK projet
Jour Tests Tests Room, tests API avec Tests d'intégration
51 d'intégration MockWebServer du projet
Jour Espresso / Compose UI Testing, test Tests UI du parcours
Tests UI
52 des parcours utilisateur principal
Profiling mémoire, CPU, réduction Optimisation des
Jour Optimisation des
des recompositions, lancement points faibles
53 performances
application détectés
Jour Préparation au Génération APK/AAB, versioning, Build de production
54 déploiement signature, ProGuard/R8 signé
Jour Google Play Création fiche Play Store, captures Préparation des
55 Console d'écran, description, prix assets et description
Jour Déploiement et Publication en interne testing, Déploiement test et
56 rétrospective documentation, rétrospective bilan du projet
RÉCAPITULATIF DES TECHNOLOGIES PAR SEMAINE
Semaine Technologies couvertes
Semaine 1 Kotlin (variables, conditions, fonctions, classes, collections, coroutines basiques)
Semaine 2 Android Studio, Jetpack Compose, State, Navigation, Material Design
Semaine 3 MVVM, ViewModel, StateFlow, Repository, Tests unitaires
Semaine 4 Room, DataStore, Migrations, Relations SQLite
Semaine 5 Retrofit, OkHttp, APIs REST, Gestion d'erreurs, Cache
Semaine 6 Firebase Auth, Firestore, Storage, Crashlytics, Analytics
Semaine 7 Projet complet (intégration de toutes les technologies)
Semaine 8 Tests (unitaire, intégration, UI), Performance, Déploiement Play Store