SwiftUI
Learn more and get better in building apps with SwiftUI.
ScrollView Bounce Behavior configuration in SwiftUI
A ScrollView bounce behavior configuration allows you to define whether a scrollable view bounces when reaching the end of its content. Whether it's a horizontal or vertical scrolling list, you can configure both directions using view modifiers in SwiftUI. There are common scenarios for us to build when it comes ...
@Observable Macro performance increase over ObservableObject
The @Observable Macro was first introduced during WWDC 2023 to replace ObservableObject and its @Published parameters. The macro allows you to remove all published properties while still being able to redraw SwiftUI views when a change occurs automatically. I highly recommend replacing your ObservableObject instances since the new macro prevents ...
SFSafariViewController in SwiftUI: Open webpages in-app
SFSafariViewController can be used to let your users open webpages in-app instead of in an external browser. While the view controller works great for UIKit, getting it to work in a SwiftUI app might be challenging. Whenever you're running into cases where a UIKit solution is available only, you want ...
Debugging SwiftUI views: what caused that change?
Debugging SwiftUI views is an essential skill when writing dynamic views with several redrawing triggers. Property wrappers like @State and @ObservedObject will redraw your view based on a changed value. This is often expected behavior, and things look like they should. However, in so-called Massive SwiftUI Views (MSV), there could ...
App Intents Spotlight integration using Shortcuts
App Intents have been new since iOS 16 and offer a programmatic way to service your app's content and functionality to Siri and the Shortcuts app. New in iOS 17 is the option to surface App Shortcuts integrated into Spotlight, making your app's functionality even more discoverable. App Intents are ...
ContentUnavailableView: Handling Empty States in SwiftUI
ContentUnavailableView is a SwiftUI view introduced in iOS 17 during WWDC 2023. It allows you to handle cases of networking failure or empty search results. It's essential to explain an empty state and its cause to your users. While you can generate custom empty states, reusing standard SwiftUI components is ...
Universal Links implementation on iOS
Universal Links allow you to link to content inside your app when a user opens a particular URL. Webpages will open in the app browser by default, but you can configure specific paths to open in your app if the user has it installed. Redirecting users into your app is ...
Deeplink URL handling in SwiftUI
Deeplinks allow you to open your app and navigate into a specific location right after launch. An example could be deep linking to a recipe or movie based on the tapped link. You can determine the destination page based on the metadata provided by the URL. You can use a ...
View Composition using ViewModifiers in SwiftUI
View Composition allows you to create reusable components to create enriched views. You can extract logic into reusable components using the ViewModifier protocol in SwiftUI and set up your code for reusability. I've been developing a set of view modifiers in RocketSim to enable TextField customizations. Combining all modifiers results ...
Introducing Roadmap: Offer Public Feature Voting
Roadmap is a new open-source framework written completely in Swift and SwiftUI, allowing you to integrate feature voting functionality for your apps. While developing apps, spending your time on the most impactful features is essential. While the definition of impactful divers it's certainly driven by what your users want to ...
How to use FormatStyle to restrict TextField input in SwiftUI
A custom FormatStyle can help you control the allowed characters of a SwiftUI TextField. You might want to allow numbers only or a specific set of characters. While you could use a formatter in many cases, it's good to know there's a flexible solution using a custom FormatStyle implementation. In ...
Sheets in SwiftUI explained with code examples
Sheets in SwiftUI allow you to present views that partly cover the underlying screen. You can present them using view modifiers that respond to a particular state change, like a boolean or an object. Views that partly cover the underlying screen can be a great way to stay in the ...