iOS Roadmap¶
- Roadmap: https://roadmap.sh/ios
1. Pick a Language¶
1.1 Swift (Recommended)¶
- 1.1.1 History and Why Swift?
- 1.1.2 Benefits over Objective-C
- 1.1.3 Swift Basics
1.2 Objective-C¶
- 1.2.1 Objective-C Basics
- 1.2.2 Interoperability with Swift
2. The Fundamentals¶
2.1 iOS Architecture¶
- 2.1.1 Core OS
- 2.1.2 Core Services
- 2.1.3 Cocoa Touch
2.2 Media¶
- 2.2.1 Core Graphics
- 2.2.2 Core Animation
- 2.2.3 AVFoundation
- 2.2.4 Core Image
- 2.2.5 Core Audio
- 2.2.6 Metal
2.3 Core Programming Concepts¶
- 2.3.1 OOP
- 2.3.2 Functional Programming
- 2.3.3 Memory Management
- 2.3.4 ViewController Lifecycle
- 2.3.5 Error Handling
- 2.3.6 Concurrency (GCD, async/await)
3. Version Control¶
- 3.1 Git
- 3.2 GitHub
4. Xcode (App Components)¶
4.1 Setting Up¶
- 4.1.1 Installing
- 4.1.2 Preferences
- 4.1.3 New Project
4.2 Navigating¶
- 4.2.1 Interface overview
- 4.2.2 Toolbar
- 4.2.3 Navigators
- 4.2.4 Editors
- 4.2.5 Project Files
- 4.2.6 Groups
4.3 Debugger¶
- 4.3.1 Breakpoints
- 4.3.2 Debug Navigator
- 4.3.3 Stepping
4.4 Interface Builder¶
- 4.4.1 IBOutlets
- 4.4.2 IBActions
- 4.4.3 Auto layout
5. UI Kit Basics¶
5.1 Components¶
- 5.1.1 Views
- 5.1.2 View Controllers
- 5.1.3 User Interactions
5.2 Building Simple UIs¶
- 5.2.1 Basic Interfaces
- 5.2.2 Storyboards
- 5.2.3 Xibs
- 5.2.4 Navigation
- 5.2.5 View Transitions
6. SwiftUI¶
6.1 Basics¶
- 6.1.1 Declarative Syntax
- 6.1.2 Components
- 6.1.3 State Management
- 6.1.4 Data binding
6.2 Simple UI Building¶
- 6.2.1 Building Interfaces
- 6.2.2 Views and Modifiers
- 6.2.3 Navigation
- 6.2.4 View Transitions
7. Interfaces and Navigation¶
7.1 HIG (UI Design)¶
7.2 UIKit¶
- 7.2.1 Views, View Controllers
- 7.2.2 Navigation Controllers, Segues
- 7.2.3 Navigation Stacks
- 7.2.4 Pushing Presenting
- 7.2.5 Modals and Navigation
7.3 SwiftUI¶
- 7.3.1 Navigation Stacks
- 7.3.2 Navigation View
- 7.3.3 NavigationLink
- 7.3.4 Presenting / Dismissing views
7.4 Core Animation¶
- 7.4.1 Lottie Basics / Creating Animations
8. Design Architecture¶
8.1 Architectural Patterns¶
- 8.1.1 MVC
- 8.1.2 MVP
- 8.1.3 MVVM
- 8.1.4 MVVM-C
- 8.1.5 TCA
- 8.1.6 VIPER
8.2 Reactive Programming¶
8.2.1 Combine¶
- 8.2.1.1 Publishers / Subscribers
- 8.2.1.2 Operators & Pipelines
- 8.2.1.3 Combine and MVVM
8.2.2 RxSwift¶
- 8.2.2.1 Observables & observers
- 8.2.2.2 Subjects
- 8.2.2.3 RxSwift with MVVM
- 8.2.2.4 Operators
- 8.2.2.5 Schedulers
8.3 Patterns and Techniques¶
8.3.1 Delegate Pattern¶
- 8.3.1.1 Implementing Delegates
8.3.2 Callbacks / Closures¶
- 8.3.2.1 Understanding and using Closures
- 8.3.2.2 Capturing Values & Memory Mgmt.
- 8.3.2.3 Callback Hell
8.3.3 Async / Await¶
8.3.4 Concurrency¶
9. Storage / Data Persistence¶
- 9.1 Core Data
- 9.2 User Defaults
- 9.3 Keychain
- 9.4 File System
- 9.5 SQLite
10. JSON / XML¶
- 10.1 Parsing
- 10.2 Serializing
11. Networking¶
- 11.1 HTTP / HTTPS
- 11.2 REST
- 11.3 GraphQL
- 11.4 URLSession
- 11.5 Alamofire
12. Concurrency and Multithreading (Asynchronism)¶
- 12.1 GCD
- 12.2 Operation Queues
13. Dependency Manager¶
- 13.1 CocoaPods
- 13.2 Carthage
- 13.3 Swift Package Manager
14. Frameworks & Library¶
- 14.1 XCFramework
- 14.2 Static Library
- 14.3 Dynamic Library
15. Accessibility¶
- 15.1 Accessibility Inspector
- 15.2 Voice Over
- 15.3 Dynamic Type
16. Common Services / Frameworks¶
- 16.1 ARKit
- 16.2 HealthKit
- 16.3 GameKit
- 16.4 MapKit
- 16.5 Core ML
17. Linting (Code Quality Tools)¶
- 17.1 SwiftLint
- 17.2 Tailor
- 17.3 SwiftFormat
18. Debugging (Debugging Techniques)¶
- 18.1 Xcode Debugger
- 18.2 Profiling Instruments
19. Testing¶
- 19.1 Unit & UI Testing
- 19.2 XCTest
- 19.3 XCUITest
- 19.4 Test Plan & Coverage
20. App Distribution¶
- 20.1 FastLane
- 20.2 TestFlight
- 20.3 App Store Distribution
21. CI / CD¶
- 21.1 Jenkins
- 21.2 CircleCI
- 21.3 GitHub Actions
- 21.4 GitLab
- 21.5 Azure DevOps
22. App Store Optimization (ASO)¶
23. Continuous Learning (Keeping Updated with WWDC)¶
- 23.1 Latest Swift Version
- 23.2 Latest iOS SDK
- 23.3 New Feature Announcements