Hacking with Swift+ Preview

You can browse through the latest tutorials below, or select a category from the left. Some videos in the categories are available for free, but most will be locked until you subscribe. When you subscribe, you'll get access to all these tutorials plus all new tutorials that get released.

Subscribe to Hacking with Swift+

Using Codable with protocols

17:16

LEARN SOMETHING NEW

Using Codable with protocols

It's easy to encode an array of objects that have the same type, but how can you handle an array of objects with a different type? In this tutorial I'll show you exactly how to do it with a simple and effective approach.  Continue Reading >

Wrap up

17:26

ULTIMATE PORTFOLIO APP

Wrap up

UPDATED: That completes all the code for this course, but before we're done it's important to run through everything to make sure there are no outstanding bugs or warnings, and that our code is as polished as we can make it.  Continue Reading >

Optimizing for visionOS

11:22

ULTIMATE PORTFOLIO APP

Optimizing for visionOS

UPDATED: The last platform we're going to target is visionOS, which is actually the easiest – Apple seem to have put in a great deal of effort to make SwiftUI fit there naturally, so it requires almost no effort from us.  Continue Reading >

Optimizing for watchOS

37:09

ULTIMATE PORTFOLIO APP

Optimizing for watchOS

UPDATED: From Apple's largest screens down to Apple's smallest screens, it's time to make our app work on Apple Watch. This is the hardest port we'll be doing, and we'll need to make some compromises along the way…  Continue Reading >

Optimizing for macOS

45:35

ULTIMATE PORTFOLIO APP

Optimizing for macOS

UPDATED: Now that our app is all built, let's take a look at optimizing it for macOS – tailoring our Swift code to make the most of the Mac platform, rather than just running in iPad compatibility mode.  Continue Reading >

Creating a second widget

34:05

ULTIMATE PORTFOLIO APP

Creating a second widget

UPDATED: In this follow-on article we’re going to up our widget game by adding a second, more complex widget and exploring some configuration options that help our widgets work better on-screen.  Continue Reading >

Brush & Bark

2:16:15

LIVE STREAMS

Brush & Bark

In this stream we're going to build a website in Swift, using a free, open-source framework I produced called Ignite. It's designed to be familiar for SwiftUI developers, so hopefully you can see the appeal!  Continue Reading >

SnowSeeker

9:50

SOLUTIONS

SnowSeeker

This challenge asks you add a photo credit to resort images, handle loading and saving of favorite resorts, then add sorting options to the main listing. Let’s tackle it now…  Continue Reading >

Creating a simple widget

43:24

ULTIMATE PORTFOLIO APP

Creating a simple widget

UPDATED: Widgets allow users to place parts of our app right on their Home Screen, which is both deeply powerful and deeply personal. In this article we’re going to start by doing all the app configuration required to make widgets function, then add a simple widget for our app to show that everything works.  Continue Reading >

High Rollers

36:20

SOLUTIONS

High Rollers

This challenge asks you build an app that simulates random dice rolls on behalf the user, adding haptic feedback to bring it to life, and permanent storage for later reference. Let’s tackle it now…  Continue Reading >