⚠️ AI-Generated Project: This application was developed using AI coding agents (Claude Code) as a demonstration of modern iOS development practices and The Composable Architecture (TCA).
- Overview
- Screenshots
- Tech Stack
- Getting Started
- Project Structure
- Architecture
- Design System
- Documentation
- Acknowledgments
Feats of Strength is a community-driven fitness challenge feature for the Ladder fitness app. It transforms solo workouts into competitive, measurable experiences with personal baseline tracking and social leaderboards.
- 🏋️ Fitness Challenges: Browse and participate in time-based exercise challenges
- ⏱️ Real-Time Workout Tracking: Accurate timer and rep counter for workout sessions
- 📊 Live Progress Meter: Visual rep tracking against top leaderboard performers during workouts
- 🎉 Social Cheer System: Real-time cheer notifications and confetti celebrations from community members
- 🏆 Social Leaderboards: Compare performance with community members
- 📹 Video Demonstrations: Integrated exercise technique videos with thumbnail previews
- 📈 Workout Results: Post-workout summary with performance stats and social sharing
- 🖼️ Optimized Image Loading: Cached avatar images for smooth performance
demo.mov
| Home Screen |
|---|
![]() |
| Browse fitness challenges with visual cards, completion counts, and top performers |
| Home Screen w/ Team List |
|---|
![]() |
| Team selection dropdown showing available groups for challenge filtering |
| Challenge Detail |
|---|
![]() |
| Challenge information with video preview, duration, and participant stats |
| Challenge Preview |
|---|
![]() |
| Full-screen video demonstration before starting the workout |
| Challenge | Challenge w/Footer | Challenge w/Debug |
|---|---|---|
![]() |
![]() |
![]() |
| Active workout, cheers, rep counter, and leaderboard progress | Expandable controls for rep adjustments | Debug overlay showing internal workout state |
| Challenge Results w/Confetti | Challenge Results |
|---|---|
![]() |
![]() |
| Post-workout celebration with confetti animation | Performance summary with stats and ranking |
| Share Results |
|---|
![]() |
| Share sheet for posting workout results to social platforms |
| Challenge Complete |
|---|
![]() |
| Success confirmation screen after completing a challenge |
| Leaderboard |
|---|
![]() |
| Community rankings with time filters and movement indicators |
- Platform: iOS 18.0+
- Language: Swift 6.0
- UI Framework: SwiftUI
- Architecture: The Composable Architecture (TCA) v1.23.1
- Dependencies:
- ComposableArchitecture (v1.23.1)
- Creed-Lite (wsaults fork)
- ✅ Complete concurrency checking enabled
- ✅ Data-race safety enforced at compile time
- ✅
Sendableprotocol conformance for concurrent types - ✅ Actor isolation for thread-safe state management
- ✅ Modern async/await integrated with TCA's effect system
-
Resolve Package Dependencies
- Xcode will automatically resolve Swift Package Manager dependencies
- Wait for packages to download (TCA and dependencies)
-
Trust TCA Macros
⚠️ IMPORTANTWhen you first build the project, you'll see macro errors/warnings from TCA:
To fix:
- Click "Trust & Enable" on the macro warning banner in Xcode
- Or navigate to: Build Settings → Macros → Trust Swift Macros
- Select "Trust and Enable" for
swift-composable-architecture
# In Xcode
Press ⌘U to run all testsThis project uses The Composable Architecture (TCA), a library for building applications with:
- Composition: Small, modular features that compose together
- Testing: Comprehensive test coverage with
TestStore - Ergonomics: Minimal boilerplate with
@Reducerand@ObservableStatemacros
Every feature follows this structure:
@Reducer
struct FeatureName {
@ObservableState
struct State: Equatable { /* data */ }
enum Action { /* events */ }
var body: some Reducer<State, Action> {
Reduce { state, action in
// Logic + effects
}
}
}📖 For comprehensive TCA patterns, see claudedocs/TCA_Guide.md
Access via Color.ladderColorName or .ladderColorName:
- Primary:
ladderVolt(#E6FF00),ladderWhite,ladderBlack - Secondary:
ladderVermillion(#FF5349),ladderPurple(#B982FF) - Neutral:
ladderLightGray,ladderMediumGray,ladderDarkGray, etc.
- Headings:
.h1,.h2,.h3,.h4,.h5 - Body:
.ladderBody,.ladderCaption,.ladderFootnote
- CLAUDE.md - Complete project reference for AI coding agents
- TCA_Guide.md - Comprehensive TCA patterns and best practices
- Built with The Composable Architecture by Point-Free
- Generated using Claude Code AI coding agents
- Ladder design system and branding











