NavigationView vs NavigationStack: What Changed and Why
NavigationStack replaced NavigationView in iOS 16 with a more powerful programmatic navigation model. Here's what changed and how to migrate.
// Build native Mac applications with Swift and SwiftUI. Learn about AppKit integration, menu bars, windows, file management, and leveraging macOS-specific features.
NavigationStack replaced NavigationView in iOS 16 with a more powerful programmatic navigation model. Here's what changed and how to migrate.
A practical introduction to async/await in Swift, covering the fundamentals you need to write concurrent code that's both safe and readable.
Both async/await and Grand Central Dispatch solve concurrency problems, but they approach them differently. Here's how to choose between them.
Learn how to prevent users from dismissing modal sheets by swiping down in SwiftUI using interactiveDismissDisabled.
Learn how to use ToolbarSpacer to add fixed and flexible spacing between toolbar items in SwiftUI, new in iOS 26.
Learn how to use the presentationDetents modifier to control sheet heights in SwiftUI, creating interactive bottom sheets similar to Apple Maps and Music.
PermissionKit lets children request parental permission to communicate with new contacts directly through Messages. Here's how to integrate it into your social or messaging app to create safer communication experiences.
When building UIs that stream AI-generated content using Apple's Foundation Models framework, testing intermediate states in Xcode Previews requires some creative workarounds. Here's how to preview partially generated content without calling the actual model.
Learn how to add horizontal padding inside a TextEditor without affecting the scrollbar using the contentMargins modifier introduced in iOS 17.
Learn how to symbolicate crash logs from App Store Connect and Xcode Cloud to debug production crashes effectively.
Learn how to integrate UIKit's App Delegate into your SwiftUI app for handling app lifecycle events and system callbacks.
Learn how to access SwiftUI environment values in View extensions using ViewModifiers for clean, reusable code.
Learn how to create and display QR codes in SwiftUI using Core Image filters.
Learn how to create a custom input accessory view that stays above the keyboard, similar to iMessage's input bar.
Learn how to dump all SwiftUI environment values for debugging purposes.
Learn how to display human-readable relative timestamps like "5 minutes ago" or "yesterday" using RelativeDateTimeFormatter in your SwiftUI apps.
Learn how to access and configure environment variables in Swift applications for configuration management, API keys, and feature toggles.
Learn how to align single and multiline text in SwiftUI.
Learn how to use ScrollViewReader and ScrollViewProxy to scroll a SwiftUI list to a specific item automatically.
Learn how to create a modifier that limits the characters that can be entered in a TextEditor or TextField view in SwiftUI.
Learn the ways to scale a text view's font size to fit its parent view in SwiftUI.
Learn how to use a WKWebView as a quick way to load a GIF from a URL and display it in a SwiftUI view.
Learn how to use DisclosureGroupStyle to create custom DisclosureGroup views in SwiftUI.
Learn how to use kCFStringTransformToUnicodeName to get the system name for any emoji.
Learn how to detect if a SwiftUI app is running in a Xcode Preview.
Learn how to force the navigation bar to show a background color in SwiftUI.
How to use the SwiftUI DisclosureGroup view to create collapsable content.
Learn multiple approaches to replace characters and substrings in Swift strings, from simple replacements to pattern-based transformations.