Sendable protocol real world example
Generated on 8/4/2024
1 search
A real-world example of the Sendable
protocol can be found in the session Migrate your app to Swift 6. In this session, the presenter discusses a scenario involving a public type called Drink
in a coffee tracking app.
Here's a summary of the example:
- Context: The
Drink
type is shared between the main app and a coffee tracker extension. Since it is a public type, Swift does not infer its sendability automatically. - Problem: Without marking
Drink
asSendable
, there are multiple warnings because the type is used across different concurrency domains (e.g., between actors). - Solution: By explicitly marking the
Drink
type asSendable
, the warnings are resolved, ensuring that the type can be safely shared between different actors without risking data races.
This example illustrates how marking a type as Sendable
can help manage concurrency and ensure data-race safety in a Swift application. For more details, you can watch the session Migrate your app to Swift 6.
Consume noncopyable types in Swift
Get started with noncopyable types in Swift. Discover what copying means in Swift, when you might want to use a noncopyable type, and how value ownership lets you state your intentions clearly.
A Swift Tour: Explore Swift’s features and design
Learn the essential features and design philosophy of the Swift programming language. We’ll explore how to model data, handle errors, use protocols, write concurrent code, and more while building up a Swift package that has a library, an HTTP server, and a command line client. Whether you’re just beginning your Swift journey or have been with us from the start, this talk will help you get the most out of the language.
What’s new in App Intents
Learn about improvements and all-new features with App Intents, and discover how this framework can help you expose your app’s functionality to Siri, Spotlight, Shortcuts, and more. We’ll show you how to make your entities more meaningful to the platform with the Transferable API, File Representations, new IntentFile APIs, and Spotlight Indexing, opening up powerful functionality in Siri and the Shortcuts app. Empower your intents to take people deep into your app with URL Representable Entities. Explore new techniques to model your entities and intents with new APIs for error handling and union values.
Migrate your app to Swift 6
Experience Swift 6 migration in action as we update an existing sample app. Learn how to migrate incrementally, module by module, and how the compiler helps you identify code that’s at risk of data races. Discover different techniques for ensuring clear isolation boundaries and eliminating concurrent access to shared mutable state.