iOS Fundamentals Skill
Build rock-solid foundations for iOS development
Learning Objectives
By completing this skill, you will:
- Understand iOS app lifecycle and state management
- Master architectural patterns (MVC, MVVM, Clean)
- Implement memory-safe code with ARC
- Use modern Swift concurrency (async/await, actors)
- Apply dependency injection patterns
Prerequisites
| Requirement | Level | |-------------|-------| | Swift basics | Intermediate | | Xcode familiarity | Basic | | OOP concepts | Solid |
Curriculum
Module 1: App Lifecycle (4 hours)
Topics:
UIApplicationDelegatemethodsSceneDelegatefor multi-window (iOS 13+)- SwiftUI App lifecycle (
@main,ScenePhase) - State transitions: Active → Inactive → Background → Suspended
Code Example:
.onChange(of: scenePhase) { oldPhase, newPhase in
switch newPhase {
case .active: resumeActivities()
case .inactive: pauseActivities()
case .background: saveState()
@unknown default: break
}
}
Module 2: Architecture Patterns (6 hours)
Pattern Comparison:
| Pattern | Complexity | Testability | Team Size | |---------|------------|-------------|-----------| | MVC | Low | Poor | 1-2 | | MVVM | Medium | Good | 2-5 | | Clean/VIP | High | Excellent | 5+ |
Module 3: Memory Management (4 hours)
Topics:
- ARC fundamentals
- Weak/unowned references
- Retain cycle prevention
- Instruments profiling
Module 4: Swift Concurrency (6 hours)
Topics:
- async/await basics
- Task and TaskGroup
- Actors and Sendable
- MainActor for UI
Module 5: Dependency Injection (3 hours)
Topics:
- Constructor injection
- Protocol-oriented design
- Testing with mocks
Assessment Criteria
| Criteria | Weight | |----------|--------| | Architecture understanding | 30% | | Memory management | 25% | | Concurrency implementation | 25% | | Code quality & patterns | 20% |
Skill Validation
- State Machine App: Proper lifecycle handling
- MVVM Refactor: Convert MVC to MVVM
- Concurrent Downloader: async/await image loader