Skip to content

Template for KMP projects with a CLEAN architecture driven by Gradle convention plugins

License

Notifications You must be signed in to change notification settings

piloudu/kmp-clean-app-template

Repository files navigation

Template to build KMP apps with a CLEAN architecture

This template tries to push the following concepts to the maximum extent:

  • Separation of concerns and layering following a CLEAN-like architecture
  • Gradle convention over configuration (custom plugins reducing duplicated logic)
  • Easy scalability
  • Type-safe dependency + plugin access centralised in the libs.versions.toml file

Architecture

The project uses a tree-like structure for Gradle projects, grouping them in the following categories:

  • app
  • data
  • di
  • domain
  • testing
  • ui

As a result, ./gradlew projects shows the following structure:

+--- Project ':app'
+--- Project ':data'
|    +--- Project ':data:database'
|    +--- Project ':data:datasource'
|    \--- Project ':data:repositories'
+--- Project ':di'
+--- Project ':domain'
+--- Project ':testing'
|    +--- Project ':testing:core'
|    \--- Project ':testing:test-app'
\--- Project ':ui'
     +--- Project ':ui:core'
     +--- Project ':ui:feature-main'
     \--- Project ':ui:navigation'

Build

The build configuration is provided as part of the gradle-plugins included build. The convention plugins are developed with the convention over configuration mindset that Gradle tries to enforce

About

Template for KMP projects with a CLEAN architecture driven by Gradle convention plugins

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages