Course | Workload | In Brief |
100–200 hours long | Best comprehensive, project-based course | |
25–50 hours long | Best university course | |
3 hours long | Best short project-based course | |
64–80 hours long | Best intermediate-length project-based course | |
11 hours long | Best for short instructional lessons | |
25 hours long | Best interactive course | |
30–60 hours long | Best app for K-12 and highschool students | |
One week long | Best beginners course for the time constraint | |
16 hours long | Best bite-sized SwiftUI course | |
60 hours long | Best course that also covers more advanced topics |
- If you have an iPad but not a Mac or Macbook, then try out our seventh pick.
Without further ado, let’s go through the top picks.
1. 100 Days of SwiftUI (Hacking with Swift)
My #1 pick for the best Swift course is 100 Days of SwiftUI by Hacking with Swift, because it is free, up-to-date (iOS 15 and Swift 5.5), and comprehensive.
This course is aimed at complete beginners who want to learn how to build iOS apps. It takes a hands-on approach towards learning: you’ll learn by building lots of apps, either with templates provided by the course or completely on your own!
You’ll learn about SwiftUI, Apple’s framework for building user interfaces with very little code, and Swift, a general-purpose, open-source programming language designed by Apple.
What You’ll Learn
You’ll begin the course by installing and getting familiar with Xcode, Apple’s integrated development environment.
Then, you’ll cover the fundamentals of the Swift programming language: variables, data types, simple data structures, conditional statements, loops, and functions. Additionally, you’ll learn some intermediate concepts, like structs that allow you to define the properties of your code and classes with properties that can be inherited by other code.
After mastering the basics of Swift, you’ll start building apps with SwiftUI by discussing some of the fundamentals of iOS development. Your first two projects consist of a check-sharing app that calculates bills and tips and a flag guessing app. You’ll design the interface, make it interactive, and then add program logic to make it functional.
Next, you’ll build another three projects that involve handling user data and user errors, leveraging the power of machine learning, and creating and customizing beautiful animations. After that, you’ll complete another three projects that cover the essential concept of states and bindings. Finally, you’ll also have a taste of object-oriented programming and its relation to the overall app architecture.
Another three projects (there are a lot of projects!) will be completed by you that’ll deal more carefully with sending, retrieving, and storing data. It’ll discuss data privacy, local storage, cloud synchronization, and efficiently fetching, processing, and displaying data.
Controlling user view and UI flow are two essential components of iOS app development. You’ll investigate integrating code from frameworks outside of SwiftUI (like UIKit and MapKit) and explore more ways of letting users interact with your apps through tab bars, gestures, haptics, and more. All of course, by completing projects.
The final part of the course covers tips and techniques to help you build great apps, like split view layouts, layouts with transparent groups, formatting lists in text, and optimized for iPad.
How You’ll Learn
This course is 100–200 hours long. To get the most out of this course, you are recommended to spend an hour each day reading or watching SwiftUI tutorials, or writing SwiftUI code. You’ll learn by reading the lecture videos, course articles, and completing quizzes.
The course comes with 19 projects (not including challenges that involve you building your own apps), along with review sessions spaced out over the 100 days that’ll help you consolidate what you’ve learned.
Institution | Hacking with Swift |
Instructor | Paul Hudson |
Level | Beginner |
Workload | 100–200 hours |
Certificate | None |
Fun Facts
- Paul Hudson has written many books, courses, and even an app on the Swift programming language.
- He also has a YouTube channel where he discusses all things programming, especially Swift and iOS development.
If you’re interested in this course, you can find more information about the course and how to enroll here.
2. CS193p – Developing Apps for iOS (Stanford University)
My #2 pick for the best Swift course is Stanford’s CS193p, originally offered to Stanford students but is now freely available to all.
Developing Applications for iOS explains the fundamentals of building iOS applications using SwiftUI. You’ll build two sizable applications: a card game and a drawing software. By the end of the course, you’ll be well-versed in Swift and SwiftUI programming.
This course is not for complete beginners to programming. You’ll need some experience with another programming language, preferably within the object-oriented paradigm.
What You’ll Learn
The course begins by jumping right into building your first application: a card-matching game called Memorize. After that, it’ll serve as the foundation for learning SwiftUI and Swift concepts, like the Model–view–viewmodel architectural paradigm, Swift’s type system, enums, and optionals.
Still within the context of Memorize, you’ll explore property observers that observe and respond to changes in a property’s value that can be wrapped with @State and @Viewbuilder. You’ll then discuss protocols, the most important type in Swift, and see how generics and protocols can be used to design a better user interface. Afterward, you’ll add animations to Memorize to truly bring it to life.
Moving on, you’ll begin a new project called EmojiArt, where you can draw a nice picture with emojis. Hence, you’ll learn much about touch gestures like drag and drop. Several persistence topics will also be covered, along with error handling, before going over numerous properties wrappers and SwiftUI elements that help make SwiftUI programming easier.
SwiftUI’s document architecture allows you to turn EmojiARt into a multi-document application, which will enable you to create different works within EmojiArt. Then, you’ll integrate UIKit functionality into your application to take advantage of some features not yet implemented in SwiftUI. Finally, you’ll end the course by porting the iOS application to macOS.
How You’ll Learn
This course is 25–50 hours long. You’ll learn by watching the lecture videos, going through the uploaded code demo, and completing the programming assignments that aim to test your programming skills.
Institution | Stanford University |
Instructor | Paul Hegarty |
Level | Beginner |
Workload | 25–50 hours total |
Views | 388K |
Likes | 11K |
Certificate | None |
Fun Facts
- There have been many iterations of CS193P, but it has only been uploaded freely on YouTube in 2020.
- Apparently, Paul keeps a low social media presence such that even his Stanford website can only be accessed by Stanford associates.
If you’re interested in this course, you can find more information about the course and how to enroll here.
3. Your First iOS & SwiftUI App: An App from Scratch (raywenderlich.com)
If you’re a complete beginner to iOS and SwiftUI development and wondering how to get started, this free course is for you.
You’ll start by learning the basics of SwiftUI, a new way for iOS developers to build user interfaces for their apps using Swift. You’ll also dive into the Swift programming language itself, learning fundamentals like if/else statements, variables, constants, type inference, and the Swift standard library. You’ll add more cool functionality to your game and practice your new coding skills.
You’ll even learn useful techniques you’ll use as a developer in the real world, like App Architecture and Unit Testing!
What You’ll Learn
The course begins by telling you what you will build — a simple but fun game called Bull’s Eye. Then, to help you get into the habit of understanding the project scope, you’ll make a to-do list of all the things needed to develop Bull’s Eye.
Next, you’ll explore SwiftUI, a framework for building user interfaces with very little code. Finally, you’ll design the interface for your app, get a glimpse of the basics of object-oriented programming, and learn how to debug errors when they inevitably pop up.
In the next part of the course, you’ll work on making Bull’s Eye interactive by wrapping your head around two essential concepts: state and binding. You’ll then round off the section with some strings, variables, and app architecture basics. Additionally, you’ll create a simple data model for the gameplay logic.
Moving on, you’ll take a deeper look at the Swift standard library, a library of functions written by Apple engineers that you can use in your Swift code. Finally, you’ll use it to create a random target number in Bull’s Eye.
Then, you’ll learn about unit testing that’ll help you ensure that the Bull’s Eye data model is working the way it should and see why test-driven development, incorporating unit testing into your daily workflow, is incredibly beneficial for productivity.
In the course’s final parts, you’ll write the code to calculate the points for the game in a few iterations, from naive to ideal. Along the way, you’ll learn about fundamental coding techniques with Swift, such as if/else statements, variables versus constant, type inference, and much more, to end up with a complete functional (and fun!) game.
How You’ll Learn
This course is 3 hours long, split into three sections. You’ll learn by watching the lecture videos and following along with the instructor as he codes.
Provider | raywenderlich.com |
Instructor | Ray Wenderlich |
Level | Beginner |
Workload | 3 hours total |
Rating | 4.6 / 5.0 (8) |
Certificate | None |
Fun Facts
- Raywenderlich.com’s mission is to create a world-class educational platform and community for mobile developers.
- The next course to take after this course Your First iOS & SwiftUI App: Polishing the App, where you’ll give your app a professional and polished look and experience.
If you’re interested in this course, you can find more information about the course and how to enroll here.
4. Build your very first iOS app (Curtin University)
Build your very first iOS app by Curtin University teaches you tools, techniques, and concepts needed to develop iOS apps from scratch.
You’ll be introduced to the Swift programming language and learn how to utilize Apple’s developer tools to build an app. By the end of the free-to-audit 8 weeks limited access course, you’ll be able to confidently converse with iOS developers and develop your own simple iOS Apps.
There are no prerequisites required to take this course.
What You’ll Learn
The course begins with an introduction to programming, especially within the Swift context of developing iOS apps. Next, you’ll explore Xcode, Apple’s integrated development environment, and learn about variables, data types, and operators. Then, you’ll move further into the core programming concepts like making decisions with conditional statements and using arrays and dictionaries to store data.
Xcode comes with an interface builder that allows you to define the layout of your app. In addition, you’ll learn how to navigate through Xcode projects, along with understanding the importance of code documentation and debugging.
Many programming concepts are based on abstraction — hiding all but the most important details of an object. You’ll study functions that allow you to reuse code, and classes and structures to create custom data types.
Switching gears, you’ll continue improving your user interface by exploring the common user interface views and control, including making your user interface interactive. You’ll also investigate view controllers that allow you to create a navigation hierarchy for your app, creating a smooth and intuitive user experience. The course ends with TableViews that display tables within your app. Finally, you’ll implement the Model View Controller design pattern to allow for responsive user inputs.
How You’ll Learn
This course is 8 weeks long, with each week taking 8–10 hours of study. You’ll study by watching the video lectures and reading the course materials.
If you are a verified student, you’ll have access to seven end-of-lesson quizzes which help test your comprehension and understanding of the key concepts covered in the lesson.
Institution | Curtin University |
Provider | edX |
Instructor | David A. McMeekin and Tristan W. Reed |
Level | Beginner |
Workload | 64–80 hours total |
Enrollments | 45K |
Certificate | Paid |
Fun Facts
- The course has 114 bookmarks on Class Central.
- This course is part of Mobile App Development with Swift Professional Certificate, with the next course being Work with augmented reality (AR) and the web. The professional certificate will give you practical, hands-on skills needed to start a career in app development.
If you’re interested in this course, you can find more information about the course and how to enroll here.
5. Introduction to Programming in Swift 5 (LearnQuest)
Introduction to Programming in Swift 5 by LearnQuest introduces you to the absolute basics of Swift. This free-to-audit course is excellent for both beginners to programming, or those who already have experience programming wanting to get involved in the Swift language.
By the end of the course, you’ll know how to build simple iOS applications and move on to more advanced topics.
What You’ll Learn
The course begins by setting up your developer environment, Xcode, after which you’ll plunge straight into the basics: variable assignment, data types like strings and numbers, and printing to screen. Then, you’ll learn about program logic: conditional statements and loops. Finally, you’ll see how loops can help you quickly iterate through the elements of an array.
You’ll then discover dictionaries that hold key-value pairs, like a phone book that stores names and phone numbers. Then, you’ll learn how to write functions that act as reusable blocks of code that can be called anywhere from within the problem.
The course ends with a module on architecture and object-oriented programming (OOP). You’ll learn the main pillars of OOP, inheritance, and polymorphism and understand how OOP influences the design and implementation of an application, an example being the Model View Controller that structures, displays data, and receives data.
How You’ll Learn
This course is 4 weeks long with 11 hours worth of material. You’ll learn by watching the lecture videos and completing the course readings.
If you are paying for the certificate, you’ll have access to the graded quizzes and programming exercises that’ll test your knowledge of the programming language.
Institution | LearnQuest |
Provider | Coursera |
Instructor | Mark Price |
Level | Beginner |
Workload | 11 hours total |
Enrollments | 19K |
Rating | 4.4 / 5.0 (650) |
Certificate | Paid |
Fun Facts
- The course has 24 bookmarks on Class Central.
- It is part of the Swift 5 iOS Application Developer Specialization, with the next course being Introduction to iOS App Development with Swift 5. The specialization aims to provide the skills needed to get employed in Swift and iOS application development.
If you’re interested in this course, you can find more information about the course and how to enroll here.
6. Learn Swift (Codecademy)
In this free limited-access Codecademy course for complete beginners to programming, you’ll start with the fundamental programming concepts before digging deeper into the more advanced Swift topics, like structures and classes. You will build everything from a Magic 8-Ball to a Caesar Cipher.
There are no prerequisites for this course.
What You’ll Learn
The course begins with you writing your first Swift program that’ll print the perennial programmatic phrase ‘Hello World!’. Then, you’ll learn about the core programming concepts, starting with variables and basic data types like strings and booleans. Next, you’ll learn how to implement program logic into your code, that is, having your program make decisions and repeat code blocks.
Once you’ve got those core concepts down, you’ll climb higher up the programming skill ladder by looking at common data structures that help organize data, like arrays, sets, and dictionaries. Finally, you’ll see the importance of these data structures when you begin to write more complex programs.
In the course’s final section, you’ll learn how to write and interact with named, reusable blocks of code called a function. Afterward, you’ll learn how to create structures that can represent real-life objects in code before ending with a lesson on classes that can also represent a real-life object but its properties can be inherited by its children.
How You’ll Learn
This course is 25 hours long. You’ll learn by going through the interactive tutorials and exercises that focus on practicing hands-on coding.
Additionally if you have Codecademy Pro, you’ll be able to earn a certificate when you complete the course. Furthermore, you’ll be able to complete and showcase three portfolio projects and have access to quizzes that’ll recap your memory of the language.
Institution | Codecademy |
Instructors | Sonny Li, Kenny Lin, Galina Podstrechnaya, Alex DiStasi |
Level | Beginner |
Workload | 25 hours total |
Certificate | Paid |
Fun Facts
- Codecademy was co-founded by Zach Sims and Ryan Bubinski, with the goal of giving anyone in the world the ability to learn the skills they’d need to succeed in the 21st century.
- They offer free courses in 12 different programming languages, the most popular ones being Python, Java, Ruby, C++, C#, and Swift.
If you’re interested in this course, you can find more information about the course and how to enroll here.
7. Swift Playgrounds (Apple)
Although not strictly a course, I’ve decided to include Swift Playgrounds as it is a learning app with structured lessons.
Swift Playgrounds is a free iPad app developed by Apple that makes learning and experimenting with code interactive and fun. It is aimed at primary school to high school students, although anyone older than that can still benefit from this.
Students begin by solving bite-sized problems that’ll help strengthen their foundations, before moving to interactive walkthroughs that’ll teach them the building blocks of apps.
No prior coding knowledge needed!
What You’ll Learn
There are three main modules for young students in this course.
Learn to Code 1 is set in a dynamic 3D world. Students will gradually build up their basic programming vocabulary by executing simple commands, functions, and loops in Swift. By the end of the first module, they’ll be familiar with algorithms.
Learn to Code 2 engages the student’s mind by encouraging them to create worlds of their own. They’ll learn more in-depth topics like variables, data types, initialization, and parameters that’ll allow them to change the rules of their world.
Learn to Code 3 expands the coding skills developed in Learn to Code 1 & 2 to help them start thinking more like an app developer. Starting with graphics and coordinates, they’ll learn how to place and manipulate images, before combining these techniques with touch events. Then, they’ll dive into strings and see how text is represented. Finally, they’ll end with event handlers by designing their own games.
For senior high school and university students, Intro to App Development with Swift and App Development with Swift are available as well.
How You’ll Learn
This course is 30–60 hours long for young students. They’ll learn by going through the interactive tutorials and challenging their brains on fun and engaging exercises of various kinds.
Institution | Apple |
Level | Beginner |
Workload | 30–60 hours total |
Certificate | None |
Fun Facts
- Swift Playgrounds has been so well-loved that there’s an article outlining 5 reasons why it is the perfect programming app.
- Swift Playgrounds can also subscribe to lessons and other content published by third parties, including lessons allowing users to control educational toys such as Lego Mindstorms EV3 and Sphero robots.
If you’re interested in this app, you can find more information about the app and how to install it here.
8. Swift for Beginners (Udacity)
In Udacity’s Swift for Beginners, you’ll learn the fundamentals needed to start creating your first app. By the end of this course, you’ll be able to solve problems, construct algorithms, and build feature-rich mobile applications in Swift.
No prior programming experience is required to take this free course.
What You’ll Learn
The course jumps straight into variables, the most basic building block of any program. First, you’ll learn how to assign values to variables with their correct data types. Then, you’ll learn about strings representing a sequence of characters, just like the words on this script, and how to create and manipulate strings. Before that, you’ll install and play around with Xcode, Apple’s integrated development environment.
Another integral component of any program is conditional statements like the if and else statements that allow you to branch the execution of your code based on the logic you define. Finally, the course ends with a lesson on function — a list of code that accomplishes a task. You’ll learn how to organize and reuse code with functions.
How You’ll Learn
This course is one week long (although you can probably finish it within a day or two). You’ll learn by watching the lecture videos, reading the course articles, and working on the end-of-module problem sets that are designed to give you the opportunity to apply what you’ve learned.
Institution | Udacity |
Instructor | Jarrod Parkes |
Level | Beginner |
Workload | One week total |
Certificate | None |
Fun Facts
- The course has 226 bookmarks on Class Central.
- Jarrod Parkes is currently a senior software engineer at Aryeo, a leading content management platform for the real estate industry.
If you’re interested in this course, you can find more information about the course and how to enroll here.
9. SwiftUI Bootcamp (Swiftful Thinking)
SwiftUI Bootcamp by Swiftful Thinking is here to help beginners get a mastery of the basics of SwiftUI. Unlike other courses, this course is not focused on building an app. Instead, the free course will tackle and master one specific component in SwiftUI so that by the end of the course, you’ll be a master of all the individual components and create a really beautiful app.
The instructor also has a Discord server where you can ask questions about SwiftUI.
No experience with Swift is needed to take this course.
What You’ll Learn
The course begins by showing you how to use Xcode in Swift projects. Then, you’ll learn how to add text and shapes in SwiftUI as a blank canvas. Then, you’ll paint the blank canvas by learning to add color, depth, and gradients to the shapes you have created, turning them into a colorful piece of art.
System icons help bring some flair to your app. Luckily, Apple has thousands of pre-made system icons ready for you to use, which can either be unicolor or multi-color. After that, you’ll see how to add images and alter them as you please. Finally, with these tools in hand, you’ll focus on making a beautiful clean background for your app.
Moving forward, you’ll learn about states and bindings — two essential properties that bring your app to life. Next, you’ll add buttons and then add functionality to those buttons by understanding loops, conditionals, and ternary operators. Not only that, but you’ll also add responsive animations.
The final parts of the course detail the many widgets the user can interact with. You’ll also learn about various Swift objects and properties, along with other miscellaneous stuff like adapting for dark mode, documenting code, and touch gestures.
How You’ll Learn
This course is 16 hours long. You’ll learn by watching the lecture videos and following along with the lecturer as he codes.
Institution | Swiftful Thinking |
Provider | YouTube |
Instructor | Nick Sarno |
Level | Beginner |
Workload | 16 hours total |
Views | 188K |
Certificate | None |
Fun Facts
- Nick Sarno is also a Udemy instructor, having taught one course also on iOS development.
- You can view his other contacts and projects on his personal website here.
If you’re interested in this course, you can find more information about the course and how to enroll here.
10. iOS & Swift – The Complete iOS App Development Bootcamp (Angela Yu)
In this paid course by Angela Yu, you’ll learn the ins-and-outs of the Swift programming language from a complete beginner with no programming experience all the way to a proficient iOS app developer!
The course emphasizes on learning by doing, which means you’ll be making fun real-world apps like Pokemon Go, Whatsapp, QuizUp and Yahoo Weather. In addition, you’ll acquaint yourself with some of Apple’s latest technologies: SwiftUI, ARKit, CoreML, and Create ML.
What You’ll Learn
You’ll start this course by setting up your developer environment, Xcode, and look at its interface builder. Then, you’ll learn how to navigate and set up a new Xcode project to begin designing and developing an app that displays an image of coal with the title ‘I am poor’.
Now that you are familiar with creating a static app interface, you’ll want to breathe some life into it by developing a dice app and a Magic 8 Ball app. This will involve learning the Swift programming basics, like constants, variables, control structures, and data structures. You’ll also learn how to create a responsive layout for your app.
Diving deeper into the Swift language, you’ll uncover some critical concepts behind object-oriented programming (OOP), like inheritance, structures, classes, and protocols. OOP forms the foundation for some software design principles. For example, you’ll learn how to implement the Model View Controller design pattern and write organized, readable code when you create a choose-your-own-adventure game.
The final few sections of the course cover advanced topics every professional iOS developer should know about. You’ll start with networking, which involves making asynchronous API calls and communicating with the cloud, before moving on to persistent local data storage to store your app data locally, and, not to forget, learning to implement in-app purchases with the Apple StoreKit. Not only that, you’ll also learn about Git, GitHub, machine learning, and augmented reality.
How You’ll Learn
This course is 60 hours long. You’ll learn by watching the lecture videos, going through the course resource list provided, and most importantly, working hands-on on actual application projects.
Provider | Udemy |
Instructor | Angela Yu |
Level | Beginner |
Workload | 60 hours total |
Enrollments | 295K |
Rating | 4.8 / 5.0 (78K) |
Certificate | Paid |
Fun Facts
- Angela Yu is the founder of The App Brewery, London’s leading programming bootcamp. She is a popular Udemy instructor, having over 1.5 million students and close to 500K reviews in all her courses combined.
If you’re interested in this course, you can find more information about the course and how to enroll here.