iOS dev notes, shipped weekly

That SwiftUI Guy

A blog about the stuff between the docs and the App Store — Swift, SwiftUI, UIKit, architecture, tooling, and actually shipping the thing.

// Written by someone who ships apps, not just opinions.

Latest: Taming Swift Concurrency: From Completion Handlers to async/await

FeaturedPostCard.swift
1struct FeaturedPostCard: View {
2 let post: Post
3
4 var body: some View {
5 VStack(alignment: .leading, spacing: 8) {
6 Text(post.tag.rawValue)
7 .font(.system(.caption, design: .monospaced))
8 .foregroundStyle(.accent)
9
10 Text(post.title)
11 .font(.title2.bold())
12 .lineLimit(2)
13
14 Label("\(post.readTime) min read", systemImage: "clock")
15 .foregroundStyle(.secondary)
16 }
17 .padding()
18 }
19}

// about

Hey, I'm that Swift UI guy

I'm an iOS engineer who's spent the last several years taking apps from blank Xcode project to App Store — wiring up StoreKit, untangling concurrency, fighting the layout engine, and learning which “best practices” actually survive contact with a shipping deadline.

This blog is where I write that down. Expect deep dives on SwiftUI internals, pragmatic architecture (VIPER, MVVM, and when to ignore both), UIKit when you still need it, CI/tooling setups, and the occasional App-Store-review war story. Real code, real trade-offs, no cargo-culting.

60+
posts
5
shipped apps
8yrs
iOS in prod

$ subscribe --weekly

One email. Every Friday. No fluff.

The week's post plus a couple of links worth your time — new Swift features, gnarly bug write-ups, and tools I actually use. Unsubscribe anytime.