protocol oriented
Asked on 06/16/2025
1 search
At WWDC, Apple often discusses the concept of protocol-oriented programming, especially in the context of Swift. Protocols in Swift provide a more general way to build abstractions and work equally well with both value and reference types. A protocol is essentially an abstract set of requirements for a type, and a type conforms to a protocol by implementing all of its requirements.
For example, in the session titled "A Swift Tour: Explore Swift’s features and design," it is mentioned that protocols can be used to abstract over collection types in the Swift standard library, such as arrays, dictionaries, and sets. This allows for a flexible and powerful way to work with different types of data models.
If you're interested in learning more about how protocols are used in Swift, you might want to check out the session A Swift Tour: Explore Swift’s features and design (14:06) where protocols are discussed in detail.

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.

Explore Swift performance
Discover how Swift balances abstraction and performance. Learn what elements of performance to consider and how the Swift optimizer affects them. Explore the different features of Swift and how they’re implemented to further understand the tradeoffs available that can impact performance.

Use structured concurrency with Network framework
Network framework is the best way to make low-level network connections on Apple platforms — and in iOS, iPadOS, and macOS 26, it’s a perfect fit for your structured concurrency code. We’ll explore how you can make connections, send and receive data and framed messages, listen for incoming connections, and browse the network for services. We’ll also cover key best practices along the way.