Subscribe to our monthly newsletter
Get exclusive Swift and SwiftUI tips, project updates, behind-the-scenes insights, and special discounts on our books — all in a monthly email from us.
Invalid email address
Unexpected server error
Subscribed!
Posts on APIs, tools and techniques for developing macOS apps
Use the defaults Terminal command to clear persisted values and test onboarding, settings, and fresh app state.
Customize the appearance of the macOS window toolbar in SwiftUI using scene and view modifiers to control its layout, title visibility, and background.
"The SwiftUI Way" is a new book by Natalia Panferova that shows experienced SwiftUI developers how to align with the framework's internal expectations.
Starting with Swift 6.2 and iOS 26, EnumeratedSequence conforms to RandomAccessCollection, allowing enumerated() to be used directly in ForEach and List views.
Add a custom font to your Mac app by embedding it in the app bundle and making sure it loads correctly for use in your UI.
Design a custom About window for your SwiftUI macOS app with a personalized layout, detailed app information, and a styled background that fits your app’s look and feel.
Implement a high-performance lazy scrolling list in SwiftUI by efficiently reusing views for smooth scrolling with large datasets.
Detect window focus with the appearsActive environment value to adjust UI and handle focus changes.
"SwiftUI Fundamentals" is a new book by Natalia Panferova that explores SwiftUI’s core principles and APIs in depth. It will help you build a solid foundation for using SwiftUI effectively in your projects.
Learn how to build a macOS menu bar app in SwiftUI using MenuBarExtra, customize its icon, hide it from the Dock, and add essential features like a quit option.
Extend your app’s functionality to the entire macOS system by implementing services that users can access from the context menu or the Services menu in other apps.
Register your macOS app as a login item using SMAppService.
Apply a translucent background to macOS windows using SwiftUI APIs, and adjust the toolbar background and title visibility to customize the window's appearance.
To copy a string to the clipboard on macOS, we need to first clear it using clearContents(), unlike on iOS, where UIPasteboard automatically overwrites the existing data.
A simple method for rendering quadratic Bézier curves on the GPU in Metal without pre-processing geometry.
SwiftUI custom scenes enable the creation of modular, maintainable code, allowing for precise management of complex user interfaces and behavior across different platforms.
Take advantage of the new macOS 15 API to update SwiftUI views when modifier keys are pressed.
Learn how to use MapKit and SwiftUI to apply a gradient that follows a polyline, enhancing the visual appeal of your maps.
Discover how to leverage SwiftUI's versatile scene types, like WindowGroup, DocumentGroup, Settings, Window, and MenuBarExtra, to create efficient and dynamic macOS applications.
Learn how to use NWPathMonitor as an async sequence for real-time network status updates in your SwiftUI views.
Let's look into the new inspector() presentation API in iOS 17, iPadOS 17 and macOS 14 and see how to customise its width on iPad and Mac, and how to change the sheet style it defaults to on iPhone.
Explore how to replace the position() modifier with a custom AnchoredPosition layout to improve flexibility in aligning views relative to an anchor point, and adjust the alignment dynamically based on available space.
Build an interactive bar chart in Swift Charts that displays detailed annotations when the user is hovering over bar marks.
Register when the pointer enters and exists view's bounds and get the mouse cursor location with onContinuousHover() modifier.
Adjust the default appearance of the ShareLink button using SwiftUI view modifiers such as labelStyle(), imageScale() and symbolVariant().
Create a chart with the Swift Charts framework to show UV index throughout the day inspired by the iOS Weather app that dims the area up to the current time.
Add a gradient to a bar chart that stretches from top to bottom of the plot area rather than filling each individual mark.
We can customize how the user navigates through focusable views in our macOS apps with the help of the new focusSection() modifier.
Build a bar chart using data with values of type Measurement<UnitDuration> that doesn't conform to Plottable by default.
Learn how to use the new openWindow action in SwiftUI to programmatically present new windows in macOS 13.
Learn how to change the default position of y-axis in Swift Charts by using chartYAxis() modifier.
Visualise data distributions by building a histogram and a 2D density plot with the new Swift Charts framework.
Starting from iOS 16 and macOS 13 we have a SwiftUI API to request App Store reviews. We can read requestReview property from the environment and call it as a function at the appropriate time.
Starting from iOS 16 and macOS 13 SwiftUI List view can automatically generate move and delete operations without the need of onDelete() and onMove() closures.
Draw a custom SwiftUI view to replace the symbols in a scatter plot in Swift Charts.
Build a custom ridge chart with the new Swift Charts framework to show the distribution of a numeric variable for several groups.
Use the new NavigationSplitView API with a column visibility parameter to programmatically control the visibility of the sidebar in multicolumn navigation in SwiftUI.
Explore the capabilities of the new Swift Charts framework introduced at WWDC 2022 while making a stream graph with custom colour gradient and text labels.
Let's try out the new SwiftUI navigation APIs introduced in beta 1 for iOS 16 and macOS 13: NavigationStack, NavigationSplitView and ways to set up programmatic navigation.
Find out about different ways we can provide feedback about new APIs to Apple engineers, ask questions during WWDC and get help from Apple experts and wider developer community.
Take a closer look at AttributedString type and different attribute scopes it can contain. Explore how Apple system frameworks interpret available attributes and how to create your own.
Hide and show a view based on a setting or state without shifting the layout by using opacity() modifier in SwiftUI.
SwiftUI Text views can automatically parse Markdown strings when created with LocalizedStringKey. Markdown isn't parsed when created with a String variable or with verbatim initializer.
We have several ways to customize the visual style of links placed inside Text views in SwiftUI: tint() modifier, different Text modifiers and attributes in AttributedString.
Customize actions for links inside Text views in SwiftUI by using openURL environment value.
Set a keypath to your model properties as FocusState value to avoid declaring custom enums to programmatically set focus and respond to focus changes.
Set underline and strikethrough styles in AttributedString and display it with SwiftUI Text view.
Build sidebar navigation for your macOS app with the help of selection binding in List view and use SceneStroage for state restoration.
Allow users to select the contents of SwiftUI Text view, to be able to copy or share it, by applying textSelection() modifier.
Learn how to rapidly evaluate a polynomial function of variable size on the GPU without needing to write C++ Metal shaders.
Make use of the focused scene value API to pass data from the focused scene to the commands section of the app.
Avoid the conflict between the drag gesture and editing of text fields inside list rows and make focusing on text fields easier.
Add custom information and copyright to your app's About window on macOS when using the SwiftUI app lifecycle.
Integrate with UndoManager in SwiftUI by building a reusable UndoProvider view that can be used with any binding.