SALE ENDS TODAY: Save 50% on all Swift books and bundles! >>

Learn Swift with free videos

We have a wide range of tutorial videos covering Swift, SwiftUI, iOS app development, and more – all available for free on YouTube.

Subscribe to my channel

I make free videos to help you build your skills as an iOS developer, and you can get them delivered straight to your inbox on YouTube! Click here to subscribe now.

Hacking with iOS: SwiftUI Edition

Hands-on videos showing you how to build real-world apps using SwiftUI.


Word Scramble 3/5: Working with strings – SwiftUI Tutorial
Word Scramble 2/5: Loading resources from your app bundle – SwiftUI Tutorial
Word Scramble 1/5: Introducing List, your best friend – SwiftUI Tutorial
BetterRest 7/7: Cleaning up the user interface – SwiftUI Tutorial
BetterRest 6/7: Connecting SwiftUI to Core ML – SwiftUI Tutorial
BetterRest 5/7: Building a basic layout – SwiftUI Tutorial
BetterRest 4/7: Training a model with Create ML – SwiftUI Tutorial
BetterRest 3/7: Working with dates – SwiftUI Tutorial
BetterRest 2/7: Selecting dates and times with DatePicker – SwiftUI Tutorial
BetterRest 1/7: Entering numbers with Stepper – SwiftUI Tutorial
Views and Modifiers 10/10: Custom containers – SwiftUI Tutorial
Views and Modifiers 9/10: Custom modifiers – SwiftUI Tutorial
See the full Hacking with iOS: SwiftUI Edition playlist

Swift on Sundays

Weekly app building projects that go from zero to finished project.


Building a SwiftUI app for iOS and macOS – Swift on Sundays Tutorial, September 22nd 2019
Building a line game with UIKit and Core Graphics – Swift on Sundays May 19th 2019
Building a iCloud text editor with syntax highlighting – Swift on Sundays May 12th 2019
Building an watchOS soundboard app – Swift on Sundays May 5th 2019
Building an ARKit app with SceneKit and Codable – Swift on Sundays April 28th 2019
Building a macOS menu bar app with string transforms – Swift on Sundays April 14th 2019
Building a multi-screen Markdown renderer – Swift on Sundays April 7th 2019
Building a space shooter with SpriteKit and Codable – Swift on Sundays March 31st 2019
Building a sleep app with Core ML and Create ML – Swift on Sundays March 17th 2019
Building a Vapor API with a matching iOS app – Swift on Sundays March 10th 2019
Building a declarative user interface app using JSON and Codable – Swift on Sundays March 3rd 2019
Building a SpriteKit game with physics, particles, and shaders – Swift on Sundays February 24th 2019
See the full Swift on Sundays playlist

Xcode in 20 Seconds

Fast-paced tips and tricks to make you more productive.


Xcode in 20 Seconds: Regex searching
Xcode in 20 Seconds: Faster Testing
Xcode in 20 Seconds: Layout stress testing
Xcode in 20 Seconds: Opening Xcode
Xcode in 20 Seconds: Generated interfaces
Xcode in 20 Seconds: Filtering the jump bar
Xcode in 20 Seconds: Clearing up space
Xcode in 20 Seconds: Watchpoints
Xcode in 20 Seconds: Identifying constraints
Xcode in 20 Seconds: Measuring build time
Xcode in 20 Seconds: Focused navigation
Xcode in 20 Seconds: Measuring distances
See the full Xcode in 20 Seconds playlist

Swift in Sixty Seconds

Learn Swift in short, easy to understand steps.


Introduction – Swift in Sixty Seconds
Variables – Swift in Sixty Seconds
Strings and integers – Swift in Sixty Seconds
Multi-line strings – Swift in Sixty Seconds
Doubles and booleans – Swift in Sixty Seconds
String interpolation – Swift in Sixty Seconds
Constants – Swift in Sixty Seconds
Type annotations – Swift in Sixty Seconds
Simple Types: Summary – Swift in Sixty Seconds
Arrays – Swift in Sixty Seconds
Sets – Swift in Sixty Seconds
Tuples – Swift in Sixty Seconds
See the full Swift in Sixty Seconds playlist

Subscribe to my channel

I make free videos to help you build your skills as an iOS developer, and you can get them delivered straight to your inbox on YouTube! Click here to subscribe now.

Hacking with Swift

A complete iOS development course that teaches through real projects.


Introduction to Swift: Variables and constants
Introduction to Swift: Types of data
Introduction to Swift: Operators
Introduction to Swift: String interpolation
Introduction to Swift: Arrays
Introduction to Swift: Dictionaries
Introduction to Swift: Conditional statements
Introduction to Swift: Loops
Introduction to Swift: Switch case
Introduction to Swift: Functions
Introduction to Swift: Optionals
Introduction to Swift: Optional chaining
See the full Hacking with Swift playlist

Swift Knowledge Base

Fixes and solutions for common coding problems.


How to run code after a delay using asyncAfter() and perform() – Swift 5
Replacing text in a string using replacingOccurrences(of:) – Swift 5
How to open a URL in Safari – Swift 5
How to convert Data to a String – Swift 5
How to convert an Int to a String – Swift 5
How to scale, stretch, move, and rotate UIViews using CGAffineTransform – Swift 5
How to make tappable links in NSAttributedString – Swift 5
How to add a section header to a table view – Swift 5
How to save user settings using UserDefaults – Swift 5
How to specify floating-point precision in a string – Swift 5
How to append one array to another array – Swift 5
How to sort an array using sort() – Swift 5
See the full Swift Knowledge Base playlist

SwiftUI by Example

Practical coding solutions to help you learn SwiftUI faster.


How to make a grouped list - SwiftUI by Example
How to create a list of dynamic items - SwiftUI by Example
How to create a list of static items - SwiftUI by Example
How to create a Slider and read values from it - SwiftUI by Example
How to add a border to a TextField - SwiftUI by Example
How to read text from a TextField - SwiftUI by Example
How to create a tappable button - SwiftUI by Example
How to create a toggle switch - SwiftUI by Example
How to layer views on top of each other using ZStack - SwiftUI by Example
How to control spacing around individual views using padding - SwiftUI by Example
How to customize stack layouts with alignment and spacing - SwiftUI by Example
How to create stacks using VStack and HStack - SwiftUI by Example
See the full SwiftUI by Example playlist

What's new in Swift

Learn new Swift features with hands-on videos.


Warnings for ambiguous none cases in Swift 5.1
Universal Self in Swift 5.1
Implicit returns from single-expression functions in Swift 5.1
Matching optional enums against non-optionals in Swift 5.1
Creating uninitialized arrays in Swift 5.1
Improved synthesized memberwise initializers in Swift 5.1
Opaque return types in Swift 5.1
Static and class subscripts in Swift 5.1
What's new in Swift 5.0?
The Result type in Swift
Toggling a Boolean using toggle()
Removing items from an array with removeAll(where:)
See the full What's new in Swift playlist

Subscribe to my channel

I make free videos to help you build your skills as an iOS developer, and you can get them delivered straight to your inbox on YouTube! Click here to subscribe now.

Hacking with Swift Live 2019

Session recordings from the 2019 conference.


Gentle Generics – John Sundell at Hacking with Swift Live 2019
Auditing your App with the Accessibility Inspector – Kilo Loco at Hacking with Swift Live 2019
Extending UIColor to Support Custom Styling – Kelly Hutchison at Hacking with Swift Live 2019
The Swift Behind SwiftUI – Daniel Steinberg at Hacking with Swift Live 2019
Thinking Outside the Box with Swift Package Manager – Ellen Shapiro at Hacking with Swift Live 2019
Swift Hardware Hacking – Sally Shepard at Hacking with Swift Live 2019
High Performance Systems in Swift – Cory Benfield at Hacking with Swift Live 2019
An Illustrated History of Easter Eggs – James Thomson at Hacking with Swift Live 2019
See the full Hacking with Swift Live 2019 playlist