← All docs

Sponic iOS — dinner-host client

A SwiftUI iPhone app that joins the AI Agentic Gathering host LiveKit room. Mirrors the Android app feature-for-feature. Parked until Apple Developer Program approval — this doc captures everything needed to start the day approval lands.
2026-05-06 Build plan (parked) ~3.5–4 days dev Touches: LiveKit Swift SDK · Google Sign-In · SwiftUI · TestFlight

Status: BLOCKED on Apple Developer Program

This work cannot start until an active Apple Developer Program account is enrolled. Individual accounts approve in ~1–2 days; organization accounts need a D-U-N-S number first (~1 week if you don't have one) and add ~24–48h of Apple review. Cost: $99/year. Once approved, the dev work is ~3.5–4 days — can run in parallel with Android Phase 4.

TL;DR

Why iOS: the Agentic Gathering host architecture (LiveKit room + token Edge Function + agent persistence) is platform-agnostic. Phases 1–3 + 5 of ai-host-livekit all support iOS clients with zero backend changes. Adding iOS just means a second mobile client.

Why now (in spec form): getting the spec into git unblocks a developer to start the moment Apple approves — no rediscovery of decisions. Also surfaces the prerequisites (Apple Developer Program, D-U-N-S, etc.) early so the human work can run in parallel with Android.

Scope: match Android feature-for-feature for the Agentic Gathering host flow. Not attempting feature parity with the live-translation feature in this iOS spec — that's a separate (much larger) port.

What this app does (matches Android)

Architecture (matches Android)

iPhone (SwiftUI)              Backend                       Agent
+---------------+             +---------------+             +-----------------+
| Google Sign-In| --ID tok--> | /livekit-token| --JWT-----> | dinner-host     |
| LiveKitSDK    | <--URL+JWT-- (Edge Function)|             | (Python, Phoenix)|
| AVAudioSession|                              |            |                 |
+---------------+ <--LiveKit room (WebRTC)--> |            +-----------------+
                                              v                     |
                                       Supabase app_users           |
                                       dinner_profile JSONB <------/
                                       (via /dinner-profile-save)

Stack

LayerChoiceWhy
UI frameworkSwiftUIModern, declarative, matches the Android app's minimal-screen pattern. Avoids UIKit boilerplate.
Min iOS targetiOS 16Covers ~95% of in-use iPhones. Lets us use modern SwiftUI APIs (NavigationStack, @Observable, etc.).
Real-time audioLiveKit Swift SDKSame vendor as Android; protocol-identical. Add via Swift Package Manager (SPM).
AuthGoogle Sign-In iOS SDKMirrors Android's Google Sign-In. ID token sent to /livekit-token.
NetworkingURLSession + async/awaitBuilt-in; no Alamofire needed for two endpoints.
Local persistenceUserDefaultsMirrors Android's SharedPreferences for profile fields.
DistributionTestFlightFree, supports up to 100 internal + 10k external testers.

Apple Developer Program prerequisites

Block this list before any code starts. None of these are coding tasks — they're admin work that gates everything.

  1. Decide individual vs organization account. Individual: faster (~1–2 days), shows your name in App Store metadata, $99/yr. Organization: slower (~2 weeks if no D-U-N-S), shows "Sponic Gardens" in metadata, $99/yr. Recommend organization for brand presentation; tolerate the extra time.
  2. Get a D-U-N-S number (organization accounts only). Apple uses Dun & Bradstreet to verify business identity. Free at developer.apple.com/support/D-U-N-S. Takes ~5–14 business days for a new application.
  3. Enroll in Apple Developer Program at developer.apple.com/programs/enroll. $99/year. Apple reviews ~24–48h after submission.
  4. Reserve bundle ID in App Store Connect: com.sponicgardens.dinnerhost (or unify with Android: com.sponicgardens.sponic). Decide before the app is created — renaming is painful.
  5. Create App Store Connect record — app name, primary language, bundle ID. ~30 min.
  6. Configure Apple Sign-In if we want it as a login option later (App Store now requires it as an alternative if you offer Google Sign-In). For the prototype, Google-only is fine; add Apple Sign-In before public release.

Build phases (after Apple approval)

Phase i.1 — New app scaffold (~0.5–1 day)

Phase i.2 — Google Sign-In (~0.5 day)

Phase i.3 — LiveKit integration + dinner-host screen (~1 day)

Phase i.4 — Profile screen (~0.5 day)

Phase i.5 — TestFlight + smoke test (~0.5 day)

Costs

ItemCostFrequency
Apple Developer Program$99Annual
D-U-N-S number$0One-time
TestFlight distribution$0Included
Per-session backend cost~$0.20Per 10-min interview, identical to Android

What's NOT in this spec

Decisions parked for the developer

How to start (when Apple approves)

  1. Read this whole doc.
  2. Read ai-host-livekit.html for backend context (token endpoint, save endpoint, agent architecture).
  3. Pull the latest apps/mobile Android code as a feature-by-feature reference for what to mirror.
  4. Confirm Apple Developer Program is active, bundle ID reserved, App Store Connect record exists.
  5. Run the phases in order. After each phase, commit + ship a TestFlight build for fast feedback.

Last updated 2026-05-06. Update this doc when Apple approves, when bundle ID is decided, and when the first TestFlight build ships.