Skip to content

zahid4kh/android-starter-template

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Android Starter Project Template

Dependency Versions

agp kotlin koin coreKtx lifecycleRuntimeKtx activityCompose composeBom room ksp nav3Core nav3Lifecycle kotlinSerialization kotlinxSerializationCore uiTextGoogleFonts lifecycleProcess material3 coil3

Testing Dependencies

junit junitVersion espressoCore

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.

Features

  • 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.

Dependencies

This template includes a robust set of libraries to facilitate modern Android development:

Plugins

  • com.android.application: Android Gradle Plugin
  • org.jetbrains.kotlin.android: Kotlin Android Plugin
  • org.jetbrains.kotlin.plugin.compose: Kotlin Compose Plugin
  • com.google.devtools.ksp: Kotlin Symbol Processing (KSP) for annotation processing
  • org.jetbrains.kotlin.plugin.serialization: Kotlin Serialization Plugin

Libraries

  • 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

Project Folder Structure

├───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

About

Starter template for Android applications, pre-configured with essential dependencies and UI setup to jumpstart your development

Topics

Resources

Stars

Watchers

Forks

Contributors

Languages