What Villain Arc Is
Villain Arc is a strength training app built for people who need more than a rep counter. Most fitness apps are either too simple to support real progression or too complicated to use consistently in a real gym. Villain Arc was designed around one idea: high-fidelity training control without high-friction UX.
The app is live on the App Store and handles the full workout lifecycle — from plan and split setup, through guided in-session logging with rest timers and pre-workout context, to summary analytics, progression suggestions, and outcome tracking across multiple sessions. Health data syncs through HealthKit. Plans and history sync over iCloud. Everything stays on your device unless you choose to enable iCloud.
What This Case Study Proves
Villain Arc demonstrates more than a polished interface. It shows how FCT Technologies handles workflow-heavy native software where state management, data integrity, and multi-surface Apple integrations have to stay coherent from the app all the way out to widgets, Live Activities, and Siri shortcuts.
Shipping a live app with real users meant accounting for privacy language, support flows, persistent data behavior, onboarding for new users vs. returning users, and the operational realities of day-to-day training use. This is not a demo — it is production software.
Quantifiable Product Signals
- A four-state workout lifecycle (
pending → active → summary → done) with explicit resume rules for interrupted sessions.
- Cached exercise analytics rebuilt at summary time, including PR detection, progression charts, and per-exercise Spotlight eligibility.
- Hybrid suggestion generation combining deterministic rule evaluation with confidence-gated on-device AI — only falling back to AI when rules cannot reach a confident answer.
- Optional HealthKit integration reading workouts, body weight, sleep, steps, distance, energy, heart rate, respiratory rate, and flights climbed; writes completed workouts and weight entries back.
- Multiple Apple-native surfaces wired through a shared coordinator router: App Intents, App Shortcuts, Spotlight indexing, Widgets, and Live Activities.
- Core data local-first with CloudKit sync readiness — the app works without iCloud and syncs when enabled.
Core Capabilities
Reusable Plans With Deep Programming Controls
Villain Arc stores plans as structured prescriptions, not just workout logs. You can set rep ranges with upper and lower bounds, configure rest-time policies per set, choose set types (straight, warm-up, drop, AMRAP), and assign exercises to specific split days. Plans can be created from scratch, built from a completed workout, or edited through a copy-and-merge workflow that protects the original plan until save.
Split Scheduling
Weekly or rotation-based splits let you assign plans to training days and rest days. Home surfaces route you directly to today’s plan. Splits handle rotation progression automatically, so the app knows what to suggest on any given training day.
State-Driven Workout Logging
Workouts move through four explicit states:
pending — plan-backed sessions with unresolved suggestions wait here until you review them
active — live set-level logging with exercise paging, rest timer, and optional HealthKit live workout session
summary — session metrics, PR detection, and the suggestion review surface
done — persisted history that becomes part of your exercise analytics
Because unfinished sessions are persisted as real SwiftData records (not temporary view state), interrupted workouts resume exactly where you left off — including from Siri, Shortcuts, or a widget.
Progression Suggestions With Outcome Tracking
Villain Arc does not just log what you did — it tracks whether your decisions worked. The suggestion engine generates progression events from completed sessions. You review, accept or reject them, and the app scores the outcomes in later sessions as good, too aggressive, too easy, or ignored.
This closed loop means the coaching layer gets smarter over time. Deterministic rules handle clear patterns (e.g., consistent overachievement of rep targets). AI inference resolves ambiguous cases, but only when rule-based confidence is low — so the system stays explainable rather than a black box.
Health History and Exercise Analytics
The Health tab surfaces cached analytics across sleep, weight, steps, distance, and energy — all backed by HealthKit mirrors. Exercise detail views show cached progression charts, PR-style aggregates, and best performance markers rebuilt at summary time so they reflect the most recent session immediately. Spotlight indexing for exercises is history-backed, so frequently trained exercises become searchable automatically.
Apple Ecosystem Depth
- Siri and App Shortcuts — Start workouts, log weight entries, or check today’s plan through voice or the Shortcuts app
- Spotlight — Completed workouts, plans, and exercises with history are indexed
- Widgets — Glanceable training status at a glance
- Live Activities — In-workout controls and progress visible from the lock screen and Dynamic Island
- HealthKit — Bidirectional sync for workouts, weight, sleep, steps, and more
- iCloud/CloudKit — Optional cross-device sync with local-first fallback
Architecture Approach
The codebase separates concerns deliberately so features can evolve without rewriting core logic:
- Coordinator-driven navigation via a shared router keeps route/state transitions predictable across the app, widgets, and intent entry points
- SwiftData + CloudKit for local-first persistence with sync readiness rather than a remote-only backend
- Model-level change tracking through
PrescriptionChange and SuggestionEvent lifecycle records
- Separation of generation vs evaluation in the suggestion pipeline — generate recommendations first, score outcomes in later sessions
- Health observers and background delivery with a foreground recovery path, so Health data stays current even if the app was force-quit
- Spotlight indexer backed by cached
ExerciseHistory, so indexing eligibility follows workout history, not just the exercise catalog
Who This Is For
Villain Arc is a fit for lifters who want structured programming — not just logging, but actual rep ranges, rest targets, split schedules, and a system that tracks whether their progression decisions are working. It is also a strong reference for clients evaluating FCT Technologies’ iOS engineering: this is shipped software, not a prototype, which means the architecture was shaped by real-world use cases and App Store constraints.
Support and Legal