FCT Technologies
← Back to projects
iOS Fitness Platform Live on the App Store · iOS 26+

Villain Arc

Villain Arc is an iOS strength training platform that goes beyond simple rep tracking. It combines reusable workout plans, split scheduling, intelligent progression logic, health history, and Apple-native integrations into one cohesive system designed for daily use and long-term progress.

Last updated: January 5, 2026

Highlights

  • Status-driven workout lifecycle (pending → active → summary → done) keeps session state explicit and resumable at any interruption point.
  • Hybrid suggestion engine: deterministic training rules handle common progression patterns; on-device AI resolves ambiguous cases with confidence gating.
  • Outcome tracking evaluates whether accepted suggestions actually helped — scored across one or more later sessions as good, too aggressive, too easy, or ignored.
  • Cached exercise analytics with PR detection, progression charts, and per-exercise Spotlight indexing.
  • Comprehensive Apple integrations: Siri, Shortcuts, Spotlight, Widgets, Live Activities, and HealthKit sync.
  • Policy-level exercise programming controls for rep ranges, rest strategies, set types, and split-day assignments.
  • Optional iCloud sync to keep plans and history consistent across your devices.

Technology Stack

SwiftUI SwiftData + CloudKit Foundation Models (on-device AI) App Intents + App Shortcuts ActivityKit Live Activities WidgetKit Core Spotlight HealthKit Coordinator-based Navigation

Screenshots

Villain Arc home view with split status, latest workout, and latest workout plan
Active workout logging screen with set tracking and exercise progression context
Workout summary screen with session metrics and progression insights
Rest timer controls for in-session pacing and set transitions
Exercise selection with major and minor muscle filtering
Rep range editor for target-based exercise programming
Set-level rest time policy editor for workout prescriptions
Workout split planner showing configured training days and split structure
Pre-workout check-in for mood and energy before starting a session
Live Activity view for in-progress workout controls and status

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.