Why Your Image Isn't Showing in a Live Activity
If your Live Activity renders a grey box instead of your image, the problem is almost certainly the image size. Here's how to fix it.
// Tutorials and guides for features available in iOS 15 and later. Build modern apps using the latest SwiftUI capabilities, async/await, and new iOS 15+ APIs.
If your Live Activity renders a grey box instead of your image, the problem is almost certainly the image size. Here's how to fix it.
Use the #Preview macro to preview your Live Activity views directly in Xcode without running the full app.
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.
Make your glass elements respond to touch with scaling, shimmer effects, and touch-point illumination using the interactive() modifier and glass button styles.
The cornerRadius modifier is deprecated in iOS 17. Here's how to use clipShape, RoundedRectangle, and the new ConcentricRectangle to round corners the modern way.
The glassEffectID modifier enables glass views to smoothly morph into one another during state changes, creating fluid transitions that feel native to iOS 26.
When you have multiple glass elements that should blend and animate together, GlassEffectContainer coordinates their rendering for seamless visual results.
iOS 26 introduces Liquid Glass, a translucent design language for navigation elements. Here's how to apply the glassEffect modifier to your custom views.
Learn how to use AlarmKit to schedule alarms that appear in the system Clock app, giving your app native alarm integration on iOS 26.
Learn how to use AppStore.ageRatingCode to read your app's current age rating and react to rating changes for parental consent compliance.
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.
Learn how to detect app lifecycle changes in SwiftUI, save state when your app enters the background, and restore it when users return, using scenePhase and UIApplication notifications.
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 detect when users enable Low Power Mode and automatically reduce animations, refresh rates, and visual effects to preserve battery life in your SwiftUI app.
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 a Material Design-style floating action button in SwiftUI that intelligently moves above the keyboard and avoids blocking text input fields.
Learn how to add custom toolbar buttons above the keyboard in SwiftUI using the .toolbar modifier with keyboard placement for Done buttons, formatting controls, and more.
Learn how to prevent users from taking screenshots of sensitive content in your SwiftUI app using field-level security and UIKit bridging for financial, medical, or private data protection.
Learn how to create a custom input accessory view that stays above the keyboard, similar to iMessage's input bar.
Learn how to add pull-to-refresh functionality to custom ScrollViews in SwiftUI without using List, perfect for custom layouts and complex scroll content.
Learn how to build skeleton loading screens with animated shimmer effects in SwiftUI using gradients, AnimatableModifier, and reusable view modifiers for a polished loading experience.
Learn how to dump all SwiftUI environment values for debugging purposes.
Learn how to implement undo/redo functionality in SwiftUI using UndoManager, including environment injection, registering actions, and creating undo buttons for professional editing experiences.
Learn how to align single and multiline text in SwiftUI.
Learn how to detect when a context menu is open in SwiftUI.
Learn how to create a WebView/WKWebView with a transparent/clear background in SwiftUI.
Learn how to accept user input in an alert using TextField or SecureField.
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 force the navigation bar to show a background color in SwiftUI.
Learn how to access your app's App Delegate from anywhere in your Swift code, including from SwiftUI views.