Jacob Bartlett 🍺
banner
jacobstechtavern.com
Jacob Bartlett 🍺
@jacobstechtavern.com
Writing the #1 iOS newsletter on Substack. Turbocharge your Swift career with in-depth weekly articles 🚀 Sign up free today!

join.jacobstechtavern.com
My life was a lie. It turns out the shiny new Mutex was just syntax sugar on `os_unfair_lock` all along 👻

Read my full article to see how performance of this Mutex in the Synchronisation framework compares against Swift actors: blog.jacobstechtavern.com/p/the-synchr...
November 4, 2025 at 8:00 AM
Indie creator log day 13/100 (before my wife makes me get a real job)

ARR growth: +$636. I can proudly announce I have achieved minimum wage 🎉 If I can release a banger like this every week we might be getting somewhere.

Spent the day rushing to finish my Kotlin Multiplatform
November 3, 2025 at 9:25 PM
It's the "Xbox vs. Playstation" of the multiplatform era. Swift for Android has arisen to challenge the dominance of Kotlin Multiplatform.

The prize? The hearts and souls of native mobile engineers everywhere.
November 3, 2025 at 5:01 PM
SwiftUI is like magic. But, like all well-designed magic systems, it comes with a cost.

What, you thought that beautiful declarative syntax and automatic data bindings come free? Think again.
November 3, 2025 at 8:01 AM
The 120FPS SwiftUI challenge: Pushing LazyVStack with dynamic sizing

Let’s take a look at dynamically-sized cells. Because LazyVStack sizing and layout computations are performed on-demand, we are trading off some accuracy to get this performance.
November 2, 2025 at 5:02 PM
Advanced Swift tips: Argument Attributes

It's not every day a meme gives you imposter syndrome, but this showed me I knew nothing about argument attributes.

To fix this knowledge gap, I built an app implementing a function using @escaping @Sendable @MainActor @autoclosure
November 2, 2025 at 11:00 AM
November 1, 2025 at 9:15 PM
My favourite Swift feature is switching over self on enum computed properties and it’s not close

What’s your favourite?

Master Swift for 10 mins a week @ join.jacobstechtavern.com
November 1, 2025 at 5:00 PM
Jacob’s Tech Tavern is hiring!! 🚀

I need to pay someone £10 a pop to hit me over the head with a bat whenever I touch my Facebook ads

Pls apply in the comments below
November 1, 2025 at 11:29 AM
I need to find a way to integrate these kinds of stats into Jacob's Tech Tavern.

I reckon I'm sleeping on some great viral shareability.

What stats would people like to see?
November 1, 2025 at 11:00 AM
You after reading Jacob’s Tech Tavern for 10 minutes (sorry for the slop 😅)
October 31, 2025 at 8:38 PM
Indie creator log day 10/100 (before my wife makes me get a real job)

ARR growth: +$455 🚀 this is the first day since I started where the ARR growth is actually on-plan, so I’m gonna have a beer to celebrate.

Uuhh I was super busy writing so forgot to do this as I went along.
October 31, 2025 at 7:40 PM
First they came for the URL.appendingPathComponent(_:), but I was not a path component, so I said nothing...
October 31, 2025 at 2:00 PM
Indie creator log day 9/100 (before my wife makes me get a real job)

ARR growth: +$142, despite getting 4 new paid subs in the last 24 hours. Make it make sense!

I spent quite a lot of my day smashing my head against Kotlin Multiplatform and Swift for Android. This is the sort of suffering
October 31, 2025 at 12:58 PM
Swift 6 and iOS 18 introduce the Synchronization framework, containing two new low-level concurrency primitives — Mutex and Atomics. 

These features could only be introduced with Swift 6 because they are implemented using the brand-new generic ownership mechanics. I tested them out and
October 31, 2025 at 11:01 AM
Indie creator log day 9/100 (before my wife makes me get a real job)

ARR growth: +$142, despite getting 4 new paid subs in the last 24 hours. Make it make sense!

I spent quite a lot of my day smashing my head against Kotlin Multiplatform and Swift for Android. This is the sort of suffering I
October 31, 2025 at 8:37 AM
Strictly speaking not tech related but here’s a video of Cody booping my son’s face 🥹
October 31, 2025 at 8:00 AM
The 3 horsemen of Substack
October 30, 2025 at 9:15 PM
Indie creator log day 9/100 (before my wife makes me get a real job)

ARR growth: +$142, despite getting 4 new paid subs in the last 24 hours. Make it make sense!

I spent quite a lot of my day smashing my head against Kotlin Multiplatform and Swift for Android. This is the sort of suffering I
October 30, 2025 at 4:56 PM
Indie creator log day 9/100 (before my wife makes me get a real job)

ARR growth: +$142, despite getting 4 new paid subs in the last 24 hours. Make it make sense!

I spent quite a lot of my day smashing my head against Kotlin Multiplatform and Swift for Android. This is the sort of suffering I
October 30, 2025 at 4:54 PM
LazyVStack got a serious under-the-hood performance upgrade in iOS 18 🦹‍♀️

My vsync and memory profiling massively exceeded my expectations.

I’ve read before that LazyVStack is only lazy one-way; with cells sticking around in memory indefinitely after appearing.
October 30, 2025 at 2:05 PM
The backend-driven SwiftUI spec we designed is flexible enough to use stack layouts and nested navigation links. Using it, we can create a Netflix-style layout with a list of videos alongside a player. (screenshot 1)

We achieve this by adding containers and navigation.
October 30, 2025 at 11:01 AM
Had the stupidest bug ever with SF symbols this week.

Image(systemName: "microphone") worked fine, but broke for my iOS 17 test device. The image simply wasn't there.

The culprit?

The symbol was called "mic" prior to iOS 18. 🤦
October 30, 2025 at 8:00 AM
The website you spent too much time on in the 2010s → the tech company you work for

4chan → X (formerly Tumblr)
MySpace → Meta
Wasn't allowed on the internet → Amazon
Club Penguin → Microsoft
Formspring → TikTok
Habbo Hotel → Airbnb
StumbleUpon → YouTube
Newgrounds → Google
October 29, 2025 at 9:45 PM
My 4-year-old daughter just ended my career again

Me: “Why do you keep going into mummy’s office and interrupting her, but you never do it to me?

4 y.o.: “Because you never work” 💀
October 29, 2025 at 8:17 PM