AndroidAutoBuildAPK is evolving from a small single-module Android app into a production-grade, contributor-friendly Android platform project.
The app remains a lightweight offline Android experience, while the repository now has the foundations needed for long-term scalability: Kotlin DSL, version catalogs, Gradle convention plugins, module-boundary rules, architecture documentation, and CI workflows that separate pull-request verification from signed release builds.
root/
├── app/ # Android application shell and current UI screens
├── core/preferences/ # Shared user preference, theme, language, bookmark, and favorite state
├── feature/ # Future feature modules when ownership is clear
├── data/ # Future data/repository implementation modules
├── domain/ # Future domain model/use-case modules
├── build-logic/ # Gradle convention plugins
├── docs/ # Contributor and release documentation
├── scripts/ # Repeatable helper scripts
├── testing/ # Shared test utilities when needed
├── tools/ # Developer tooling support files
└── .github/ # CI, templates, and code ownership
Only :app and :core:preferences are registered Gradle modules today. The other directories document where future responsibilities belong without adding empty modules.
ARCHITECTURE_REVIEW.md— current-state audit, risks, and phase-1 decisions.TARGET_ARCHITECTURE.md— intended module responsibilities and dependency rules.MIGRATION_PLAN.md— phased migration path from the current app to a scalable platform.docs/CONTRIBUTING.md— local development and pull request expectations.docs/RELEASE.md— release workflow and signing guidance.
This repository uses:
- Kotlin DSL Gradle build files.
- Version catalogs in
gradle/libs.versions.toml. - Included build convention plugins in
build-logic/. - A module-boundary verification task:
checkModuleBoundaries.
chmod +x gradlew
./gradlew checkModuleBoundaries testDebugUnitTest assembleDebugTo build a release locally with custom version values:
./gradlew assembleRelease \
-PappVersionCode=123 \
-PappVersionName=1.123Workflow file: .github/workflows/build.yml
Pull requests and pushes run:
- Module-boundary verification.
- Unit tests.
- Debug APK build.
- Debug artifact upload.
Signed release APK/AAB generation is available through manual workflow dispatch with build_release=true.
KEYSTORE_BASE64KEYSTORE_PASSWORDKEY_ALIASKEY_PASSWORD
base64 -w 0 keystore.jksOn macOS:
base64 keystore.jks | tr -d '\n'The project will stay buildable throughout migration. Future modules should be introduced only when they have a clear responsibility, clear dependency direction, and tests appropriate to their risk.