Skip to content

About

ComposeTemplate is a Jetpack Compose template application that follows Clean Architecture best practices. It simplifies the process of setting up a well-structured Compose application by providing a template with a predefined folder structure. ✨

Topics

Resources

Contributing

Stars

67 stars

Watchers

1 watching

Forks

Repository files navigation

ComposeTemplate

A CI-proven Jetpack Compose project generator for Android. It produces a multi-module Clean Architecture starter whose network, authentication, persistence, and secrets infrastructure is selected at generation time.

git clone https://github.com/mustafayigitt/ComposeTemplate.git
cd ComposeTemplate
./gradlew create-new-app \
  -Pargs='com.example.myapp,MyNewApp' \
  -PdataStrategy=remote \
  -q --console=plain

Data strategies

Strategy Network/auth Room Generated start flow
remote Yes No Onboarding → Login/Home
offline-first Yes Yes Onboarding → Login/Home
local No Yes Onboarding → Home
minimal No No Onboarding → Home

dataStrategy is strict and defaults to remote. Network-backed outputs retain secrets/native hardening by default; add -PwithSecrets=false to omit it. Local and minimal outputs omit secrets/security automatically.

Every retained feature always contains data, domain, navigation, and presentation. Add another feature with:

./gradlew scaffoldFeature -PfeatureName=user_profile

Room-backed generated projects can also scaffold starter entity/DAO files with -PwithDatabase=true.

What the generator guarantees

CI generates and assembles all four strategies in debug and release, checks strategy-specific path/text residue, proves a network-backed secret-free output, rejects invalid strategy values, compiles regular and Room feature scaffolds, and rebuilds the source template after deleting optional modules.

Scope

ComposeTemplate is an architecture starter, not a finished product. Generated apps still need product-specific domain logic, real backend contracts, signing, branding, migrations, and runtime/UI tests. The offline-first strategy currently selects network + Room topology; it does not generate synchronization, conflict-resolution, or cache-policy logic.

Documentation

The wiki/ directory is the documentation source of truth:

Requirements

JDK 17 and Android SDK (compileSdk 37 / targetSdk 36 / minSdk 26). NDK 27 with CMake is required only when secrets are retained. Always use the Gradle wrapper.

See CONTRIBUTING.md. Licensed under Apache-2.0.

About

ComposeTemplate is a Jetpack Compose template application that follows Clean Architecture best practices. It simplifies the process of setting up a well-structured Compose application by providing a template with a predefined folder structure. ✨

Topics

Resources

Contributing

Stars

67 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages