Fichiers & structure de dossiers essentiels d'un projet Android
Comprendre la structure d'un projet Android est fondamental pour un développement efficace. Voici la répartition des fichiers et répertoires critiques dans un projet moderne basé sur Gradle.
Configuration au niveau racine
- settings.gradle(.kts) : Inclusion projets, gestion plugins, définition dépôts
- build.gradle(.kts) [Projet] : Dépendances buildscript (AGP, Kotlin), dépôts allprojects
- gradle.properties : Arguments JVM, constantes versions, feature flags
- gradle/wrapper/gradle-wrapper.properties : Verrouillage version Gradle
- .gitignore : Exclut build/, .gradle/, local.properties, *.iml
Module App (généralement app/)
Manifeste & Cœur
- src/main/AndroidManifest.xml : Permissions, composants, intent-filters, métadonnées
- src/main/java/ ou kotlin/ : Packages sources (activities, fragments, ViewModels, repositories, etc.)
Ressources (src/main/res/)
- layout/ : Définitions UI XML (ConstraintLayout, interop Compose)
- values/ : strings.xml, colors.xml, dimens.xml, themes.xml, attrs.xml
- drawable/ : Assets vectoriels (XML), raster (PNG/WebP) dans dossiers densité
- mipmap/ : Icônes lanceur (couches icône adaptative)
- xml/ : Écrans préférences, règles sauvegarde, config sécurité réseau
- raw/ : Assets non compilés (JSON, certificats, médias)
- font/ : Polices TTF/OTF
- anim/ & animator/ : Animations vue/propriété
- navigation/ : Graphe navigation XML
Configuration de build
- build.gradle(.kts) [Module] : Plugins (com.android.application, kotlin-android), namespace, compileSdk, minSdk, targetSdk, dépendances, buildTypes, productFlavors, composeOptions, packagingOptions
- proguard-rules.pro : Règles keep R8/ProGuard pour réflexion, JNI, libs tierces
Types de modules additionnels
- Modules fonctionnalités : Distribution dynamique (à la demande, instant)
- Modules bibliothèque : Code partagé (apply plugin: 'com.android.library')
- Modules test : Unitaires (test/), instrumentés (androidTest/)
Générés & dérivés (Ne pas commiter)
- build/ : Sorties compilateur, sources générées, APKs/AABs
- .gradle/ : Cache Gradle
- local.properties : Chemin SDK (spécifique machine)
- .idea/ : Config IDE (commit optionnel)
Les projets modernes utilisent de plus en plus Kotlin DSL (.kts), Jetpack Compose (réduit layout/XML), et catalogues de versions (gradle/libs.versions.toml) pour la gestion des dépendances.
