The iOS Weekly Brief – Issue #49
Touchscreen Mac is coming, Xcode 26.3 is out, SwiftUI animation process, SE-0508 trailing closures, automated migration tests and OSLog logging
🆕 What’s New
Apple has its first touchscreen-equipped Mac coming later this year
Mark Gurman confirmed the details on the M6 MacBook Pro: OLED display, Dynamic Island replacing the notch, and a touchscreen that complements keyboard and trackpad rather than replacing them. I've long thought that bringing macOS and iPadOS closer together was the next logical step, and it's nice to finally see it materializing. I now have an official excuse for my smudgy screen: it's not a mess, it's touch workflow in action 🙂
Xcode 26.3 is out, and 26.4 beta is already here
Xcode 26.3 just landed on the App Store with agentic coding as the headline feature: Claude Agent and Codex can now work autonomously inside Xcode, exploring your codebase, searching docs, running builds, and even capturing Xcode Previews to verify their work. Meanwhile, Apple has already shipped Xcode 26.4 beta 2, focused on refinements: image attachments in Swift Testing, severity levels for test issues, and improvements to String Catalogs.
📚 Must Read
The 4-Step Process I Use to Create SwiftUI Animations
Knowing the APIs isn’t enough, you can memorize every animation modifier and still produce animations that feel janky or drain battery. This article walks through a real example of rebuilding iOS’s large title navigation bar animation in a UIKit/SwiftUI hybrid app, and the four-step process the author uses to approach any animation problem. The part about preference keys to avoid triggering hundreds of state updates on every scroll is worth the read alone.
Array Expression Trailing Closures in Swift
SE-0508 removes a long-standing parsing restriction that prevented trailing closures after array and dictionary type expressions. So [String] { ... } now works as a constructor call, just like it does for any custom type. Not a groundbreaking feature, but if you write builder-style APIs or extensions around Array and Dictionary, this removes an annoying workaround you’ve probably hit before.
Preventing Forgotten Database Migrations with Automated Tests
Schema changes are inevitable, and forgetting a migration means existing users hit a broken app on update. The approach here is simple: keep a baseline database file from an older version in your test target, copy it to a temp directory in a test, and try to open it with the current persistence stack. If it throws, the test fails. Works with Core Data, SwiftData, and Realm, and takes maybe an hour to set up.
🛠️ Toolbox
A simple logging framework in Swift
Ever received a bug report that says “it crashed when I opened the app” with nothing else to go on? A solid read on building a lightweight wrapper around Apple’s built-in OSLog, structured logs with categories, automatic rotation, and an export function that pulls the last 24 hours of logs off the device as a text file. No third-party dependencies, no paid services, just clean and practical.
📊 iOS Job Market (USA)
40 new iOS positions this week 1
Senior / Mid / Junior — 45% / 50% / 5%
Most wanted skills: SwiftUI 48% · Core Data 28% · UIKit 25% · Objective-C 20% · Combine 18%
This week’s picks:
iOS Software Engineer, ChatGPT Engineering at OpenAI (San Francisco, CA) — working on the ChatGPT iOS app, pure Swift/SwiftUI stack with a team shipping features to hundreds of millions of users → Apply
Senior iOS Engineer, App Builds at Duolingo (New York, NY) — owning the build infrastructure for the world's most downloaded education app, Swift/SwiftUI at serious scale with 300+ A/B experiments running simultaneously → Apply
Staff iOS Engineer at Intuit (New York, NY) — AI-native fintech behind TurboTax and QuickBooks, SwiftUI focus with explicit push to integrate LLMs into consumer-facing iOS products → Apply
🍬 One More Thing…
Swift Autoclosures - From First Principles to Smarter SwiftUI Validation
You use @autoclosure every day with the nil coalescing operator, but most developers never think about what's actually happening. Worth watching if you've never gone deeper than “??”
🗳️ Weekly Poll
📊 Last Week’s Poll Results
What slows you down the most in iOS development?
Top Answer: Debugging issues
🗓 Upcoming Conferences
February
24–27 — Meet with Apple (Global 🌎)
March
April
12–14 — Try! Swift Tokyo 2026 (Tokyo 🇯🇵)
12–14 — Deep Dish Swift (Chicago 🇺🇸)
May
18–20 — Swift Craft 2026 (Folkestone 🇬🇧)
19–21 — MAU Vegas 2026 (Las Vegas 🇺🇸)
June
3–4 — MDevCamp 2026 (Prague 🇨🇿)
July
7–10 — MacAdmins Conference (State College 🇺🇸)
22–23 — Swift Rockies 2026 (Calgary 🇨🇦)
September
7–11 — Swift Island 2026 (Texel 🇳🇱)
October
7–9 — Next.App DevCon 2026 (Berlin 🇩🇪)
12–14 — SwiftLeeds 2026 (Leeds 🇬🇧)
November
20–22 — SwiftSonic 26 (Nashville 🇺🇸)
👋 That’s it for this week
If you enjoyed this issue of The iOS Weekly Brief, consider forwarding it to a colleague!
Until next Friday — keep shipping 🍏
Counted as iOS positions: roles with “iOS” in the title that require writing code in Swift.


