Jacob Bartlett 🍺 @jacobstechtavern.com · 04/11/2025My 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... 040
Jacob Bartlett 🍺 @jacobstechtavern.com · 03/11/2025Indie 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 220
Jacob Bartlett 🍺 @jacobstechtavern.com · 03/11/2025It'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. 120
Jacob Bartlett 🍺 @jacobstechtavern.com · 03/11/2025SwiftUI 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. 100
Jacob Bartlett 🍺 @jacobstechtavern.com · 02/11/2025The 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. 140
Jacob Bartlett 🍺 @jacobstechtavern.com · 02/11/2025Advanced 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 250
Jacob Bartlett 🍺 @jacobstechtavern.com · 01/11/2025My 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 040
Jacob Bartlett 🍺 @jacobstechtavern.com · 01/11/2025Jacob’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 000
Jacob Bartlett 🍺 @jacobstechtavern.com · 01/11/2025I 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? 000
Jacob Bartlett 🍺 @jacobstechtavern.com · 31/10/2025You after reading Jacob’s Tech Tavern for 10 minutes (sorry for the slop 😅) 000
Jacob Bartlett 🍺 @jacobstechtavern.com · 31/10/2025Indie 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. 100
Jacob Bartlett 🍺 @jacobstechtavern.com · 31/10/2025First they came for the URL.appendingPathComponent(_:), but I was not a path component, so I said nothing... 010
Jacob Bartlett 🍺 @jacobstechtavern.com · 31/10/2025Indie 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 220
Jacob Bartlett 🍺 @jacobstechtavern.com · 31/10/2025Swift 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 110
Jacob Bartlett 🍺 @jacobstechtavern.com · 31/10/2025Indie 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 100
Jacob Bartlett 🍺 @jacobstechtavern.com · 31/10/2025Just tried to sign in with 2FA mid-mouthful-of-coffee and oh man is it hard to do without reading out loud 000
Jacob Bartlett 🍺 @jacobstechtavern.com · 31/10/2025Strictly speaking not tech related but here’s a video of Cody booping my son’s face 🥹 000
Jacob Bartlett 🍺 @jacobstechtavern.com · 30/10/2025Indie 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 110
Jacob Bartlett 🍺 @jacobstechtavern.com · 30/10/2025Indie 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 110
Jacob Bartlett 🍺 @jacobstechtavern.com · 30/10/2025LazyVStack 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. 220
Jacob Bartlett 🍺 @jacobstechtavern.com · 30/10/2025The 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. 100
Jacob Bartlett 🍺 @jacobstechtavern.com · 30/10/2025Had 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. 🤦 100
Jacob Bartlett 🍺 @jacobstechtavern.com · 29/10/2025The 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 000
Jacob Bartlett 🍺 @jacobstechtavern.com · 29/10/2025My 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” 💀 020
Jacob Bartlett 🍺 @jacobstechtavern.com · 29/10/2025Indie 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 120
Jacob Bartlett 🍺 @jacobstechtavern.com · 29/10/2025My advice to juniors who are worried about the clanker coming for their jobs. 100
Jacob Bartlett 🍺 @jacobstechtavern.com · 29/10/2025Gonna start live streaming my sweary LeetCode grind. 000
Jacob Bartlett 🍺 @jacobstechtavern.com · 29/10/2025I'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. 010
Jacob Bartlett 🍺 @jacobstechtavern.com · 29/10/2025Should I drop everything and do a Swift Android SDK article? 140
Jacob Bartlett 🍺 @jacobstechtavern.com · 29/10/2025Why I’m still long Apple (and would invest if I had money) 000
Jacob Bartlett 🍺 @jacobstechtavern.com · 28/10/2025Put quite a lot of effort into this Reddit comment, so I thought I should share it here too. Source: the actual school of hard knocks → blog.jacobstechtavern.com/p/the-side-h... 000
Jacob Bartlett 🍺 @jacobstechtavern.com · 28/10/2025Indie creator log day 6/100 & 7/100 (before my wife makes me get a real job) ARR growth: flat. For now. No update yesterday; my baby was sick so did a tiny bit of stuff 1-handed before playing Metroid Dread with him asleep on me. 110
Jacob Bartlett 🍺 @jacobstechtavern.com · 28/10/2025Nothing like some writing and self-loathing to close out the day 000
Jacob Bartlett 🍺 @jacobstechtavern.com · 28/10/2025I’m religious when it suits me. More specifically, I worship gods. Those 10x engineers who can do stuff with technology I can only dream of being capable of. Today, I’m praying to MxIris, who can look inside Apple’s private frameworks and extract all the internal Swift code like it’s nothing. 121
Jacob Bartlett 🍺 @jacobstechtavern.com · 28/10/2025What software project has the most users per line of code? Can’t be Facebook or Google with billions of lines and users. Linux might be up there. I’m guessing something like cURL? 210
Jacob Bartlett 🍺 @jacobstechtavern.com · 27/10/2025Free article unlocked 🔓 "The Terrible Technical Architecture of my First Startup" I tell the story of the systems I created at Carbn, my first startup, and the decisions I made as the tech cofounder to carry an app business, from scratch. We’ll look at: 100
Jacob Bartlett 🍺 @jacobstechtavern.com · 27/10/2025Facebook ads are funny as an indie because they unlock sustainable, profitable, scaling growth, but you have to be willing to light £1000 of your own money on fire to get there 000
Jacob Bartlett 🍺 @jacobstechtavern.com · 27/10/2025“Interprocess communication on the main thread can cause non-deterministic delays.” Anyone seen this error before? What does it mean? 220
Jacob Bartlett 🍺 @jacobstechtavern.com · 27/10/2025autoreleasepool in practice: reducing peak memory footprint With an autoreleasepool block, each UIImage and file data in our loop are released upon leaving the scope of the pool. Therefore the loop iterations don’t add up, and peak memory use stays nice and level. 100
Jacob Bartlett 🍺 @jacobstechtavern.com · 26/10/2025I have this amazing guru teaching me a hip new polyphasic sleep routine: 10pm-1am, 2am-3:30am, and 4am-6am Sorry did I say guru I meant infant son 030
Jacob Bartlett 🍺 @jacobstechtavern.com · 26/10/2025Indie creator log day 6/100 (before my wife makes me get a real job) ARR pretty much flat for the week. Truly, life is the agony we endure between banger articles Going to start work on concurrency practical Kata to supplement my course, which will likely help my paid value prop. 010
Jacob Bartlett 🍺 @jacobstechtavern.com · 26/10/2025How to achieve ultimate Swift power: - 100 protocol extensions - 100 if case lets - 100 Combine operator chains - and 10km of Swift 6 concurrency warnings Every single day. 020
Jacob Bartlett 🍺 @jacobstechtavern.com · 25/10/2025Accidentally sent a memoji to someone kill me now 000
Jacob Bartlett 🍺 @jacobstechtavern.com · 25/10/2025I’m basically Hannibal Lecter excerpt without the eating people 000
Jacob Bartlett 🍺 @jacobstechtavern.com · 25/10/2025Indie creator log day 5/100 (before my wife makes me get a real job) ARR growth: +$124 💸 I still kinda need to 4x this or I’m getting nowhere. I tell myself I’m focusing on the top-of-funnel free subs this month. Not much work today because kids. Writing this intermittently as I get baby to sleep. 110
Jacob Bartlett 🍺 @jacobstechtavern.com · 25/10/2025How to achieve ultimate Swift power: - 100 protocol extensions - 100 if case lets - 100 Combine operator chains - and 10km of Swift 6 concurrency warnings Every single day. 010