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+

Rock, Paper, Scissors

18:36

SOLUTIONS

Rock, Paper, Scissors

This challenge asks you to build a fun brain game using all the SwiftUI skills you’ve learned so far. Let’s tackle it now…  Continue Reading >

Views and Modifiers

5:33

SOLUTIONS

Views and Modifiers

This challenge asks you to back and adjust both project 1 and project 2 based on what you learned, then try your hand at creating a custom view modifier. Let’s tackle it now…  Continue Reading >

Guess the Flag

16:29

SOLUTIONS

Guess the Flag

This challenge asks you to add some important features to Guess the Flag, including a score tracker and a limited number of questions. Let’s solve those now, and tackle a bonus problem at the end just for fun…  Continue Reading >

Challenge 1: Converter

38:12

SOLUTIONS

Challenge 1: Converter

This early challenge day asks you to build a converter app that’s able to move between any two similar units, such as kilometers and miles. Let’s solve it now, then we’ll take it further, and then we’ll take it even further…  Continue Reading >

Fireworks

2:05:15

LIVE STREAMS

Fireworks

In this article we’re going to build a tool that designs particle systems for SwiftUI apps, all built on top of the TimelineView and Canvas that were added in SwiftUI. I think you’ll really be amazed how fast this comes together!  Continue Reading >

WeSplit

7:17

SOLUTIONS

WeSplit

There are three challenges for WeSplit, including adding section headers and showing a grand total. Let’s solve them now…  Continue Reading >

Checkpoint 9

6:31

SOLUTIONS

Checkpoint 9

Checkpoint 9 of Swift for Complete Beginners asks you to write a function to pick a number from an optional array, or return a random number if that’s not possible. Let’s solve that now…  Continue Reading >

Checkpoint 8

7:05

SOLUTIONS

Checkpoint 8

Checkpoint 8 of Swift for Complete Beginners asks you to design a protocol to represent a building, then create two structs conforming to it. Let’s solve that now…  Continue Reading >

Checkpoint 7

7:31

SOLUTIONS

Checkpoint 7

Checkpoint 7 of Swift for Complete Beginners asks you to create a class hierarchy to store various types of animals, including properties, methods, and initializers. Let’s solve that now…  Continue Reading >

Checkpoint 6

8:34

SOLUTIONS

Checkpoint 6

Checkpoint 6 of Swift for Complete Beginners asks you to create a struct to model a car, adding properties and methods that make sense. Let’s solve that now…  Continue Reading >

Checkpoint 5

7:48

SOLUTIONS

Checkpoint 5

Checkpoint 5 of Swift for Complete Beginners asks you to process an array of numbers using filter(), sorted(), and map(). Let’s solve that now…  Continue Reading >

Checkpoint 4

7:40

SOLUTIONS

Checkpoint 4

Checkpoint 4 of Swift for Complete Beginners asks you to find the integer square root an input number within a certain range, or throw errors if you can’t do it. Let’s solve that now…  Continue Reading >

Checkpoint 3

6:46

SOLUTIONS

Checkpoint 3

Checkpoint 3 of Swift for Complete Beginners asks you to tackle the classic FizzBuzz problem, printing Fizz, Buzz, FizzBuzz, or a number depending on the input. Let’s solve that now…  Continue Reading >

Checkpoint 2

5:25

SOLUTIONS

Checkpoint 2

Checkpoint 2 of Swift for Complete Beginners asks you to print the number of items in a string array, then print the number of unique items. Let’s solve that now…  Continue Reading >

Checkpoint 1

5:19

SOLUTIONS

Checkpoint 1

Checkpoint 1 of Swift for Complete Beginners asks you to create an Xcode playground able to convert any value of Celsius into Fahrenheit, then print the result. Let’s solve that now…  Continue Reading >

Transforming data with compactMap()

22:14

FUNCTIONAL PROGRAMMING

Transforming data with compactMap()

In this article we’re going to look at the compactMap() function, which is a more advanced form of map() that adds an important second step to handle optional results. Please make sure you’ve already gone through my tutorial on map() before continuing here!  Continue Reading >

Cleaning up CloudKit, part 2

31:09

ULTIMATE PORTFOLIO APP

Cleaning up CloudKit, part 2

The second part of cleaning up CloudKit involves tackling error handling head on, and along the way I’ll show you a useful trick for making this process easier. I’ve said it before, but it bears repeating that getting error handling right is the key to a great CloudKit app!  Continue Reading >

Dice Off

1:48:38

LIVE STREAMS

Dice Off

In this article we’re going to build a simple strategy game for iPad, using SwiftUI and SF Symbols. We’ll start out with it being a two-player game, but later on we’ll build a simple AI to make it work just as well as a one-player game.  Continue Reading >

Cleaning up CloudKit, part 1

26:33

ULTIMATE PORTFOLIO APP

Cleaning up CloudKit, part 1

We’ve added quite a bit of iCloud functionality in the last few tutorials, so before we’re done we need to clean up what we have so it’s a solid foundation we can build on. To start with, that means tackling removing data as well as we handling adding data.  Continue Reading >

Applying a predicate with contains() and filter()

32:52

FUNCTIONAL PROGRAMMING

Applying a predicate with contains() and filter()

In this article we’re going to look at the contains() and filter() functions, which search a sequence to see whether a certain test passes. Along the way you’ll see how similar these two functions are, along with how to build them yourself.  Continue Reading >