The Anatomy of an Android Project
An Android project is organized into Modules. A standard project contains at least one 'App' module, but large-scale architectures like Revochamp often split logic into 'Library' modules for networking, AI processing, and UI components. This modularity improves build times and code separation.
- The Project-Level Root
The root directory contains configuration files that apply to the entire project, including all modules. For a Technical Lead, the settings.gradle.kts and the root build.gradle.kts are the most critical for managing global dependencies and repository sources (like Maven Central or JitPack).
- build.gradle.kts (Project): Defines build plugins and versions used across all modules.
- settings.gradle.kts: Lists all included modules and defines where to find plugins.
- gradle.properties: Stores project-wide settings like JVM memory limits and AndroidX flags.
- local.properties: Contains local paths (like the SDK location)—this file should never be committed to Git.
- The 'app' Module (The Native Core)
This is where your functional code lives. In a Flutter project, this module contains the MainActivity that boots the Flutter engine.
- AndroidManifest.xml: The System Interface
The Manifest is the 'Source of Truth' for the Android OS. It tells the system which components exist, what permissions the app needs (like Camera or Internet), and which Activity to launch first. For your project, this is where you declare Intent Filters for deep linking into AI templates.
- The 'res' (Resources) Folder
Android strictly separates code from static resources. Even in a Flutter app, you must use this folder for native-level assets like the App Icon (mipmap), Launch Screens (drawable), and localized strings (values).
| Folder | Content Type | Architectural Importance |
|---|---|---|
| drawable/ | Images/XML vectors | Launch screens and native UI assets |
| layout/ | XML UI definitions | Native views (not used by Flutter UI) |
| mipmap/ | App launcher icons | Standardized icons for all device densities |
| values/ | Strings, Colors, Styles | Localization and theme constants |
| xml/ | Config files | Network security and accessibility configs |