mirror of
https://github.com/d4rken-org/capod.git
synced 2026-09-14 18:26:11 -04:00
2.0 KiB
2.0 KiB
CAPod - Companion for AirPods
Android app that detects and monitors AirPods via Bluetooth LE. Displays battery levels, triggers popup notifications on case open, and provides home screen widgets.
Project Structure
| Module | Description |
|---|---|
app/ |
Main Android app (FOSS and Google Play flavors) |
app-common/ |
Shared code between phone and Wear OS apps |
Build Flavors
- FOSS (
foss): Open-source, no Google Play dependencies - Google Play (
gplay): Includes billing client for IAP
Quick build check: ./gradlew assembleFossDebug
Key Locations
| Path | Contains |
|---|---|
app/src/main/java/ |
Main app source (activities, fragments, services) |
app-common/src/main/java/ |
Shared logic (monitor, bluetooth, models) |
app/src/main/res/ |
Layouts, drawables, strings |
app-common/src/test/ |
Unit tests |
app/build.gradle.kts |
App build config, dependencies, flavors |
app/src/debug/java/.../screenshots/ |
Play Store screenshot content composables |
fastlane/ |
Screenshot generation scripts, Play Store metadata |
Development Tips
- Use
assembleFossDebugas the fastest build variant for iteration - Shared code goes in
app-common/, app-specific code inapp/ - Follow existing patterns — the codebase uses MVVM + Hilt + Coroutines
- Always use string resources for user-facing text (see localization rules)
- Check
git log --oneline -20for commit message style before committing
Rules Reference
Detailed guidelines are in .claude/rules/:
architecture.md— Module structure, key components, data flow, dependenciesbuild-commands.md— Build, test, lint, and release commandslocalization.md— String resource naming conventionscommit-guidelines.md— Commit message format and prefixespull-requests.md— PR title and description conventionsagent-instructions.md— Sub-agent delegation and critical thinkingscreenshots.md— Play Store screenshot pipeline, commands, adding new screens