Hi folks,
This week’s newsletter highlights key developments in iOS and macOS development, featuring articles on OpenAI Codex AI integration, StoreKit 2 subscription management, advanced SwiftUI text rendering with SF Symbols, Bloc state management framework, search integration in SwiftUI, macOS menu selection indicators, accessibility preview testing, and iOS event handling evolution from UIKit to SwiftUI.
We hope you like it!
Articles
AI/ML
Codex use cases
OpenAI has produced a set of examples on utilizing their Codex AI across iOS and macOS development, including creating app intents for Siri and Spotlight, adding telemetry to Mac apps, migrating to Liquid Glass design, building app shells, scaffolding native iOS/macOS apps, debugging in the iOS simulator, and refactoring SwiftUI screens. The examples are a good starting point for experiments, as users are already reporting positively on these working with other coding harnesses with a few tweaks.
Payments
Providing access to premium features with StoreKit 2
Here’s a demonstration on how to build a tiered subscription system for iOS 26 using StoreKit 2, featuring four subscription products (individual and family plans with monthly and yearly options) and two subscription tiers. The walkthrough covers configuring StoreKit configuration files, creating PassIdentifiers, modeling the tier system with enum types, and building a subscription status observer to determine whether users are subscribed to which tier.
UI/UX
Embedding SF Symbols in SwiftUI Text
This guide explores methods for embedding SF Symbols within SwiftUI Text views when combining text with icons for labels or list items. The article highlights how Swift handles string interpolation with Images in different scenarios—when using string literals versus variables—and explains why direct Image interpolation fails outside of localized strings. It provides code samples demonstrating the correct approaches and limitations for integrating symbols into text.
Bloc for iOS: A Better Way to Manage State in SwiftUI
Borrowing ideas from other languages or frameworks is something that has a potential to be quite beneficial. This post evaluates three prominent iOS state management frameworks - Redux, Composable Architecture, and Bloc—and recommends Bloc for iOS as a more accessible option for Swift developers. BlocSwift, a Swift port of the Bloc framework, created by Felix Angelov for Dart, offers event-driven state management with minimal ceremony: discrete events, output state, and isolated per-feature Bloc components. While Redux brings global state trees and TCA provides sophisticated composability with high learning curves, Bloc prioritizes clear patterns and rapid implementation through its straightforward event and state flow.
Searchable Modifier in SwiftUI
This article examines SwiftUI’s .searchable modifier, introduced in iOS 15, for integrating native search functionality into Views. It covers basic implementation in NavigationStack and List views, including search suggestions, search scopes for filtering results by category, and accessibility features. The guide demonstrates how to add search to lists with built-in keyboard handling and suggests starting with core functionality before optionally enhancing with advanced features like search scopes.
Indicating Selection in macOS Menus Using SwiftUI
Have you ever wondered how to visually indicate selected items in macOS menus using SwiftUI? Turns out it’s a common but challenging problem. Beyond plain buttons with system images, this article evaluates multiple approaches: conditional icons for selection indicators, incorporating checkmarks into text titles to avoid system symbol errors, Picker controls with system selection highlighting, and custom Toggle bindings for boolean state management. It demonstrates practical code examples for each method and discusses their respective advantages in menu implementations.
Checking accessibility with SwiftUI Previews
Here’s a thorough guide to verifying accessibility in SwiftUI previews using Xcode’s Canvas features. While most accessibility checks require actual devices since they test interactive technologies like VoiceOver, there are several preview-based tools: canvas variants for dynamic types and orientations, #Preview traits for landscape layouts, modifiers like .dynamicTypeSize() and .preferredColorScheme(.dark), and environment variables such as .legibilityWeight and .locale to simulate accessibility settings across different configurations.
iOS Event Handling Evolution: UIKit Responder Chain and SwiftUI Gestures
A refresher for the experienced devs and a tutorial for the newcomers, this article traces the evolution of iOS event handling from UIKit’s responder chain to SwiftUI’s gesture-based interaction system. It explores how UIKit cascaded events through its responder chain, how SwiftUI introduced gesture-based interaction handling, and the practical implications for us as we modernize our apps to handle user interactions.