Snapp iOS Weekly

@snappiosweekly.bsky.social

Weekly Swift & iOS dev insights from @snappmobile.bsky.social ๐Ÿ“ฌ https://ios-newsletter.snappmobile.io/subscribe.html

๐Ÿ’ก ๐‘‡โ„Ž๐‘’ ๐ด๐‘›๐‘Ž๐‘ก๐‘œ๐‘š๐‘ฆ ๐‘œ๐‘“ ๐‘Ž ๐‘…๐‘’๐‘ข๐‘ ๐‘Ž๐‘๐‘™๐‘’ ๐‘†๐‘ค๐‘–๐‘“๐‘ก๐‘ˆ๐ผ ๐‘‰๐‘–๐‘’๐‘ค by Alexander Weiss Reusable SwiftUI views go bad fast when we design them like private helper functions instead of tiny platform citizens. #iOSDev #SwiftUI #Apple alexanderweiss.dev/blog/2026-07...

The Anatomy of a Reusable SwiftUI View

Whenever I build a custom reusable SwiftUI view as part of a larger application's design system, I follow the same principle: design its API to be as close asโ€ฆ

alexanderweiss.dev

๐Ÿš€ ๐‘†๐‘’๐‘š๐‘Ž๐‘›๐‘ก๐‘–๐‘ ๐ด๐‘๐‘๐‘’๐‘ ๐‘ ๐‘–๐‘๐‘–๐‘™๐‘–๐‘ก๐‘ฆ ๐‘–๐‘› ๐‘†๐‘ค๐‘–๐‘“๐‘ก๐‘ˆ๐ผ by Wesley de Groot (@0xwdg.bsky.social) SwiftUI gives us a decent accessibility baseline, but semantics are where our apps start feeling built for real people instead of merely passing a quick audit. #iOSDev #SwiftUI wesleydegroot.nl/blog/semanti...

Semantic Accessibility in SwiftUI - Wesley de Groot

SwiftUI does a lot of accessibility work for you automatically, but understanding how to add semantic meaning โ€” labels, hints, values, and element...

wesleydegroot.nl

๐ŸŽจ ๐‘‡โ„Ž๐‘’ โ„Ž๐‘–๐‘‘๐‘‘๐‘’๐‘› ๐‘๐‘œ๐‘ ๐‘ก ๐‘œ๐‘“ ๐‘ข๐‘›๐‘ ๐‘ก๐‘Ž๐‘๐‘™๐‘’ ๐‘†๐‘ค๐‘–๐‘“๐‘ก๐‘ˆ๐ผ ๐‘’๐‘›๐‘ฃ๐‘–๐‘Ÿ๐‘œ๐‘›๐‘š๐‘’๐‘›๐‘ก ๐‘‘๐‘’๐‘“๐‘Ž๐‘ข๐‘™๐‘ก๐‘  by Natalia Panferova (@natpanferova.bsky.social) A tiny SwiftUI default value can accidentally become a little invalidation machine, quietly re-rendering more than it should. #iOSDev #SwiftUI #Performance nilcoalescing.com/blog/Unstabl...

The hidden cost of unstable SwiftUI environment defaults

Learn why Xcode 27 shows a warning when an @Entry declaration creates a new class instance for every fallback access, how unstable environment defaults can cause unnecessary SwiftUI view updates, andโ€ฆ

nilcoalescing.com

๐Ÿ“ฑ ๐ป๐‘œ๐‘ค ๐‘ก๐‘œ ๐‘“๐‘Ÿ๐‘’๐‘’ ๐‘ข๐‘ ๐‘‹๐‘๐‘œ๐‘‘๐‘’ ๐‘‘๐‘–๐‘ ๐‘˜ ๐‘ ๐‘๐‘Ž๐‘๐‘’ ๐‘ ๐‘Ž๐‘“๐‘’๐‘™๐‘ฆ ๐‘ค๐‘–๐‘กโ„Ž ๐‘Ž๐‘› ๐ด๐ผ ๐ด๐‘”๐‘’๐‘›๐‘ก by Antoine van der Lee (@avanderlee.com) Xcode has always eaten disk space, but agentic development makes the problem louder: worktrees, Derived Data everywhere, old runtimes, archives we are scared to delete,โ€ฆ #iOSDev #Xcode

How to free up Xcode disk space safely with an AI Agent

Free up Xcode disk space by letting an AI agent audit Derived Data, simulators, runtimes, archives, and caches before you approve cleanup.

avanderlee.com

๐Ÿ“Š ๐ต๐‘ข๐‘–๐‘™๐‘‘ ๐ด๐‘”๐‘’๐‘›๐‘ก๐‘–๐‘ ๐‘†๐‘ค๐‘–๐‘“๐‘ก ๐ด๐‘๐‘๐‘  ๐‘Š๐‘–๐‘กโ„Ž ๐ท๐‘ฆ๐‘›๐‘Ž๐‘š๐‘–๐‘ ๐‘ƒ๐‘Ÿ๐‘œ๐‘“๐‘–๐‘™๐‘’๐‘  by Trevor Whittingham Dynamic Profiles in Foundation Models feel like one of those APIs that exists because the first wave of demos created a very real mess. #iOSDev www.theswift.dev/posts/founda...

Build Agentic Swift Apps With Dynamic Profiles | The Swift Dev

Foundation Models Dynamic Profiles let one LanguageModelSession switch instructions, tools, models, and reasoning level as app state changes. That is the missing shape for agentic Swift features.

theswift.dev

๐Ÿ”ถ ๐ด๐‘‘๐‘ฃ๐‘Ž๐‘›๐‘๐‘’๐‘‘ ๐‘†๐‘ค๐‘–๐‘“๐‘ก: ๐‘‚๐‘๐‘ก๐‘–๐‘œ๐‘›๐‘Ž๐‘™๐‘  by Okan Orkun Optionals are one of those Swift features we all use daily, then occasionally misuse in ways that make our codebase feel haunted. #iOSDev medium.com/icommunity/a...

Advanced Swift: Optionals

In my previous articles, I talked about performance problems in Arrays, Dictionaries and Sets&Ranges. We saw how picking the right dataโ€ฆ

medium.com

๐Ÿ“ข ๐—œ๐˜€๐˜€๐˜‚๐—ฒ ๐Ÿญ๐Ÿฌ๐Ÿฏ ๐—ถ๐˜€ ๐—ผ๐˜‚๐˜! Featuring: ๐Ÿ”ถ ๐ด๐‘‘๐‘ฃ๐‘Ž๐‘›๐‘๐‘’๐‘‘ ๐‘†๐‘ค๐‘–๐‘“๐‘ก ๐Ÿ“Š ๐ต๐‘ข๐‘–๐‘™๐‘‘ ๐ด๐‘”๐‘’๐‘›๐‘ก๐‘–๐‘ ๐‘†๐‘ค๐‘–๐‘“๐‘ก ๐ด๐‘๐‘๐‘  ๐ท๐‘ฆ๐‘›๐‘Ž๐‘š๐‘–๐‘ ๐‘ƒ๐‘Ÿ๐‘œ๐‘“๐‘–๐‘™๐‘’๐‘  ๐Ÿ“ฑ ๐น๐‘Ÿ๐‘’๐‘’ ๐‘ข๐‘ ๐‘‹๐‘๐‘œ๐‘‘๐‘’ ๐‘‘๐‘–๐‘ ๐‘˜ ๐‘ ๐‘๐‘Ž๐‘๐‘’ ๐‘ ๐‘Ž๐‘“๐‘’๐‘™๐‘ฆ ๐ด๐ผ ๐ด๐‘”๐‘’๐‘›๐‘ก ๐ŸŽจ ๐ป๐‘–๐‘‘๐‘‘๐‘’๐‘› ๐‘๐‘œ๐‘ ๐‘ก ๐‘ข๐‘›๐‘ ๐‘ก๐‘Ž๐‘๐‘™๐‘’ ๐‘†๐‘ค๐‘–๐‘“๐‘ก๐‘ˆ๐ผ ๐‘’๐‘›๐‘ฃ ๐‘‘๐‘’๐‘“๐‘Ž๐‘ข๐‘™๐‘ก๐‘  ๐Ÿš€ ๐‘†๐‘’๐‘š๐‘Ž๐‘›๐‘ก๐‘–๐‘ ๐ด๐‘๐‘๐‘’๐‘ ๐‘ ๐‘–๐‘๐‘–๐‘™๐‘–๐‘ก๐‘ฆ ๐Ÿ’ก ๐ด๐‘›๐‘Ž๐‘ก๐‘œ๐‘š๐‘ฆ ๐‘…๐‘’๐‘ข๐‘ ๐‘Ž๐‘๐‘™๐‘’ ๐‘‰๐‘–๐‘’๐‘ค ๐Ÿ› ๏ธ ๐‘†๐‘ค๐‘–๐‘“๐‘ก๐‘†๐‘ก๐‘Ž๐‘ โ„Ž ๐Ÿง  ๐‘†๐‘ก๐‘Ž๐‘Ÿ๐‘™๐‘–๐‘›๐‘” #Swift #iOSDev

iOS Newsletter Issue 103

Hi folks!

ios-newsletter.snappmobile.io

๐Ÿ› ๏ธ ๐‘ก๐‘Ÿ๐‘Ž๐‘›๐‘ ๐‘๐‘Ÿ๐‘–๐‘๐‘’.๐‘๐‘๐‘ by CJ Pais Local speech-to-text that actually runs fast on Apple Silicon is a game changer. This library brings a massive range of models to the Metal backend via ggml. #iOSDev #Apple github.com/handy-comput...

GitHub - handy-computer/transcribe.cpp: ggml speech-to-text inference for 16+ model families

ggml speech-to-text inference for 16+ model families - handy-computer/transcribe.cpp

github.com

๐Ÿ’ก ๐‘†๐‘ฆ๐‘›๐‘๐‘–๐‘›๐‘” ๐‘†๐‘ค๐‘–๐‘“๐‘ก๐ท๐‘Ž๐‘ก๐‘Ž ๐‘Š๐‘–๐‘กโ„Ž ๐ด ๐ถ๐‘ข๐‘ ๐‘ก๐‘œ๐‘š ๐ต๐‘Ž๐‘๐‘˜๐‘’๐‘›๐‘‘ ๐‘ˆ๐‘ ๐‘–๐‘›๐‘” ๐ป๐‘–๐‘ ๐‘ก๐‘œ๐‘Ÿ๐‘ฆ๐‘‚๐‘๐‘ ๐‘’๐‘Ÿ๐‘ฃ๐‘’๐‘Ÿ by Mohammad Azam (@azamsharp.bsky.social) Syncing SwiftData to a custom backend used to be a nightmare of manual tracking. ๐ป๐‘–๐‘ ๐‘ก๐‘œ๐‘Ÿ๐‘ฆ๐‘‚๐‘๐‘ ๐‘’๐‘Ÿ๐‘ฃ๐‘’๐‘Ÿ in iOS 27 finally gives us a centralized way to watch the ledger. #iOSDev

Syncing Swiftdata With A Custom Backend Using Historyobserver

Syncing SwiftData with a Custom Backend Using HistoryObserver

azamsharp.com

๐Ÿš€ ๐‘†๐‘ค๐‘–๐‘“๐‘ก๐‘ˆ๐ผ ๐ผ๐‘  ๐‘‚๐‘›๐‘’ ๐บ๐‘Ÿ๐‘Ž๐‘โ„Ž, ๐‘‚๐‘ฃ๐‘’๐‘Ÿ 40+ ๐‘Œ๐‘’๐‘Ž๐‘Ÿ๐‘  ๐‘œ๐‘“ ๐ธ๐‘›๐‘”๐‘–๐‘›๐‘’๐‘’๐‘Ÿ๐‘–๐‘›๐‘” by Mihaela Jakiฤ‡ Stop thinking of SwiftUI as a view tree; it's a demand-driven attribute graph. #iOSDev #SwiftUI aleahim.com/blog/swiftui...

SwiftUI Is One Graph, Over 40+ Years of Engineering

SwiftUI is the thin graph sitting above 40+ years of engineering. Measured against the real framework and read against Apple's own patent, it is a single demand-driven graph, and the least remarkableโ€ฆ

aleahim.com

๐Ÿ“ฑ ๐ต๐‘ข๐‘–๐‘™๐‘‘๐‘–๐‘›๐‘” ๐ด๐‘‘๐‘Ž๐‘๐‘ก๐‘–๐‘ฃ๐‘’ ๐‘๐‘œ๐‘›-๐‘€๐‘œ๐‘‘๐‘Ž๐‘™ ๐‘ƒ๐‘Ž๐‘›๐‘’๐‘™๐‘  ๐‘–๐‘› ๐‘†๐‘ค๐‘–๐‘“๐‘ก๐‘ˆ๐ผ by Matthaus Woolard (@hishnash.bsky.social) With the new resizability requirements in iOS 27, the old sheet APIs just don't cut it for landscape on iPhone. #iOSDev #SwiftUI nilcoalescing.com/blog/Buildin...

Building adaptive non-modal panels in SwiftUI

Learn how to build a non-modal, detent-based sheet API in SwiftUI that adapts from a bottom panel in portrait to an edge-aligned panel in landscape.

nilcoalescing.com

๐ŸŽจ ๐บ๐‘’๐‘œ๐‘š๐‘’๐‘ก๐‘Ÿ๐‘ฆ, ๐ถ๐‘œ๐‘š๐‘๐‘œ๐‘ ๐‘–๐‘ก๐‘–๐‘›๐‘” ๐‘Ž๐‘›๐‘‘ ๐ท๐‘Ÿ๐‘Ž๐‘ค๐‘–๐‘›๐‘” ๐บ๐‘Ÿ๐‘œ๐‘ข๐‘๐‘  ๐‘–๐‘› ๐‘†๐‘ค๐‘–๐‘“๐‘ก๐‘ˆ๐ผ by Natalia Panferova (@natpanferova.bsky.social) Ever wondered why your SwiftUI animation looks like it's falling apart? It's usually a geometry or compositing boundary issue. #iOSDev #SwiftUI nilcoalescing.com/blog/Geometr...

Geometry, compositing and drawing groups in SwiftUI

Learn how SwiftUI's similarly named geometryGroup(), compositingGroup() and drawingGroup() modifiers affect distinct stages of animation and rendering, and when each is appropriate.

nilcoalescing.com

๐Ÿงฉ ๐‘€๐‘Ž๐‘ ๐‘ก๐‘’๐‘Ÿ๐‘–๐‘›๐‘” ๐‘กโ„Ž๐‘’ ๐‘€๐‘œ๐‘‘๐‘’๐‘™ ๐ฟ๐‘Ž๐‘ฆ๐‘’๐‘Ÿ: ๐ผ๐‘Ÿ๐‘œ๐‘›-๐ถ๐‘™๐‘Ž๐‘‘ ๐‘†๐‘ก๐‘Ž๐‘ก๐‘’ ๐‘€๐‘Ž๐‘›๐‘Ž๐‘”๐‘’๐‘š๐‘’๐‘›๐‘ก ๐‘–๐‘› ๐‘€๐‘œ๐‘‘๐‘’๐‘™-๐ท๐‘Ÿ๐‘–๐‘ฃ๐‘’๐‘› ๐ด๐‘๐‘๐‘  by Lucas van D Let's be honest, we've seen devs that just shoehorn state into ViewModels and hope for the best until the app becomes a tangled mess of "bucket-brigade" updates. #Testing getstream.io/blog/mvvm-st...

Mastering the Model Layer: Iron-Clad State Management in Model-Driven Apps

Model-driven architectures have dominated the iOS development landscape. In this article, you will learn to make State the center of your application and use the Model layer.

getstream.io

๐Ÿ“Š ๐ป๐‘œ๐‘ค ๐‘‘๐‘–๐‘‘ ๐ด๐‘๐‘๐‘™๐‘’ ๐‘๐‘ข๐‘ก ๐‘™๐‘Ž๐‘ข๐‘›๐‘โ„Ž ๐‘ก๐‘–๐‘š๐‘’ ๐‘๐‘ฆ 30% ๐‘–๐‘› ๐‘–๐‘‚๐‘† 27? by Jacob Bartlett (@jacobstechtavern.com) Apple claims a 30% boost in launch times for iOS 27, and the Instruments traces mostly back it up. #iOSDev #Apple blog.jacobstechtavern.com/p/ios-27-lau...

How did Apple cut launch time by 30% in iOS 27?

An Instruments-flavoured optimisation deep-dive.

blog.jacobstechtavern.com

๐Ÿ”ถ ๐‘‡๐‘ฆ๐‘๐‘’๐‘Ž๐‘™๐‘–๐‘Ž๐‘  ๐‘ˆ๐‘ ๐‘Ž๐‘”๐‘’ ๐‘–๐‘› ๐‘†๐‘ค๐‘–๐‘“๐‘ก by Antoine van der Lee (@avanderlee.com) Typealiases aren't just for fancy-looking signatures; they're about making the codebase actually speak the language of the business. #iOSDev www.avanderlee.com/swift/typeal...

Typealias usage in Swift

A typealias can improve the readability of your codebase. Combine it with generics and see some common used examples to see how it can improve your code.

avanderlee.com

๐Ÿ“ข ๐—œ๐˜€๐˜€๐˜‚๐—ฒ ๐Ÿญ๐Ÿฌ๐Ÿฎ ๐—ถ๐˜€ ๐—ผ๐˜‚๐˜! Featuring: ๐Ÿ”ถ ๐‘‡๐‘ฆ๐‘๐‘’๐‘Ž๐‘™๐‘–๐‘Ž๐‘  ๐‘ˆ๐‘ ๐‘Ž๐‘”๐‘’ ๐‘†๐‘ค๐‘–๐‘“๐‘ก ๐Ÿ“Š ๐ด๐‘๐‘๐‘™๐‘’'๐‘  30% ๐ฟ๐‘Ž๐‘ข๐‘›๐‘โ„Ž ๐ต๐‘œ๐‘œ๐‘ ๐‘ก ๐Ÿงฉ ๐‘€๐‘Ž๐‘ ๐‘ก๐‘’๐‘Ÿ๐‘–๐‘›๐‘” ๐‘€๐‘œ๐‘‘๐‘’๐‘™ ๐ฟ๐‘Ž๐‘ฆ๐‘’๐‘Ÿ ๐ŸŽจ ๐บ๐‘’๐‘œ๐‘š๐‘’๐‘ก๐‘Ÿ๐‘ฆ, ๐ถ๐‘œ๐‘š๐‘๐‘œ๐‘ ๐‘–๐‘ก๐‘–๐‘›๐‘” ๐ท๐‘Ÿ๐‘Ž๐‘ค๐‘–๐‘›๐‘” ๐Ÿ“ฑ ๐ต๐‘ข๐‘–๐‘™๐‘‘๐‘–๐‘›๐‘” ๐ด๐‘‘๐‘Ž๐‘๐‘ก๐‘–๐‘ฃ๐‘’ ๐‘๐‘œ๐‘›-๐‘€๐‘œ๐‘‘๐‘Ž๐‘™ ๐Ÿš€ ๐‘†๐‘ค๐‘–๐‘“๐‘ก๐‘ˆ๐ผ ๐‘‚๐‘›๐‘’ ๐บ๐‘Ÿ๐‘Ž๐‘โ„Ž, ๐Ÿ’ก ๐‘†๐‘ฆ๐‘›๐‘๐‘–๐‘›๐‘” ๐‘†๐‘ค๐‘–๐‘“๐‘ก๐ท๐‘Ž๐‘ก๐‘Ž ๐ถ๐‘ข๐‘ ๐‘ก๐‘œ๐‘š ๐Ÿ› ๏ธ ๐‘‡๐‘Ÿ๐‘Ž๐‘›๐‘ ๐‘๐‘Ÿ๐‘–๐‘๐‘’.๐‘๐‘๐‘ #Swift #iOSDev ios-newsletter.snappmobile.io/issues/2026-...

iOS Newsletter Issue 102

Hi again!

ios-newsletter.snappmobile.io

๐ŸŽจ ๐‘‡โ„Ž๐‘’ ๐‘๐‘œ๐‘ค๐‘’๐‘Ÿ ๐‘œ๐‘“ ๐‘๐‘Ÿ๐‘’๐‘ฃ๐‘–๐‘’๐‘ค๐‘  ๐‘–๐‘› ๐‘‹๐‘๐‘œ๐‘‘๐‘’ by Majid Jabrayilov (@mecid.bsky.social) Previews keep getting better, and the newer pieces are more than convenience sugar. #iOSDev #Xcode swiftwithmajid.com/2024/11/26/t...

The power of previews in Xcode

Previews in Xcode become more powerful every year. Previews in Xcode are not about SwiftUI; you can use them even with UIKit. This week, we will talk about enhancing Previewable and PreviewModifierโ€ฆ

swiftwithmajid.com

๐ŸŽจ ๐ด ๐‘Š๐‘Š๐ท๐ถ 26 ๐‘ˆ๐‘๐‘‘๐‘Ž๐‘ก๐‘’ ๐‘œ๐‘› ๐ต๐‘ข๐‘–๐‘™๐‘‘๐‘–๐‘›๐‘” ๐‘Ž ๐‘€๐‘Ž๐‘-๐‘Ž๐‘ ๐‘ ๐‘’๐‘‘ ๐ด๐‘๐‘ ๐‘ค๐‘–๐‘กโ„Ž ๐‘†๐‘ค๐‘–๐‘“๐‘ก๐‘ˆ๐ผ by Paulo Andrade A good follow-up for anyone trying to make SwiftUI feel properly Mac-like instead of โ€œiOS app wearing a menu bar.โ€ #iOSDev #SwiftUI pfandrade.me/blog/swiftui...

A WWDC 26 Update on Building a Mac-assed App with SwiftUI - Paulo's Blog

Iโ€™m Paulo. A software developer based in Lisbon, Portugal, founder of Outer Corner, currently building apps for Apple platforms.

pfandrade.me

๐Ÿ› ๏ธ ๐‘†๐‘๐‘’๐‘ ๐พ๐‘–๐‘ก (๐‘†๐‘๐‘’๐‘-๐ท๐‘Ÿ๐‘–๐‘ฃ๐‘’๐‘› ๐ท๐‘’๐‘ฃ๐‘’๐‘™๐‘œ๐‘๐‘š๐‘’๐‘›๐‘ก) ๐‘–๐‘› ๐‘Ž๐‘› ๐‘–๐‘‚๐‘† ๐‘ƒ๐‘Ÿ๐‘œ๐‘—๐‘’๐‘๐‘ก by Emre Degirmenci (@emredeg.bsky.social) Spec-driven development feels like the needed backlash to โ€œprompt, pray, accept diff.โ€ #iOSDev #SwiftUI #Testing emredegirmenci.substack.com/p/spec-kit-s...

Spec Kit (Spec-Driven Development) in an iOS Project

From vibe coding to Spec-Driven Development: shipping a SwiftUI + TCA feature with GitHub Spec Kit inside Cursor

emredegirmenci.substack.com

๐Ÿ“ฑ ๐ต๐‘ข๐‘–๐‘™๐‘‘๐‘–๐‘›๐‘” ๐‘Ž๐‘›๐‘‘ ๐‘†โ„Ž๐‘–๐‘๐‘๐‘–๐‘›๐‘” ๐‘€๐‘Ž๐‘ ๐‘Ž๐‘›๐‘‘ ๐‘–๐‘‚๐‘† ๐ด๐‘๐‘๐‘  ๐‘Š๐‘–๐‘กโ„Ž๐‘œ๐‘ข๐‘ก ๐ธ๐‘ฃ๐‘’๐‘Ÿ ๐‘‚๐‘๐‘’๐‘›๐‘–๐‘›๐‘” ๐‘‹๐‘๐‘œ๐‘‘๐‘’ by Scott Willsey (@scottwillsey.com) Xcode still needs to be installed, yes, but it does not need to be the room we live in. #iOSDev #Xcode scottwillsey.com/building-and...

Building and Shipping Mac and iOS Apps Without Ever Opening Xcode

Stop looking at Xcode. It's not fun. Unless it is! In which case, do it!

scottwillsey.com

๐Ÿ” ๐‘ˆ๐‘ ๐‘’๐‘Ÿ ๐ท๐‘–๐‘Ž๐‘”๐‘›๐‘œ๐‘ ๐‘ก๐‘–๐‘๐‘  ๐‘…๐‘’๐‘๐‘œ๐‘Ÿ๐‘ก๐‘ : ๐‘†๐‘œ๐‘™๐‘ฃ๐‘–๐‘›๐‘” ๐‘Ž๐‘๐‘ ๐‘๐‘ข๐‘”๐‘  ๐‘“๐‘Ž๐‘ ๐‘ก๐‘’๐‘Ÿ ๐‘ค๐‘–๐‘กโ„Ž ๐ด๐ผ ๐ด๐‘”๐‘’๐‘›๐‘ก๐‘  by Antoine van der Lee (@avanderlee.com) Diagnostics reports are one of those boring-sounding features that become gold the first time a user says โ€œit doesnโ€™t workโ€ and gives you nothing else. #iOSDev

User Diagnostics Reports: Solving app bugs faster with AI Agents

Learn how user diagnostics reports help solve app bugs faster by sharing structured logs, crash details, and app context with AI agents.

avanderlee.com

๐Ÿ”’ ๐‘‡๐‘Ž๐‘ ๐‘˜ ๐‘Ž๐‘™๐‘–๐‘ฃ๐‘’ ๐‘‘๐‘ข๐‘Ÿ๐‘Ž๐‘ก๐‘–๐‘œ๐‘› ๐‘คโ„Ž๐‘’๐‘› ๐‘‘๐‘’๐‘ฃ๐‘–๐‘๐‘’ ๐‘–๐‘  ๐‘™๐‘œ๐‘๐‘˜๐‘’๐‘‘ by Apple Developer Forums A crisp reminder that a Swift ๐‘‡๐‘Ž๐‘ ๐‘˜ is not a magic background execution coupon. #iOSDev developer.apple.com/forums/threa...

Task alive duration when device isโ€ฆ | Apple Developer Forums

Hello everybody.

developer.apple.com

๐Ÿ“ข ๐—œ๐˜€๐˜€๐˜‚๐—ฒ ๐Ÿญ๐Ÿฌ๐Ÿญ ๐—ถ๐˜€ ๐—ผ๐˜‚๐˜! Featuring: ๐Ÿ”’ ๐‘‡๐‘Ž๐‘ ๐‘˜ ๐‘Ž๐‘™๐‘–๐‘ฃ๐‘’ ๐‘‘๐‘ข๐‘Ÿ๐‘Ž๐‘ก๐‘–๐‘œ๐‘› ๐Ÿ” ๐‘ˆ๐‘ ๐‘’๐‘Ÿ ๐ท๐‘–๐‘Ž๐‘”๐‘›๐‘œ๐‘ ๐‘ก๐‘–๐‘๐‘  ๐‘…๐‘’๐‘๐‘œ๐‘Ÿ๐‘ก๐‘  ๐Ÿ“ฑ ๐‘†โ„Ž๐‘–๐‘๐‘๐‘–๐‘›๐‘” ๐‘ค๐‘–๐‘กโ„Ž๐‘œ๐‘ข๐‘ก ๐‘‹๐‘๐‘œ๐‘‘๐‘’ ๐Ÿ› ๏ธ ๐‘†๐‘๐‘’๐‘ ๐พ๐‘–๐‘ก ๐ŸŽจ ๐‘Š๐‘Š๐ท๐ถ 26 ๐‘ˆ๐‘๐‘‘๐‘Ž๐‘ก๐‘’ ๐Ÿš€ ๐‘ƒ๐‘œ๐‘ค๐‘’๐‘Ÿ ๐‘œ๐‘“ ๐‘ƒ๐‘Ÿ๐‘’๐‘ฃ๐‘–๐‘’๐‘ค๐‘  ๐Ÿ’ก ๐‘…๐‘œ๐‘ก๐‘Ž๐‘ก๐‘–๐‘›๐‘” ๐ฟ๐‘–๐‘ž๐‘ข๐‘–๐‘‘ ๐บ๐‘™๐‘Ž๐‘ ๐‘  โšก ๐ธ๐‘ž๐‘ข๐‘Ž๐‘ก๐‘Ž๐‘๐‘™๐‘’ ๐‘๐‘Ÿ๐‘œ๐‘๐‘’๐‘Ÿ๐‘ก๐‘–๐‘’๐‘  @๐‘‚๐‘๐‘ ๐‘’๐‘Ÿ๐‘ฃ๐‘Ž๐‘๐‘™๐‘’ #Swift #iOSDev ios-newsletter.snappmobile.io/issues/2026-...

iOS Newsletter Issue 101

Hi folks,

ios-newsletter.snappmobile.io

๐ŸŽจ ๐‘†๐‘ค๐‘–๐‘“๐‘ก๐‘ˆ๐ผ ๐‘–๐‘  ๐‘“๐‘ข๐‘›๐‘๐‘ก๐‘–๐‘œ๐‘›๐‘Ž๐‘™ by Manuel Chakravarty (@tacticalgrace.justtesting.org) A deep dive into why SwiftUI's declarative nature is actually a functional programming win. #iOSDev #SwiftUI bobkonf.de/2026/chakrav...

BOB - SwiftUI is functional

BOB Konferenz, Best of Breed Konferenz fรผr Software-Entwickler und Entscheider in der Softwareentwicklung.

bobkonf.de

โšก ๐‘‹๐ถ๐‘‡๐‘’๐‘ ๐‘ก ๐‘€๐‘’๐‘’๐‘ก๐‘  @๐‘€๐‘Ž๐‘–๐‘›๐ด๐‘๐‘ก๐‘œ๐‘Ÿ: ๐ป๐‘œ๐‘ค ๐‘ก๐‘œ ๐น๐‘–๐‘ฅ ๐‘†๐‘ก๐‘Ÿ๐‘–๐‘๐‘ก ๐ถ๐‘œ๐‘›๐‘๐‘ข๐‘Ÿ๐‘Ÿ๐‘’๐‘›๐‘๐‘ฆ ๐‘Š๐‘Ž๐‘Ÿ๐‘›๐‘–๐‘›๐‘”๐‘  by Jon Reid (@qualitycoding.org) Flipping the switch to Strict Concurrency in Swift 6 turns our test suites into a sea of warnings. #iOSDev #Concurrency #Testing qualitycoding.org/xctest-maina...

XCTest Meets @MainActor: How to Fix Strict Concurrency Warnings

Discover how Swift 6's @MainActor isolation impacts XCTest, with tips on handling concurrency warnings for view controller testing.

qualitycoding.org

๐ŸŽจ ๐ฟ๐‘–๐‘ก๐‘ก๐‘™๐‘’ ๐‘†๐‘ค๐‘–๐‘“๐‘ก๐‘ˆ๐ผ ๐‘‡๐‘–๐‘: ๐บ๐‘’๐‘ก & ๐‘†๐‘’๐‘ก & ๐‘Š๐‘Ž๐‘ก๐‘โ„Ž ๐ผ๐‘›๐‘ก๐‘’๐‘Ÿ๐‘“๐‘Ž๐‘๐‘’ ๐‘‚๐‘Ÿ๐‘–๐‘’๐‘›๐‘ก๐‘Ž๐‘ก๐‘–๐‘œ๐‘› & ๐‘‚๐‘Ÿ๐‘–๐‘’๐‘›๐‘ก๐‘Ž๐‘ก๐‘–๐‘œ๐‘› ๐ฟ๐‘œ๐‘๐‘˜ by Itsuki Tracking interface orientation in SwiftUI is surprisingly annoying since it's not in the environment. #iOSDev #SwiftUI medium.com/@itsuki.enjo...

Little SwiftUI Tip: Get & Set & Watch Interface Orientation & Orientation Lock

Not the UIDeviceOrientation, the UIInterfaceOrientation! The orientation of the appโ€™s user interface!

medium.com

๐Ÿ”’ ๐ป๐‘œ๐‘ค ๐‘ก๐‘œ ๐‘š๐‘Ž๐‘Ÿ๐‘˜ ๐‘๐‘œ๐‘›๐‘ก๐‘’๐‘›๐‘ก ๐‘Ž๐‘  ๐‘๐‘Ÿ๐‘–๐‘ฃ๐‘Ž๐‘ก๐‘’ ๐‘ข๐‘ ๐‘–๐‘›๐‘” ๐‘๐‘Ÿ๐‘–๐‘ฃ๐‘Ž๐‘๐‘ฆ๐‘†๐‘’๐‘›๐‘ ๐‘–๐‘ก๐‘–๐‘ฃ๐‘’() by Paul Hudson (@twostraws.bsky.social) With ๐‘๐‘Ÿ๐‘–๐‘ฃ๐‘Ž๐‘๐‘ฆ๐‘†๐‘’๐‘›๐‘ ๐‘–๐‘ก๐‘–๐‘ฃ๐‘’(), we can finally tell SwiftUI which parts of our views should be hidden on the lock screen or in widgets. #iOSDev #SwiftUI www.hackingwithswift.com/quick-start/...

How to mark content as private using privacySensitive() - a free SwiftUI by Example tutorial

Learn Swift coding for iOS with these free tutorials

hackingwithswift.com

๐ŸŽจ ๐ด ๐ถ๐‘ข๐‘ ๐‘ก๐‘œ๐‘š ๐‘ƒ๐‘ข๐‘™๐‘™-๐‘ก๐‘œ-๐‘…๐‘’๐‘“๐‘Ÿ๐‘’๐‘ โ„Ž ๐‘–๐‘› ๐‘†๐‘ค๐‘–๐‘“๐‘ก๐‘ˆ๐ผ by Artem Mirzabekian Sometimes .๐‘Ÿ๐‘’๐‘“๐‘Ÿ๐‘’๐‘ โ„Ž๐‘Ž๐‘๐‘™๐‘’ just isn't enough when the designers want a branded, animated experience. #iOSDev #SwiftUI livsycode.com/swiftui/a-cu...

A Custom Pull-to-Refresh in SwiftUI โ†’ Livsy Code

Greetings, traveler! SwiftUI provides a built-in .refreshable modifier, which covers the majority of use cases. At some point, product requirements start to demand more control over the refreshโ€ฆ

livsycode.com

๐ŸŽจ ๐‘†๐‘๐‘™๐‘–๐‘ก๐‘ก๐‘–๐‘›๐‘” ๐ฟ๐‘Ž๐‘Ÿ๐‘”๐‘’ ๐‘†๐‘ค๐‘–๐‘“๐‘ก๐‘ˆ๐ผ ๐‘‰๐‘–๐‘’๐‘ค๐‘  ๐‘–๐‘› ๐‘กโ„Ž๐‘’ ๐ด๐‘๐‘๐‘™๐‘’'๐‘  ๐‘ค๐‘Ž๐‘ฆ by Emre Degirmenci (@emredeg.bsky.social) Apple's latest guidance is clear: stop using computed properties to split your views. #iOSDev #SwiftUI #Testing emredegirmenci.substack.com/p/splitting-...

Splitting Large SwiftUI Views in the Apple's way

Extract Subviews, Not Computed Properties (and Where @ViewBuilder Actually Fits)

emredegirmenci.substack.com

๐ŸŽจ ๐ถ๐‘ข๐‘ ๐‘ก๐‘œ๐‘š ๐‘๐‘–๐‘›๐‘‘๐‘–๐‘›๐‘”๐‘  ๐‘–๐‘› ๐‘†๐‘ค๐‘–๐‘“๐‘ก๐‘ˆ๐ผ: ๐‘๐‘™๐‘œ๐‘ ๐‘ข๐‘Ÿ๐‘’๐‘  ๐‘ฃ๐‘  ๐‘ ๐‘ข๐‘๐‘ ๐‘๐‘Ÿ๐‘–๐‘๐‘ก๐‘  by Natalia Panferova (@natpanferova.bsky.social) We've all used ๐ต๐‘–๐‘›๐‘‘๐‘–๐‘›๐‘”(๐‘”๐‘’๐‘ก:๐‘ ๐‘’๐‘ก:) and wondered why our views are re-rendering for no reason. Turns out, creating these closures in the body is a performance trap. #iOSDev #SwiftUI #Performance

Custom bindings in SwiftUI: closures vs subscripts

Learn how closure-based bindings can affect SwiftUI view updates, and how labeled subscripts give the framework a more stable way to track changes.

nilcoalescing.com