Skip to content

wsaults/LadderFeatureExample

Repository files navigation

Ladder iOS - Feats of Strength

⚠️ 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).

Table of Contents

Overview

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.

Key Features

  • 🏋️ 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

Demos

demo.mov

Screenshots

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

Tech Stack

  • 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)

Swift 6 Features

  • ✅ Complete concurrency checking enabled
  • ✅ Data-race safety enforced at compile time
  • Sendable protocol conformance for concurrent types
  • ✅ Actor isolation for thread-safe state management
  • ✅ Modern async/await integrated with TCA's effect system

Getting Started

Installation

  1. Resolve Package Dependencies

    • Xcode will automatically resolve Swift Package Manager dependencies
    • Wait for packages to download (TCA and dependencies)
  2. Trust TCA Macros ⚠️ IMPORTANT

    When 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 SettingsMacrosTrust Swift Macros
    • Select "Trust and Enable" for swift-composable-architecture

Running Tests

# In Xcode
Press ⌘U to run all tests

Architecture

This 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 @Reducer and @ObservableState macros

Core TCA Pattern

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

Design System

Colors

Access via Color.ladderColorName or .ladderColorName:

  • Primary: ladderVolt (#E6FF00), ladderWhite, ladderBlack
  • Secondary: ladderVermillion (#FF5349), ladderPurple (#B982FF)
  • Neutral: ladderLightGray, ladderMediumGray, ladderDarkGray, etc.

Typography

  • Headings: .h1, .h2, .h3, .h4, .h5
  • Body: .ladderBody, .ladderCaption, .ladderFootnote

Documentation

Project Documentation

  • CLAUDE.md - Complete project reference for AI coding agents
  • TCA_Guide.md - Comprehensive TCA patterns and best practices

Acknowledgments

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages