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

Bild

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.

Bild

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.

BildBildBild

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

Bild

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.

BildBild

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

BildBildBild

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

Bild

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

BildBildBild

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

BildBildBild

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

BildBildBild

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.

BildBildBild

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.

BildBildBildBild

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. 🤦

BildBild

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

Bild

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

BildBild