Challenge/
βββ .github/
β βββ actions/
β β βββ setup/ # Composite action: Xcode, mise, caching, SPM, simulator
β β βββ test-report/ # Composite action: artifact upload, summary, PR comment
β βββ workflows/
β βββ quality-checks.yml # GitHub Actions CI workflow
βββ App/ # Main application target
β βββ Sources/
β βββ Tests/
β βββ Shared/ # Robots, Scenarios, Stubs, Fixtures
β βββ UI/ # UI tests (XCTest)
βββ AppKit/ # Composition layer (SPM local package)
β βββ Package.swift
β βββ Sources/
β β βββ Data/ # App-level data configuration
β β βββ Presentation/ # Root views and navigation
β βββ Tests/
β βββ Unit/
β βββ Snapshots/
βββ Features/ # Feature modules (SPM local packages)
β βββ Character/
β β βββ Package.swift
β β βββ Sources/
β β βββ Tests/
β βββ Home/
β β βββ Package.swift
β β βββ Sources/
β β βββ Tests/
β βββ Episode/
β β βββ Package.swift
β β βββ Sources/
β β βββ Tests/
β βββ System/
β βββ Package.swift
β βββ Sources/
β βββ Tests/
βββ Libraries/ # Shared libraries (SPM local packages)
β βββ Core/ # Navigation, routing, image loading
β β βββ Package.swift
β β βββ Sources/
β β βββ Tests/
β β βββ Mocks/
β βββ Networking/ # HTTP client
β β βββ Package.swift
β β βββ Sources/
β β βββ Tests/
β β βββ Mocks/
β βββ DesignSystem/ # UI components (Atomic Design)
β β βββ Package.swift
β β βββ Sources/
β β βββ Tests/
β βββ SnapshotTestKit/ # Snapshot testing framework
β βββ Package.swift
β βββ Sources/
βββ Shared/
β βββ Resources/ # Localization, shared resources
β βββ Package.swift
β βββ Sources/
βββ Tuist/
β βββ ProjectDescriptionHelpers/
β β βββ Modules/
β βββ Package.swift # External SPM dependencies + target settings
βββ Scripts/
βββ docs/
βββ Project.swift # Root project (app + UI tests + module packages)
βββ Workspace.swift # Workspace configuration (code coverage)
βββ Challenge.xctestplan # Test plan aggregating all module test targets (SPM strategy only)
βββ Tuist.swift
βββ .mise.toml
Main application entry point.
Composition layer that wires all features together.
Challenge (App)
βββ ChallengeAppKit
βββ ChallengeCore
βββ ChallengeNetworking
βββ ChallengeCharacter
β βββ ChallengeCore
β βββ ChallengeNetworking
β βββ ChallengeResources
β βββ ChallengeDesignSystem
βββ ChallengeEpisode
β βββ ChallengeCore
β βββ ChallengeNetworking
β βββ ChallengeResources
β βββ ChallengeDesignSystem
βββ ChallengeHome
β βββ ChallengeCore
β βββ ChallengeResources
β βββ ChallengeDesignSystem
β βββ Lottie (external)
βββ ChallengeSystem
βββ ChallengeCore
βββ ChallengeResources
βββ ChallengeDesignSystem
Libraries (base dependencies):
βββ ChallengeCore (no dependencies)
βββ ChallengeNetworking (no dependencies)
βββ ChallengeResources β ChallengeCore
βββ ChallengeDesignSystem β ChallengeCore
βββ ChallengeSnapshotTestKit (test-only, wraps swift-snapshot-testing)