# Android Development Checklist
## Pre-Development Setup
- [ ] Android Studio installed (Arctic Fox or newer)
- [ ] Android SDK installed (API 21-34)
- [ ] Android NDK installed (for native library builds)
- [ ] Rust toolchain installed (`rustup.rs`)
- [ ] cargo-make installed (`cargo install cargo-make`)
- [ ] Android targets installed (`rustup target add aarch64-linux-android armv7-linux-androideabi x86_64-linux-android i686-linux-android`)
## Building ProofMode AAR
- [ ] Run setup script: `./scripts/setup-android.sh`
- [ ] Build AAR structure: `./scripts/android/build-aar.sh`
- [ ] Build AAR: `cd target/aar && ./gradlew assembleRelease`
- [ ] Verify AAR created: `ls target/aar/build/outputs/aar/`
- [ ] Setup Android project: `./scripts/android/setup-studio-project.sh`
## Android Studio Project Setup
- [ ] AAR copied to `app/libs/` directory
- [ ] AAR dependency added to `app/build.gradle`
- [ ] Gradle sync completed successfully
- [ ] No build errors in Android Studio
- [ ] All permissions declared in AndroidManifest.xml
## Testing Checklist
### Emulator Testing
- [ ] App launches successfully on emulator
- [ ] Camera interface works (mock camera in emulator)
- [ ] Gallery access works
- [ ] Proof generation completes
- [ ] Proof verification works
- [ ] Permissions handled gracefully
### Device Testing
- [ ] App launches on physical device
- [ ] Real camera capture works
- [ ] GPS location collection works (if permissions granted)
- [ ] Proof generation with real metadata
- [ ] Proof files saved to device storage
- [ ] Sharing functionality works
### Permission Testing
- [ ] Camera permission requested when needed
- [ ] Storage permission requested when needed
- [ ] Location permission requested when needed
- [ ] App functions when permissions denied
- [ ] Permission rationale shown when appropriate
### Architecture Testing
- [ ] Different CPU architectures supported (ARM64, ARMv7, x86_64, x86)
- [ ] App works on various Android versions (API 21+)
- [ ] Performance acceptable on low-end devices
- [ ] Memory usage reasonable
### Error Handling
- [ ] Network errors handled gracefully
- [ ] Storage errors handled
- [ ] Invalid input handled
- [ ] Native library errors handled
- [ ] User feedback provided for all error states
## Performance Testing
- [ ] App launches quickly
- [ ] Image processing performs well
- [ ] UI remains responsive during proof generation
- [ ] Memory leaks checked with LeakCanary
- [ ] Battery usage acceptable
## Security Testing
- [ ] Native libraries loaded securely
- [ ] PGP keys stored securely
- [ ] Image data not leaked
- [ ] Location data only collected when permitted
- [ ] Network communications secure
## Release Preparation
- [ ] All features working on both emulator and device
- [ ] Performance acceptable across device types
- [ ] Memory usage optimized
- [ ] Security review completed
- [ ] Google Play guidelines compliance
- [ ] Privacy policy updated
- [ ] Documentation complete
## Known Limitations
- [ ] Mock vs real native library integration documented
- [ ] Android version compatibility documented
- [ ] Device-specific behaviors noted
- [ ] Performance characteristics documented
## Deployment Checklist
- [ ] Release APK built and signed
- [ ] APK tested on multiple devices
- [ ] Google Play Store metadata prepared
- [ ] Screenshots and app store listing ready
- [ ] Release notes written
- [ ] Support documentation updated