app/: Android application module.app/src/main/java/com/denialshield/: Kotlin source (UI, data, utils).app/src/main/res/: Android resources (use lowercase with underscores).app/src/main/assets/: Local assets such asmodel.binand sample docs.docs/: Setup, build, usage, and CI guides.scripts/: Local and Docker build/test helpers (build.sh,start.sh,test.sh,update.sh).
./update: Initialize/update git submodules../build: Local debug build via./gradlew assembleDebug../start: Docker-based build (no local Android toolchain required)../test: Docker-based test run../gradlew assembleDebug: Direct Gradle build if you prefer../gradlew test: Run unit tests (mirrors CI).
- Language: Kotlin (Jetpack Compose UI, Room data layer).
- Formatting: Use Android Studio’s default Kotlin/Compose formatter (4-space indent).
- Naming:
PascalCasefor classes/Compose screens,camelCasefor functions/vars. - Packages: Keep code under
com.denialshield.*; add new screens underui/screens.
- Frameworks: JUnit4 for unit tests, AndroidX test for instrumentation.
- Placement:
app/src/testfor unit tests,app/src/androidTestfor device tests. - Run locally with
./gradlew testor./testfor Docker parity with CI.
- Commit messages often follow simple verbs (
Update README.md) or prefixes likefix:andchore:. Prefer short, action-focused messages; use prefixes when helpful. - PRs should include a brief description, test evidence (commands + results), and screenshots for UI changes. Link relevant issues when available.
- AI features require a local
model.bininapp/src/main/assets/; the app falls back to a template generator if missing. - Data is intended to stay on-device; avoid introducing networked processing without explicit approval given the repository’s privacy focus.