whats new in swiftui
Generated on 7/27/2024
5 searches

This post is brought to you by Tailscan,
the best devtool for Tailwind CSS.
What's New in SwiftUI
SwiftUI has introduced several exciting new features and improvements this year. Here are some of the highlights:
-
Graphics Capabilities:
- Color Mixing: A new
mix
modifier onColor
allows you to blend colors together by a given amount. - Custom Shaders: Extended custom shader feature with precompilation to avoid frame drops caused by lazy shader compilation.
- Color Mixing: A new
-
Scroll View Enhancements:
- Fine-Grained Control: New APIs provide more control over scroll views, including reacting to changes in content, offsets, and content size.
- Visibility Detection: Detect when a view's visibility changes due to scrolling, enabling experiences like auto-playing videos when they come into view.
- Scroll Positions: More scroll positions to programmatically scroll to, such as the top edge.
- Additional Controls: Options to turn off bouncing along a given axis, programmatically stop scrolling, control content alignment, and more.
-
Interoperability:
- UIKit and AppKit Integration: Improved interoperability with UIKit and AppKit, including the ability to set up animations on these views and drive them with SwiftUI.
- Gesture Recognition: Gesture recognition has been factored out of UIKit, allowing the use of built-in or custom gesture recognizers in SwiftUI view hierarchies.
-
Accessibility:
- Enhanced Labels: Add additional accessibility information to controls without overriding the framework-provided label.
- Conditional Modifier Support: New accessibility features such as conditional modifier support and app intent-based accessibility actions.
-
Text Management:
- Text Selection: Programmatic access to and control of text selection within text editing controls.
-
Swift 6 Language Mode:
- Data Race Safety: Compile-time data race safety.
- Main Actor Isolation: Views in SwiftUI are evaluated on the main actor, and the
View
protocol is marked with the@MainActor
annotation.
-
Xcode Previews:
- Dynamic Linking: New dynamic linking architecture allows switching between a preview and build and run without needing to rebuild the project.
- State in Previews: Use state directly in previews with the
@Previewable
macro, reducing boilerplate code.
-
Custom Containers and Mesh Gradients:
- Custom Containers: New APIs for creating custom containers.
- Mesh Gradients: Beautiful mesh gradients for more visually appealing designs.
For a detailed overview, you can watch the session What’s new in SwiftUI from WWDC 2024.
Relevant Sessions

What’s new in watchOS 11
Explore new opportunities on Apple Watch, including bringing Double Tap support to your watchOS app, making your Smart Stack widgets even more relevant and interactive, and displaying your iOS Live Activities in the Smart Stack.

What’s new in SwiftUI
Learn how you can use SwiftUI to build great apps for any Apple platform. Explore a fresh new look and feel for tabs and documents on iPadOS. Improve your window management with new windowing APIs, and gain more control over immersive spaces and volumes in your visionOS apps. We’ll also take you through other exciting refinements that help you make expressive charts, customize and layout text, and so much more.

SwiftUI essentials
Join us on a tour of SwiftUI, Apple’s declarative user interface framework. Learn essential concepts for building apps in SwiftUI, like views, state variables, and layout. Discover the breadth of APIs for building fully featured experiences and crafting unique custom components. Whether you’re brand new to SwiftUI or an experienced developer, you’ll learn how to take advantage of what SwiftUI has to offer when building great apps.

Platforms State of the Union
Discover the newest advancements on Apple platforms.

What’s new in UIKit
Explore everything new in UIKit, including tab and document launch experiences, transitions, and text and input changes. We’ll also discuss better-than-ever interoperability between UIKit and SwiftUI animations and gestures, as well as general improvements throughout UIKit.