# Apple client (macOS + iOS) — placeholder Built in **M4** (see [`docs/roadmap.md`](../../docs/roadmap.md)). Swift + SwiftUI, consuming `libvoicecat` through the C ABI ([`core/include/voicecat.h`](../../core/include/voicecat.h)). Planned shape (see [`docs/architecture.md`](../../docs/architecture.md) §4 and [`docs/tech-stack.md`](../../docs/tech-stack.md) §2): - A Swift Package wrapping the core as an **XCFramework** (macOS + iOS device + simulator). - A module map exposing `voicecat.h` to Swift (Swift can also use C++ interop directly, but the C ABI is the stable contract). - SwiftUI app target for macOS and iOS. - **iOS audio:** app owns `AVAudioSession` (`.playAndRecord` / `.voiceChat`), mic permission, interruption/route handling, calling `vc_audio_*` hooks on the core. - **iOS screen/system audio (`SCREEN_AUDIO`):** a **ReplayKit Broadcast Upload Extension** capturing `RPSampleBufferType.audioApp`, linking a minimal core slice, sharing session state via an **App Group** ([`docs/voice.md`](../../docs/voice.md) §9). Nothing here yet — the core must reach M2 (working voice) before the GUI is worth building.