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...
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
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
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.
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.
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.
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
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
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
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?
You after reading Jacob’s Tech Tavern for 10 minutes (sorry for the slop 😅)
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.
First they came for the URL.appendingPathComponent(_:), but I was not a path component, so I said nothing...
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
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
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
Just tried to sign in with 2FA mid-mouthful-of-coffee and oh man is it hard to do without reading out loud
Strictly speaking not tech related but here’s a video of Cody booping my son’s face 🥹
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
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
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.
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.
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. 🤦
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
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” 💀
Indie creator log day 8/100 (before my wife makes me get a real job) ARR growth: +$319, finally, an uptick. I’m up 1% for the week overall. Still not enough though. Spent a bit of time grinding LeetCode in the morning. I realised that it's probably a good idea to stream it because then everyone
My advice to juniors who are worried about the clanker coming for their jobs.
Gonna start live streaming my sweary LeetCode grind.
I've replaced the annoying chores of brushing my teeth and showering with the annoying chore of doing a LeetCode medium every morning. Will keep you updated on how it goes down with my wife.