Learn all about SwiftUI with these posts

SwiftUI is a modern way to declare user interfaces for any Apple platform. Create beautiful, dynamic apps faster than ever before.

New!
How to create a SwiftUI floating window in macOS 15

Leverage the power of the new SwiftUI APIs in macOS 15 to create a movable and resizable floating window that stays on top of every other window

Safely unwrap optional values in SwiftUI bindings

How to use one of SwiftUI's Binding's initializers to safely unwrap its optional value.

Creating an App Store Connect-like picker for macOS with SwiftUI

Learn how to use SwiftUI components such as Menus and Buttons and modifiers like onHover and overlay to create a picker component for macOS similar to the beta group picker in App Store Connect's TestFlight.

Launching a SwiftUI view from the terminal

Learn how to launch a SwiftUI view directly from your Swift command-line tool without making a full-blown macOS application.

Building a searchable map with SwiftUI and MapKit

A practical example of how to use the new MapKit APIs in iOS 17 to build a searchable map with SwiftUI.

Delightful SwiftUI image drag & drop for a macOS app

How to easily implement image drag & drop with beautiful animations in a SwiftUI app

How to show the app icon and version in a SwiftUI view

Learn how to create an accessible SwiftUI view for your iOS apps that displays the app icon and version side by side.

How to launch a macOS SwiftUI app from a Safari extension

Learn how to launch a macOS app and perform actions directly from Safari using an extension.

Export SwiftUI views as images in macOS

How to use a combination of ImageRenderer and NSSavePanel to save SwiftUI views as images to the macOS file system.

Making macOS SwiftUI text views editable on click

How to build a custom SwiftUI Text view which only becomes editable on click.

Changing orientation for a single screen in SwiftUI

A summary of how you can change the orientation of a single SwiftUI view in your app and why it is a very difficult challenge to solve.