The iOS Weekly Brief – Issue #4
Apple Ads rebrand insights, deep dives into SwiftUI navigation and test scoping, plus practical performance tips using Instruments.
🆕 What’s New
Apple Search Ads is now Apple Ads
Apple has rebranded its ad platform from Search Ads to Apple Ads, reflecting a broader advertising footprint across the App Store.
Launched in 2016 as a single placement at the top of search results, it has evolved into a multi-surface network, including the Today tab, Search tab, and You Might Also Like section on app product pages.
📚 Must Read
Using NavigationPath with TabView in SwiftUI
Learn how to structure complex SwiftUI apps by giving each tab its own NavigationPath and router. This approach ensures independent navigation stacks per tab, making deep linking, modular design, and state separation much easier to manage. A must-read for scaling SwiftUI navigation cleanly.
Introducing Swift Testing. Scoping.
Swift 6.1 introduces test scoping in the Swift Testing framework - a powerful way to share setup/teardown logic across tests using custom traits. Learn how to create reusable test environments, inject mocks with minimal boilerplate, and structure cleaner, more maintainable test suites.
Showing What's New Screens using @AppStorage
By leveraging AppStorage and environment injection, you can conditionally present updates after onboarding or specific usage patterns - all without complex state handling. A great example of shipping polished UX with minimal code.
🛠️ Toolbox
Using Instruments to profile a SwiftUI app
A practical deep dive into using Instruments to analyze and optimize SwiftUI performance. Learn how to detect unnecessary view redraws, catch slow code with the Time Profiler, and focus your testing on real devices for accurate results.
If your app feels slow or unresponsive, this guide helps you build the mental model needed to track down the root causes.
🍬 One More Thing…
Did you know SwiftUI can automatically generate accessibility labels for images - straight from your localized strings?
If your asset name matches a key in Localizable.strings or .xcstrings, VoiceOver will read that value without needing .accessibilityLabel().
A tiny detail, but a huge win for accessibility. Read more
🗳️ Weekly Poll
👋 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 🍏


