Swift

Discover the latest Swift updates.

Sessions

  • Build your first app in Swift Playgrounds

    8:00 a.m.

    Learn how you can easily prototype and build apps with Swift Playgrounds. We’ll show you how to create an app from a blank project, build its interface with SwiftUI, and use Swift Package Manager to add extra functionality from an open source package. We'll also explore how you can debug issues using Previews and the console and take you through submitting an app to App Store Connect for distribution via TestFlight.

    Watch

  • Meet Swift Async Algorithms

    8:00 a.m.

    Discover the latest open source Swift package from Apple: Swift Async Algorithms. We'll explore algorithms from this package that you can use with AsyncSequence, including zip, merge, and throttle. Follow along with us as we use these algorithms to build a great messaging app. We'll also share best practices for combining multiple AsyncSequences and using the Swift Clock type to work with values over time. To get the most out of this session, we recommend watching "Meet AsyncSequence."

    Watch

  • Meet Swift Regex

    8:00 a.m.

    Learn how you can process strings more effectively when you take advantage of Swift Regex. Come for concise literals but stay for Regex builders — a new, declarative approach to string processing. We'll also explore the Unicode models in String and share how Swift Regex can make Unicode-correct processing easy.

    Watch

  • Visualize and optimize Swift concurrency

    8:00 a.m.

    Learn how you can optimize your app with the Swift Concurrency template in Instruments. We'll discuss common performance issues and show you how to use Instruments to find and resolve these problems. Learn how you can keep your UI responsive, maximize parallel performance, and analyze Swift concurrency activity within your app. To get the most out of this session, we recommend familiarity with Swift concurrency (including tasks and actors).

    Watch

  • What's new in Swift

    8:00 a.m.

    Join us for an update on Swift. We'll take you through performance improvements, explore more secure and extensible Swift packages, and share advancements in Swift concurrency. We'll also introduce you to Swift Regex, better generics, and other tools built into the language to help you write more flexible & expressive code.

    Watch

Labs

  • Swift open hours lab

    Tuesday @ 1:00 - 5:00 p.m.

    Request an appointment with an Apple engineer for guidance and conversation about your app, the latest Swift APIs, best practices, and more.

Digital Lounges

  • Study Hall: You can build an app for that!

    Tuesday @ 9:00 - 6:00 p.m.

    Whether you've got a problem you've been itching to solve or you want to play with a new framework, Swift Playgrounds makes it easy to get started with building your first app — and we're challenging you to try building something today! Explore the tools available, incorporate packages, build prototypes, and most importantly, have fun. Visit the Developer Tools Study Hall to work and collaborate on the “You can build an app for that!” coding challenge. Ask questions, connect with other developers, and share your progress.

  • Q&A: Swift Standard Library

    Tuesday @ 11:00 - 1:00 p.m.

    Ask Apple engineers about the Swift Standard Library during this 2 hour text-based Q&A. Stop in to request guidance on a code-level question, ask for clarifications, or learn from others in a group setting.

  • Meet the presenter: Meet Swift Async Algorithms

    Tuesday @ 2:00 - 3:00 p.m.

    Meet the presenter behind “Meet Swift Async Algorithms” and join a text-based watch party for the session with the Swift team, followed by a short Q&A. The watch party begins 5 minutes after the start of this activity — so don’t be late!

Sessions

  • Create engaging content for Swift Playgrounds

    8:00 a.m.

    Learn how you can build guided instructional content designed for Swift Playgrounds. Follow along with us as we explore how you can add a guide to a completed sample code project. We'll demonstrate how to add tasks to your learning center to show off relevant code and optional experiment tasks that encourage learners to extend the project with code of their own.

    Watch

  • Eliminate data races using Swift Concurrency

    8:00 a.m.

    Join us as we explore one of the core concepts in Swift concurrency: isolation of tasks and actors. We'll take you through Swift’s approach to eliminating data races and its effect on app architecture. We'll also discuss the importance of atomicity in your code, share the nuances of Sendable checking to maintain isolation, and revisit assumptions about ordering work in a concurrent system.

    Watch

  • Embrace Swift generics

    8:00 a.m.

    Generics are a fundamental tool for writing abstract code in Swift. Learn how you can identify opportunities for abstraction as your code evolves, evaluate strategies for writing one piece of code with many behaviors, and discover language features in Swift 5.7 that can help you make generic code easier to write and understand.

    Watch

  • Meet distributed actors in Swift

    8:00 a.m.

    Discover distributed actors — an extension of Swift’s actor model that simplifies development of distributed systems. We'll explore how distributed actor isolation and location transparency can help you avoid the accidental complexity of networking, serialization, and other transport concerns when working with distributed apps and systems. To get the most out of this session, watch “Protect mutable state with Swift actors” from WWDC21.

    Watch

  • Swift Regex: Beyond the basics

    8:00 a.m.

    Go beyond the basics of string processing with Swift Regex. We'll share an overview of Regex and how it works, explore Foundation’s rich data parsers and discover how to integrate your own, and delve into captures. We’ll also provide best practices for matching strings and wielding Regex-powered algorithms with ease.

    Watch

  • Use Xcode to develop a multiplatform app

    8:00 a.m.

    Learn how you can build apps for multiple Apple platforms using Xcode 14. We'll show you how to streamline app targets, maintain a common codebase, and share settings by default. We'll also explore how you can customize your app for each platform through conditionalizing your settings and code.

    Watch

Labs

  • Swift open hours lab

    Wednesday @ 9:00 - 1:00 p.m.

    Request an appointment with an Apple engineer for guidance and conversation about your app, the latest Swift APIs, best practices, and more.

  • Swift open hours lab

    Wednesday @ 5:00 - 8:00 p.m.

    Request an appointment with an Apple engineer for guidance and conversation about your app, the latest Swift APIs, best practices, and more.

Digital Lounges

  • Q&A: Swift concurrency

    Wednesday @ 1:00 - 3:00 p.m.

    Ask Apple engineers about Swift concurrency during this 2 hour text-based Q&A. Stop in to request guidance on a code-level question, ask for clarifications, or learn from others in a group setting.

Sessions

  • Debug Swift debugging with LLDB

    8:00 a.m.

    Learn how you can set up complex Swift projects for debugging. We'll take you on a deep dive into the internals of LLDB and debug info. We'll also share best practices for complex scenarios such as debugging code built on build servers or code from custom build systems.

    Watch

  • Design protocol interfaces in Swift

    8:00 a.m.

    Learn how you can use Swift 5.7 to design advanced abstractions using protocols. We'll show you how to use existential types, explore how you can separate implementation from interface with opaque result types, and share the same-type requirements that can help you identify and guarantee relationships between concrete types. To get the most out of this session, we recommend first watching “Embrace Swift generics" from WWDC22.

    Watch

  • Meet Swift Package plugins

    8:00 a.m.

    Discover how you can perform actions on Swift packages and Xcode projects with Swift package plugins. We'll go over how these plugins work and explore how you can use them to generate source code and automate your development workflow.

    Watch

Labs

  • Swift open hours lab

    Thursday @ 9:00 - 1:00 p.m.

    Request an appointment with an Apple engineer for guidance and conversation about your app, the latest Swift APIs, best practices, and more.

  • Swift open hours lab

    Thursday @ 1:00 - 5:00 p.m.

    Request an appointment with an Apple engineer for guidance and conversation about your app, the latest Swift APIs, best practices, and more.

Digital Lounges

  • Q&A: Foundation

    Thursday @ 3:00 - 5:00 p.m.

    Ask Apple engineers about Foundation during this 2 hour text-based Q&A. Stop in to request guidance on a code-level question, ask for clarifications, or learn from others in a group setting.

Sessions

  • Create Swift Package plugins

    8:00 a.m.

    Tailor your development workflow and learn how to write your own package plugins in Swift. We'll show you how you can extend Xcode’s functionality by using the PackagePlugin API to generate source code or automate release tasks and share best practices for creating great plugins.

    Watch

  • Use Xcode for server-side development

    8:00 a.m.

    Discover how you can create, build, and deploy a Swift server app alongside your pre-existing Xcode projects within the same workspace. We'll show you how to create your own local app and test endpoints using Xcode, and explore how you can structure and share code between server and client apps to ease your development process

    Watch

Labs

  • Swift open hours lab

    Friday @ 6:00 - 9:00 a.m.

    Request an appointment with an Apple engineer for guidance and conversation about your app, the latest Swift APIs, best practices, and more.

  • Swift open hours lab

    Friday @ 1:00 - 4:00 p.m.

    Request an appointment with an Apple engineer for guidance and conversation about your app, the latest Swift APIs, best practices, and more.