This project serves as a comprehensive starter template for modern Android applications, pre-configured with essential dependencies and UI setup to jumpstart your development. It's built with a Kotlin-first approach, leveraging Jetpack Compose for a declarative UI, Room for local data persistence, Koin for efficient dependency injection, and Navigation 3 for robust app navigation.
- Jetpack Compose: Modern toolkit for building native Android UI.
- Kotlin-first: Entirely written in Kotlin, embracing its features and best practices.
- Room Database: Local data persistence with SQLite object mapping.
- Koin: Lightweight dependency injection framework for Android.
- Navigation 3: Jetpack Compose navigation component for handling in-app navigation.
- Pre-configured UI: Basic UI structure and theming ready for extension.
- Modular Project Structure: Organized codebase for scalability and maintainability.
This template includes a robust set of libraries to facilitate modern Android development:
com.android.application: Android Gradle Pluginorg.jetbrains.kotlin.android: Kotlin Android Pluginorg.jetbrains.kotlin.plugin.compose: Kotlin Compose Plugincom.google.devtools.ksp: Kotlin Symbol Processing (KSP) for annotation processingorg.jetbrains.kotlin.plugin.serialization: Kotlin Serialization Plugin
- AndroidX Core KTX:
androidx-core-ktx - Lifecycle Runtime KTX:
androidx-lifecycle-runtime-ktx - Activity Compose:
androidx-activity-compose - Compose BOM:
androidx-compose-bom - Compose UI:
androidx-compose-ui - Compose UI Graphics:
androidx-compose-ui-graphics - Compose UI Tooling Preview:
androidx-compose-ui-tooling-preview - Compose Material3:
androidx-compose-material3 - Junit:
junit - AndroidX Junit:
androidx-junit - AndroidX Espresso Core:
androidx-espresso-core - Compose UI Test Junit4:
androidx-compose-ui-test-junit4 - Compose UI Tooling:
androidx-compose-ui-tooling - Compose UI Test Manifest:
androidx-compose-ui-test-manifest - Room Compiler:
androidx-room-compiler - Room Runtime:
androidx-room-runtime - Koin Android:
koin-android - Koin Core:
koin-core - Koin AndroidX Compose:
koin-androidx-compose - Navigation 3 UI:
androidx-navigation3-ui - Navigation 3 Runtime:
androidx-navigation3-runtime - Lifecycle ViewModel Navigation 3:
androidx-lifecycle-viewmodel-navigation3 - Kotlinx Serialization Core:
kotlinx-serialization-core - Compose UI Text Google Fonts:
androidx-ui-text-google-fonts - Lifecycle Process:
androidx-lifecycle-process - (Optional/Commented out) Coil Compose:
coil-compose - (Optional/Commented out) Coil Network OkHttp:
coil-network-okhttp
├───build.gradle.kts
├───gradle.properties
├───gradlew
├───gradlew.bat
├───local.properties
├───settings.gradle.kts
├───app/
│ ├───build.gradle.kts
│ ├───proguard-rules.pro
│ └───src/
│ ├───main/
│ │ ├───AndroidManifest.xml
│ │ ├───java/
│ │ │ └───app/
│ │ │ └───app/
│ │ │ └───template/
│ │ │ ├───MainActivity.kt
│ │ │ ├───TemplateApplication.kt
│ │ │ ├───data/
│ │ │ │ ├───Database.kt
│ │ │ │ ├───dao/
│ │ │ │ │ └───UserDao.kt
│ │ │ │ └───entity/
│ │ │ │ └───User.kt
│ │ │ ├───di/
│ │ │ │ └───AppModule.kt
│ │ │ ├───navigation/
│ │ │ │ ├───AppNavigation.kt
│ │ │ │ └───Screens.kt
│ │ │ └───ui/
│ │ │ ├───screens/
│ │ │ │ ├───main/
│ │ │ │ │ ├───MainScreen.kt
│ │ │ │ │ └───MainScreenViewModel.kt
│ │ │ │ ├───profile/
│ │ │ │ │ ├───ProfileScreen.kt
│ │ │ │ │ └───UserViewModel.kt
│ │ │ │ └───settings/
│ │ │ ├───SettingsScreen.kt
│ │ │ └───SettingsViewModel.kt
│ │ │ └───theme/
│ │ │ ├───Color.kt
│ │ │ ├───Theme.kt
│ │ │ └───Type.kt
└───gradle/
├───libs.versions.toml
└───wrapper/
├───gradle-wrapper.jar
└───gradle-wrapper.properties