# iOS Development Checklist
## Pre-Development Setup
- [ ] macOS machine with Xcode installed
- [ ] Rust toolchain installed (`rustup.rs`)
- [ ] cargo-make installed (`cargo install cargo-make`)
- [ ] iOS targets installed (`rustup target add aarch64-apple-ios x86_64-apple-ios aarch64-apple-ios-sim`)
## Building ProofMode Framework
- [ ] Run setup script: `./scripts/setup-ios.sh`
- [ ] Verify XCFramework created: `ls target/xcframework/ProofMode.xcframework`
- [ ] Verify Swift bindings generated: `ls bindings/ios/*.swift`
## Xcode Project Setup
- [ ] XCFramework added to project and set to "Embed & Sign"
- [ ] Swift binding files added to project
- [ ] Bundle identifier configured
- [ ] Development team selected
- [ ] Signing configured
## Testing Checklist
### Simulator Testing
- [ ] App launches successfully
- [ ] Camera interface works (mock camera in simulator)
- [ ] Photo library access works
- [ ] Proof generation completes
- [ ] Proof verification works
- [ ] Settings and 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 and export functionality
### Permission Testing
- [ ] Camera permission requested when needed
- [ ] Photo library permission requested when needed
- [ ] Location permission requested when needed
- [ ] App functions when permissions denied
- [ ] Permission status displayed correctly in settings
### Error Handling
- [ ] Network errors handled gracefully
- [ ] Storage errors handled
- [ ] Invalid input handled
- [ ] Library initialization errors handled
- [ ] User feedback provided for all error states
## Performance Testing
- [ ] App launches quickly
- [ ] Image processing performs well
- [ ] Memory usage reasonable
- [ ] Battery usage acceptable
- [ ] Background processing works correctly
## Security Testing
- [ ] PGP keys generated securely
- [ ] Private keys stored securely
- [ ] Image data not leaked
- [ ] Location data only collected when permitted
- [ ] Proof signatures verify correctly
## Release Preparation
- [ ] All features working on both simulator and device
- [ ] Performance acceptable
- [ ] Memory leaks addressed
- [ ] Crash testing completed
- [ ] App Store guidelines compliance
- [ ] Privacy policy updated
- [ ] Documentation complete
## Known Limitations
- [ ] Mock implementation vs real library documented
- [ ] Platform-specific behaviors noted
- [ ] Dependency requirements documented
- [ ] Build environment requirements specified