What problem does it solve?
Building reliable iOS apps that combine SwiftUI views, UIKit bridging, terminal emulation, SSH connectivity, and voice/STT is complex and error-prone due to threading, audio session, terminal rendering, and credential storage pitfalls. This Skill captures battle-tested patterns and anti-patterns to avoid crashes, UI freezes, audio capture issues, and terminal layout drift when integrating these subsystems.
Core Features & Use Cases
- Service architecture: @MainActor ObservableObject services for SSH, STT, and persistence with clear rules for background I/O and Task.detached usage.
- Terminal integration: UIViewRepresentable wrappers for SwiftTerm with Coordinator patterns, ANSI filtering, DEC attribute handling, and adaptive column sizing.
- Voice input & STT: AVAudioEngine capture, WAV encoding, Apple Speech and server transcription flows with timeout wrappers and double-resume guards.
- Build & deployment: xcodegen + SPM project patterns, recommended SPM dependencies (SwiftTerm, Citadel) and simulator-safe build notes.
- Credentials & storage: Keychain upsert patterns, UUID indexing for profiles, and UserDefaults persistence for model stores.
- Use Case: Create a voice-controlled SSH terminal client that records audio, transcribes to text, and sends input to a remote PTY while maintaining robust UI and audio behavior.
Quick Start
Open your SwiftUI project, add a TerminalUIView wrapper, SSHService, and STTService following the patterns here to connect to a remote PTY and send voice transcriptions as input.