Platform Configuration
Android
| Setting | Value |
|---|---|
| Min SDK | 23 (Android 6.0) |
| Target SDK | Flutter default |
| Compile SDK | Flutter default |
| NDK | 29.0.13599879 |
| Package | me.hypnoelp.app |
Signing
Release builds use key.properties + upload-keystore.jks in android/. Debug builds use the default debug keystore.
ProGuard
Enabled for release builds (minifyEnabled true). Custom rules in proguard-rules.pro.
Theme
Both light and dark themes must use MaterialComponents for flutter_stripe compatibility.
iOS
| Setting | Value |
|---|---|
| Bundle ID | me.hypnoelp.app |
| Deep link scheme | lucidflow:// |
| IAP product prefix | me.hypnoelp.app. |
Capabilities
- In-App Purchase (required for IAP flow)
- Microphone access (preprocessor flag in Podfile:
PERMISSION_MICROPHONE=1)
IAP Native Bridge
Method channel app_receipt in AppDelegate.swift retrieves the App Store receipt from Bundle.main.appStoreReceiptURL.
Web
- Landing page shown for all routes except auth-related ones
- Allowed routes:
/signup-success,/reset-password,/auth/callback - Redirect URLs use browser origin (
Uri.base.origin)
Key Dependencies
| Package | Purpose |
|---|---|
supabase_flutter |
Backend and auth |
provider |
State management |
just_audio |
Audio playback |
flutter_secure_storage |
Secure credential storage |
go_router |
Navigation |
in_app_purchase |
Google Play / App Store billing |
crypto / encrypt |
Audio encryption |
connectivity_plus |
Network monitoring |
cached_network_image |
Image caching |
webview_flutter |
HTML content display |