NEW: Start my new Ultimate Portfolio App course with a free Hacking with Swift+ trial! >>

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.

Ultimate Portfolio App

Your subscription includes access to my Ultimate Portfolio App series, which is a huge course teaching you to build the ideal app to get your next Swift job.

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.

Or see below to get a free trial!

How it works


HWS+ was launched June 1st, and many all-new articles plus accompanying videos have already been posted since then including my incredible new Ultimate Portfolio App series.

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 available now

  • The Ultimate Portfolio App walks you through the process of building one app that implements best practices for architecture, accessibility, testing, documentation, and more, while also working across iOS, macOS, tvOS, and even watchOS.
  • Advanced Swift will focus on improving your core Swift language skills, regardless of whether you use UIKit, SwiftUI, or something else.
  • Algorithms helps you understand common algorithms in computer science, all implemented and explained step by step in Swift.
  • Custom SwiftUI Components will walk you through building a wide variety of reusable UI components using SwiftUI.
  • Data Structures teaches you how to build stacks, lists, trees and more, while working with a variety of common Swift protocols.
  • 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.
  • Intermediate Swift is designed to help push your skills further, giving in-depth explanations for generics, optionals, assertions, and more.
  • Intermediate SwiftUI is packed with tips and tricks to help you write better SwiftUI code, including customizing common controls with styles, handling size classes better, and working with dynamic properties.
  • 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.
  • Remaking Apps walks you through building copies of well-known apps from iOS using SwiftUI, showing you how easy it is to get powerful effects with very little code.
  • Rendering Charts in SwiftUI shows you how SwiftUI can be used to build complete types of charts from scratch, including pie charts, bar charts, 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.
  • Working with Data helps you get to grips with data input, such as creating a custom XML parser, or handling complex or messy JSON.

Each of those courses have had their initial videos published, but many more will continue to come.

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…


Using memoization to speed up slow functions

36:18

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

24:11

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.

Ultimate Portfolio App: Introduction

14:17

ULTIMATE PORTFOLIO APP

FREE: Ultimate Portfolio App: Introduction

While I’m sure you’re keen to get started programming immediately, please give me a few minutes to outline the goals of this course and explain why it’s different from other courses I’ve written.

Trees

31:55

DATA STRUCTURES

FREE: Trees

Trees are an extraordinarily simple, extraordinarily useful data type, and in this article we’ll make a complete tree data type using Swift in just a few minutes. But rather than just stop there, we’re going to do something quite beautiful that I hope will blow your mind while teaching you something useful.

Creating a WaveView to draw smooth waveforms

32:08

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.

Uploading Codable data

27:13

NETWORKING

Uploading Codable data

In a previous article we already looked at a great way to download data using Combine, but in this article we’re going to examine the other side of the problem: uploading Codable data. Apple’s API here is a little gnarly, so I’m going to show you how to wrap it in a neat container using generics and Result.

Advanced string interpolation, part one

24:23

ADVANCED SWIFT

Advanced string interpolation, part one

String interpolation is easy, right? Wrong! String interpolation is actually a huge power feature in Swift, and we have a massive array of functionality on hand to help us customize it. In this article I’ll show you just how much control we have, and how to use that control to make your code easier to read.

Linked lists

29:22

DATA STRUCTURES

Linked lists

If there’s one data structure they just love teaching you at school, it’s linked lists. In this article we’re going to look at why linked lists are so appealing, walk through how to build a linked list with Swift, and look at an alternative approach using enums.

Why opaque return types are so important

12:19

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.

Advanced button customization using ButtonStyle

42:07

INTERMEDIATE SWIFTUI

Advanced button customization using ButtonStyle

Previously we looked at how to create basic button styles that unify your app’s styling efficiently. In this follow-on article we’re going to explore three completely different button styles that show off just what SwiftUI is capable of: glossy marble buttons, classic fantasy buttons, and sci-fi buttons.

User-friendly network access

14:26

NETWORKING

User-friendly network access

Anyone can write Swift code to fetch network data, but much harder is knowing how to write code to do it respectfully. In this article we’ll look at building a considerate network stack, taking into account the user’s connection, preferences, and more.

Queues and deques

28:18

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().

Rendering a pie chart

25:37

RENDERING CHARTS IN SWIFTUI

Rendering a pie chart

Pie charts are a classic way of showing divided data visually, and they represent interesting challenges around sizing and angles. In this article we’ll build a complete pie chart view from scratch using SwiftUI, ensuring it works using animation, and also modify it to support donut-style charts too.

Controlling views using the accelerometer

39:03

SWIFTUI SPECIAL EFFECTS

Controlling views using the accelerometer

Reading device motion and orientation is a fast and slightly magical way to incorporate the real world into your apps, and can do a huge amount to add a little spark of delight to your UI. In this article I’m going to show you how easy it is to control SwiftUI layouts using the accelerometer, and give you a few ideas for special effects.

Creating a TabbedSidebar that handles both tab view and sidebar

14:39

INTERMEDIATE SWIFTUI

Creating a TabbedSidebar that handles both tab view and sidebar

If you want your app to work well on larger devices, you need to support both a sidebar and a tab bar for your primary navigation. In this video I’ll show you how to build one simple SwiftUI component that transitions between both smoothly.

Adding a section header

14:02

ULTIMATE PORTFOLIO APP

Adding a section header

Now that item editing works well, we can add a screen to edit projects. But before we can even think about that we need to add a custom section header to let users select a project to edit.

Making the most of optionals – part 2

20:24

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.

Using dates safely and effectively

18:36

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.

Storing tab selection

12:41

ULTIMATE PORTFOLIO APP

Storing tab selection

Although apps can live in the background for quite a while, eventually they will be terminated. But when a user relaunches them, it’s a good idea to bring them roughly back to where they were, and with state restoration we can do just that.

Merging multiple requests with Combine

22:27

NETWORKING

Merging multiple requests with Combine

In a previous article I showed you a smart, simple and safe way of fetching data from the internet using Combine. This article I want to look at how to handle multiple network requests safely, ensuring that both complete before you update your user interface.

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.