SimPic is an AI-powered camera app that provides real-time coaching to help you take better portraits and improve your photography skills.
- Framework: Flutter (Native mobile development)
- Camera Engine: camera package
- Target Platforms: Android (primary), iOS (secondary)
- Dev Workflow: Hot Reload with Flutter
Ensure you have the following installed:
- Flutter SDK: Install from flutter.dev
- Android Studio: For Android development
- Xcode (macOS only): For iOS development
- Java 21:
export JAVA_HOME=/usr/lib/jvm/java-1.21.0-openjdk-amd64 - Android SDK:
export ANDROID_HOME=$HOME/Android/Sdk
cd flutter
flutter pub get- Connect your phone via USB and ensure USB Debugging is on.
- Run the app:
Or use Android Studio to run/debug.
flutter run
- Open iOS Simulator or connect physical device
- Run the app:
flutter run
flutter build apk --releaseThe APK will be located at: build/app/outputs/flutter-apk/app-release.apk
- ✅ Full-screen camera preview
- ✅ Camera permission handling
- ✅ App lifecycle management (pause/resume camera)
- ✅ Portrait orientation lock
- Face detection using ML Kit or Google ML Kit
- Real-time face detection overlays
- Distance coaching
- Composition guidance
- Lighting analysis
flutter/
├── lib/
│ ├── main.dart # App entry point
│ └── screens/
│ └── camera_screen.dart # Camera implementation
├── android/ # Android-specific configuration
├── ios/ # iOS-specific configuration
└── pubspec.yaml # Dependencies and assets
- Camera Package: Uses Flutter's official
camerapackage for native camera access - Permissions: Camera permissions are handled automatically by the
permission_handlerpackage - Face Detection: Will be implemented later using Google ML Kit or similar Flutter packages
- Performance: Flutter provides native performance with hot reload for fast development
- Ensure
JAVA_HOMEandANDROID_HOMEare set correctly - Run
flutter doctorto check for configuration issues - Clean build:
flutter clean && flutter pub get
- Check
AndroidManifest.xmlfor camera permissions - On Android 6+, permissions are requested at runtime
- Check device settings if permission is denied
Private project - All rights reserved