# Ladill Mini — iOS Native SwiftUI app matching the Android Ladill Mini design and API. ## Requirements - Xcode 15+ (iOS 17 deployment target) - [XcodeGen](https://github.com/yonaskolb/XcodeGen) (`brew install xcodegen`) ## Setup ```bash cd apps/ios xcodegen generate open LadillMini.xcodeproj ``` Select the **LadillMini** scheme and run on a simulator or device. ## API The app talks to `https://mini.ladill.com/api/v1/` (configured in `LadillMini/Resources/Config/*.xcconfig`). Auth uses bearer tokens stored in the Keychain. Device name is sent as `Ladill Mini iOS`. ## Features - Landing, login, and multi-step registration - Home tabs: Overview, Payment QRs, Payments, Payouts - Afia AI assistant sheet - Notifications inbox with unread badge - Account menu: Profile, Settings, Security, Wallet, Billing, Support - Optional 4-digit app PIN lock on background ## Push notifications (Firebase Cloud Messaging) 1. **`GoogleService-Info.plist`** — already at `LadillMini/Resources/GoogleService-Info.plist` (bundle ID `com.ladill.mini`, project `laddile-30129`). 2. **Xcode capability** — enable **Push Notifications** on the LadillMini target (Signing & Capabilities). The entitlements file sets `aps-environment` to `development` for debug builds. 3. **Firebase Console** — upload your **APNs authentication key** under Project Settings → Cloud Messaging so FCM can deliver to iOS devices. 4. **Physical device** — push does not work on the simulator; install on a real iPhone, sign in, and accept the notification permission prompt. On login the app registers the FCM token via `POST /api/v1/mini/push-token` with `platform: ios`. On logout it calls `DELETE /api/v1/mini/push-token`. Tapping a notification opens the in-app notifications inbox. ## App Store 1. Set your **Development Team** in Xcode signing settings. 2. Add a 1024×1024 app icon to `Assets.xcassets/AppIcon`. 3. Archive via **Product → Archive**.