Practice Projects & Setup Guide

Ready to practice? Here's how to set up and explore the iOS-Practice projects.
All code is on GitHub: iOS-Practice
Getting the Code
git clone https://github.com/christopherkmoore/iOS-Practice
cd iOS-Practice
Project Structure
iOS-Practice/
├── ConcurrencyBugHunt/
│ ├── Exercises/
│ │ ├── GCD/
│ │ ├── AsyncAwait/
│ │ └── Combine/
│ └── ConcurrencyBugHunt.xcodeproj
├── TestabilityWorkshop/
│ ├── Exercises/
│ │ ├── DependencyInjection/
│ │ ├── SideEffects/
│ │ ├── Architecture/
│ │ └── Async/
│ ├── TestabilityWorkshopTests/
│ └── TestabilityWorkshop.xcodeproj
└── SwiftUIBuilder/
├── Exercises/
│ ├── List/
│ ├── Grid/
│ ├── Navigation/
│ └── State/
└── SwiftUIBuilder.xcodeproj
Opening Projects
Each project is standalone:
# Concurrency exercises
open ConcurrencyBugHunt/ConcurrencyBugHunt.xcodeproj
# Testing exercises
open TestabilityWorkshop/TestabilityWorkshop.xcodeproj
# SwiftUI exercises
open SwiftUIBuilder/SwiftUIBuilder.xcodeproj
Exercise Structure
Each exercise file includes:
- Requirements - What you need to build
- Starter code - The buggy or incomplete implementation
- Comments - Hints about what to fix
- Preview - Instant feedback in Canvas
Running Tests
In TestabilityWorkshop:
# Run all tests
cmd + U
# Or from command line
xcodebuild test -project TestabilityWorkshop.xcodeproj -scheme TestabilityWorkshop
Tips for Practice
- Read the requirements before looking at the code
- Try to fix/implement before checking the blog post
- Run the app to see the bug in action
- Write tests to verify your fix
- Compare your solution to the blog post
Requirements
- Xcode 15+
- iOS 17+ deployment target
- macOS Sonoma recommended
Questions?
Open an issue on GitHub or reach out on Twitter.