An adaptive strength coach that turns equipment and body data into a weekly training plan. Fully on-device, provider-agnostic AI.
Swift · SwiftUI · SwiftData · LLM · iOS
A single-user iOS app that turns InBody data and available equipment into a session-by-session training plan, then adapts as performance changes.
Architected a provider-agnostic LLMProvider abstraction, a structured JSON request/response contract rather than loose prose, with four swappable adapters (OpenAI-compatible, Gemini, Anthropic, on-device) selected at runtime via user-managed profiles. A new vendor plugs in with zero app updates.
Designed a rule-engine and validator safety layer that clamps every AI-generated plan to hardcoded volume-landmark and progression rules, rejects invalid exercise IDs or unsafe load jumps, and falls back to deterministic planning on any validation or API failure.
Built a real-time per-call cost ledger (token counts and cost from configurable provider pricing, with budget caps) on a fully on-device data layer: SwiftUI and SwiftData, no backend, no accounts.