iOS Learning Path
March 8, 2023 - 15 min. read
Interested in becoming an iOS developer? This learning path is beginner-friendly & includes our team’s favorite guides and courses.
Let’s dive in!
First things first: start by mastering Swift, the programming language for native iOS, iPadOS, macOS, tvOS, and watchOS apps.
- Official Guide: A Swift Tour: The Swift Programming Language
Now that you’re familiar with Swift, let’s go through the basics of iOS development. First, get an overview of the app structure, memory management, and how to use the IDE.
- Guide: What Every Junior iOS Developer Should Know | by Treehouse
- Guide: How to Become an iOS Developer in 2021 | by Hacking With Swift
- Videos: Worldwide Developers Conference | by Apple
- Guide: 24 Quick Xcode Tips | by Hacking With Swift
- Official Guide: Certificates and Provisioning Profiles
- Official Guide: Advanced Memory Management
The User Interface
To develop the UI of your iOS app, you can use UIKit and/or SwiftUI. UIKit is a well-established framework that has been around for many years and has a large community. SwiftUI is a newer framework focusing on declarative, interactive, and dynamic user interface design.
The choice between them will depend on the specific needs of the project & the experience and preferences of the developer.
3.1 Swift UI
- Course: SwiftUI Fundamentals | by Sean Allen
- Videos: Official SwiftUI Tutorials | by Apple (4h 30mins)
- Book: SwiftUI by Tutorials | by Kodeco
- Courses: iOS and SwiftUI for Beginners | by Kodeco (16 hours)
- Course: 100 days of SwiftUI | by HackingWithSwift
3.2 UI Kit
- Course: Building iOS Interfaces | by Jarrod Parkes (2 days)
- Course: UIKit Fundamentals | by Gabrielle Miller-Messner (2 months)
- Course: AutoLayout: Constraint-Based Design | by Rodriguez (6 days)
When it comes to large-scale iOS apps, you need to make the codebase more modular, maintainable, and easier to test. Check out this guide to dependency injection for iOS.
- Official Guide: Dependency Injection Tutorial for iOS | by Kodeco
Networking Using URLSession
Next stop: learning about networking in iOS. Almost every app needs to retrieve and/or update data from the backend. The best way to handle this in iOS is using URLSession.
- Course: Beginning Networking with URLSession | by Kodeco (1 hour)
Data Persistence Using Core Data
This section will focus on data persistence. Learn how to make your iOS apps work offline using a powerful framework called Core Data.
- Course: iOS Persistence & Core Data | by Fernando Rodriguez & Eden Shapiro & Kate Rotondo (2 months)
Concurrency & Combine
Moving on, let’s tackle concurrency in iOS development. In this section, you will learn how to write declarative, asynchronous code using the Combine framework.
- Book: Combine: Asynchronous Programming With Swift | by Kodeco
- Courses: Declarative Programming With Combine | by Kodeco
Notifications Using OneSignal
The majority of app owners value local & push notifications very much. The guides below will teach you how to display & schedule notifications via One Signal, one of the most popular solutions available.
- Official Guide: Notifications Overview
- Official Guide: OneSignal: How to Add Push Notifications Into an iOS App
As you make changes to your app & add more features, how do you ensure that nothing is broken? Yes, it’s time for testing.
- Official Guide: Testing Basics
- Guide: How to Implement iOS UI Testing | by Hackernoon
Version Control Using Git
Development is an ongoing process & your app will undergo lots of changes. This course will teach you how to track & manage these changes using Git.
- Course: Version Control With Git | by Richard Kalehoff (4 weeks)
Are you ready to release your app? Awesome! Find out how to optimize, test, and publish your app. Make sure you abide by the App Store guidelines.
- Official Guide: What Is App Thinning?
- Official Guide: TestFlight
- Official Guide: App Store Review Guidelines
We hope this learning path helps you become a skilled iOS developer. Most importantly, we hope you enjoy the learning process & building awesome mobile apps.