NEW: Subscribe to Hacking with Swift+ and accelerate your learning! >>

Join over 60,000 readers today

Airbnb Apple BBC Cisco eBay GitHub Google IBM Intel Microsoft Nike Salesforce

The ultimate investment for your iOS career

Hacking with Swift+ is a subscription service that delivers incredible, hands-on Swift tutorials as both video and article, so you can deepen your understanding of Swift, SwiftUI, UIKit, and more, and take your career to the next level.

HWS+ costs just $20 per month, and every article includes 4K Ultra HD video.


4K Video

All articles come with 4K Ultra HD video showing the techniques, with live commentary from me so you can understand exactly how something works.

Article + Code

All articles also come as text as well as video so you can read if you prefer, plus copy any code you want to try, and even challenges to help you take your learning further.

Exclusive content

All HWS+ articles are available only for subscribers, on topics such as advanced Swift, building custom SwiftUI components, high-performance apps, and more.

One price

We don't have tiers or upgrades or similar, so for just $20 a month you get all the videos, articles, and code, including all articles published before you joined.

How it works


HWS+ was launched June 1st, and many all-new articles plus accompanying videos have already been posted since then.

But it doesn't stop there. We'll keeping adding videos to the courses, and keep adding new courses, to build this up into the ultimate toolkit for advancing your Swift knowledge.

Courses launching now…

  • Advanced Swift will focus on improving your core Swift language skills, regardless of whether you use UIKit, SwiftUI, or something else.
  • Custom SwiftUI Components will walk you through building a wide variety of reusable UI components using SwiftUI.
  • High-performance Apps will teach you techniques for writing faster code, rendering faster views, and more, so you can make best use of your user's device.
  • Making the most of Foundation will go back to the basics of Apple's Foundation framework, exploring how best to use common code such as UserDefaults and Measurement.
  • Networking covers a core topic in a fresh way, showing you smart ways to make your code simpler and safer using generics, Combine, and more.
  • SwiftUI Special Effects will teach you how to add some surprise and delight to your user interface using particles, Core Motion, and more.

Each of those courses have had their initial videos published, but more will be added daily until the courses are complete.

And more courses are on the way: debugging, testing, and of course lots more SwiftUI – I have an epic collection of tutorials coming, and I can’t wait to share them all with you.

Your Hacking with Swift+ membership gets you every subscriber-only article and video published now and in the future.

Here's a sample of what's waiting for you…


Creating a WaveView to draw smooth waveforms
CUSTOM SWIFTUI COMPONENTS

FREE: Creating a WaveView to draw smooth waveforms

In this article I’m going to walk you through building a WaveView with SwiftUI, allowing us to create beautiful waveform-like effects to bring your user interface to life.

Using memoization to speed up slow functions
HIGH-PERFORMANCE APPS

FREE: Using memoization to speed up slow functions

In this article you’ll learn how memoization can dramatically boost the performance of slow functions, and how easy Swift makes it thanks to its generics and closures.

How to use phantom types in Swift
ADVANCED SWIFT

FREE: How to use phantom types in Swift

Phantom types are a powerful way to give the Swift compiler extra information about our code so that it can stop us from making mistakes. In this article I’m going to explain how they work and why you’d want them, as well as providing lots of hands-on examples you can try.

Creating a LongPressButton to trigger after delay
CUSTOM SWIFTUI COMPONENTS

Creating a LongPressButton to trigger after delay

In this article I’m going to walk you through building a LongPressButton with SwiftUI, which will requires users to press and hold for a second before it’s triggered.

Finding and fixing slow rendering
HIGH-PERFORMANCE APPS

Finding and fixing slow rendering

Instruments is a powerful tool for identifying performance problems, but in this article I’ll show you how to find code that slows down rendering in your app, causing slow scrolling, wasted CPU time, and more – all through the simulator.

Remaking the Tips app
REMAKING APPS

Remaking the Tips app

In this article we’re going to look at how to rebuild the Tips app using SwiftUI, including how to make scrolling tabs of content, how to get a parallax scrolling effect, and more.

Existentials and type erasure – part 2
ADVANCED SWIFT

Existentials and type erasure – part 2

In the first part of this tutorial we looked at the underlying problem that type erasure is trying to solve, and tried out Swift’s approach using AnySequence. In this second part we’re going to adapt Swift’s own solution to get real type erasure for our own code.

Creating a ShapeView to render UIBezierPaths
CUSTOM SWIFTUI COMPONENTS

Creating a ShapeView to render UIBezierPaths

Bezier paths let us draw all sorts of shapes efficiently and smoothly, and with a little work we can bring them into SwiftUI then animate them smooth, and in this article I’m going to walk you through making a very simple ShapeView struct to do just that.

Remaking the iOS lock screen
REMAKING APPS

Remaking the iOS lock screen

In this article we’re going to look at how easy it is to rebuild the iOS lock screen. Yes, this isn’t hard, but along the way I think you’ll pick up a few cool SwiftUI tricks, including better date formatting, haptic buttons, and more.

Making the most of optionals
ADVANCED SWIFT

Making the most of optionals

Swift’s optionals are implemented as simple enums, with just a little compiler magic sprinkled around as syntactic sugar. However, they do much more than people realize, and in this article I’m going to demonstrate some of their power features that can really help you write better code – and blow your mind along the way.

Storing preferences efficiently
MAKING THE MOST OF FOUNDATION

Storing preferences efficiently

Apple’s UserDefaults system lets us store small amounts of user data for our app, which might sound simple but it’s deceptively powerful. In this article I’ll show you the correct way to create initial preferences, how to share preferences across applications, how to synchronize data with iCloud, and why this is a case where property wrappers probably aren’t a good solution.

Creating a particle system in SwiftUI
SWIFTUI SPECIAL EFFECTS

Creating a particle system in SwiftUI

Particle systems let us create special effects such as confetti, fire, smoke, rain, and snow, all by adjusting a range of inputs. In this article we’re going to build our own particle system entirely driven by SwiftUI, so you can easily add some sparkle to your apps.

Shadows and glows
SWIFTUI SPECIAL EFFECTS

Shadows and glows

SwiftUI gives us a modifier to make simple shadows, but if you want something more advanced such as inner shadows or glows, you need to do extra work. In this article I’ll show you how to get both those effects and more in a customizable, flexible way.

Making the most of optionals – part 2
ADVANCED SWIFT

Making the most of optionals – part 2

I already introduced how the internals of optionals work, including how they use conditional conformance and how to avoid infinitely sized structs. In this video I’m going to go further as we look at how our knowledge of Optional can be translated to Result, why it’s so important that optionals are functors and monads, and more.

Queues and deques
DATA STRUCTURES

Queues and deques

Now that we’ve covered stacks and linked lists, queues and deques ought to be easier. In this article we’ll build both data structures in just a few lines of Swift, then explore interesting additions such as contains().

Using dates safely and effectively
MAKING THE MOST OF FOUNDATION

Using dates safely and effectively

Working with dates in software is hard, and if you don’t understand why then think about time zones, think about leap years, or think about how it’s the year 2563 in the Thai calendar. Apple gives us many tools for making them easier but they can be hard to discover, so in this article I’m going to try to provide some clear guidance for what to use and when.

Creating a FilteringList to filter a list using text input
CUSTOM SWIFTUI COMPONENTS

Creating a FilteringList to filter a list using text input

Many apps show lots of data in a list, and allow users to filter that list by typing in a text view. In this article we’re going to build that in SwiftUI, then pull it out into a reusable component you can apply anywhere.

Why opaque return types are so important
ADVANCED SWIFT

Why opaque return types are so important

Opaque return types are a powerful feature in Swift, and are also critically important for writing SwiftUI. In this article I’ll be explaining how they work, and why they give us more power than returning a simple protocol.

Existentials and type erasure – part 1
ADVANCED SWIFT

Existentials and type erasure – part 1

Type erasure helps us solve difficult type system problems by purposefully discarding some information. In this article we’ll look at what the underlying problem is and how Swift solves it, and in the second part we’ll continue on to look at how we can build type erasure ourselves.

Creating a spaceship operator
INTERMEDIATE SWIFT

Creating a spaceship operator

When it comes to learning operator overloading, there is one operator that Swift lacks, that many other languages have, and is genuinely useful. In this article I’ll show you how to build the spaceship operator in Swift – it’s surprisingly easy, and useful too.

FAQ


How much does it cost?

Hacking with Swift+ costs $20 a month, paid monthly. Your membership includes all subscriber-only videos and articles available now and published in the future, for as long as your membership remains active. You can cancel your membership at any time, and your access will continue until your term ends.

Why is there no yearly subscription term?

At this time Hacking with Swift+ is only available as a monthly term, because it makes it easier to launch. In the future we might add an annual subscription option, and you'll be able to switch over to it.

How often are you releasing new videos?

Everything starts from zero, and Hacking with Swift+ is no different. But I'm keen to get off zero as fast as possible, which means publishing a lot of new tutorials in these early days. The pace will slow a little once the back catalog is bigger, but there will still be many new tutorials every month.

Are there exercises?

Yes! All Hacking with Swift+ articles end with challenges to help you take your learning further – code to try, problems to solve, questions to consider, and more.

Why do I need a Hacking with Swift account?

Your Hacking with Swift account links your Gumroad purchase to this site, so we can unlock your subscription. This account also allows you to post to the forums if you want to.

Does this give me all your books?

No; the articles produced for Hacking with Swift+ are all new and exclusive to subscribers. The books are separate products and will carry on receiving updates.

How can I cancel my subscription?

If at any point you want to cancel your Hacking with Swift+ subscription, you can do so directly through your Gumroad account. Your access to the subscriber-only content will remain active until your subscription term ends, at which point it will cease.

Will there be sales tax or VAT added to the price?

If you live in a country or state where tax is applied to digital purchases, that will be added to your subscription price. As you might imagine there isn't a lot I can do about that.

Will you still make free tutorials?

Yes, absolutely! I believe it's important to help everyone learn, so I will still be publishing as many free tutorials as I can. This won't be affected by Hacking with Swift+.

Link copied to your pasteboard.