Thursday

Welcome to day four of WWDC. We hope you’re rested and ready to learn more about the latest Apple technologies and frameworks, because we’ve got a lot to share with you.

Even more machine learning

Start your Thursday off with a little movement and discover how Apple engineers built the Action & Vision app using Create ML and the Vision framework. And that’s not all in the realm of machine learning: Check out how you can train models in minutes that make it easy to bring creative visual features to your app, or explore how you can leverage the Natural Language framework to better analyze and understand text.

  • WWDC20

Explore the Action & Vision app

It's now easy to create an app for fitness or sports coaching that takes advantage of machine learning — and to prove it, we built our own. Learn how we designed the Action & Vision app using Object Detection and Action Classification in Create ML along with the new Body Pose Estimation,...

  • WWDC20

Build Image and Video Style Transfer models in Create ML

Bring stylized effects to your photos and videos with Style Transfer in Create ML. Discover how you can train models in minutes that make it easy to bring creative visual features to your app. Learn about the training process and the options you have for controlling the results. And we’ll explore...

  • WWDC20

Make apps smarter with Natural Language

Explore how you can leverage the Natural Language framework to better analyze and understand text. Learn how to draw meaning from text using the framework's built-in word and sentence embeddings, and how to create your own custom embeddings for specific needs. We’ll show you how to use samples...

Step into SwiftUI apps

Even more SwiftUI today: Discover how to display detailed data in SwiftUI apps and learn how to build document-based apps entirely in SwiftUI.

  • WWDC20

Build document-based apps in SwiftUI

Learn how to build a document-based app entirely in SwiftUI! We’ll walk you through the DocumentGroup API and how it composes with your App and Scenes, allowing you to add out-of-the-box support for document management — such as document browsing and standard commands — no heavy lifting...

  • WWDC20

Stacks, Grids, and Outlines in SwiftUI

Display detailed data in your SwiftUI apps more quickly and efficiently with improved stacks and new list and outline views. Now available on iOS and iPadOS for the first time, outlines are a new multi-platform tool for expressing hierarchical data that work alongside stacks and lists. Learn how to...

Playground playtime

Explore how you can build your very own Swift Playgrounds content for iPad and Mac, and learn how you can use a playground to prototype SwiftUI views.

  • WWDC20

Create Swift Playgrounds content for iPad and Mac

Learn how to create Swift Playgrounds books that work fluidly across both Mac and iPad and help people of all ages explore the fun of coding in Swift. We’ll walk you through how to customize content for each platform while considering platform settings, and help you take advantage of them in your...

  • WWDC20

Build a SwiftUI view in Swift Playgrounds

Easily prototype and play around with SwiftUI views when you use them with Swift Playgrounds. We’ll show you how to build a SwiftUI view in a Xcode-compatible playground, and explore tools to help you easily edit and preview your code. For more on Swift Playgrounds, check out our interactive...

Swift deep dive

Take your understanding of Swift to the next level. Find out how Swift uses type inference to help you write clean, concise code without compromising type safety. Get to know Swift Numerics, a new Swift package for computational mathematics. And discover what exactly makes code “unsafe” as we take a look at the programming language’s safety precautions — and when you might need to reach for unsafe operations.

  • WWDC20

Explore numerical computing in Swift

Meet Swift Numerics: a new Swift package for computational mathematics. Take a tour of the protocols and types available in the package and find out how you can use them to write generic code. We'll also show you how and when to use the new Float16 type to improve performance and reduce memory...

  • WWDC20

Embrace Swift type inference

Swift uses type inference to help you write clean, concise code without compromising type safety. We’ll show you how the compiler seeks out clues in your code to solve the type inference puzzle. Discover what happens when the compiler can't come to a solution, and find out how Xcode 12 integrates...

  • WWDC20

Unsafe Swift

What exactly makes code “unsafe”? Join the Swift team as we take a look at the programming language’s safety precautions — and when you might need to reach for unsafe operations. We’ll take a look at APIs that can cause unexpected states if not used correctly, and how you can write code...

... And more

Check out the full list of sessions releasing today.

  • WWDC20

Adapt ad insertion to Low-Latency HLS

Find out how to integrate advertising into your Low-Latency HLS streams through server-side ad insertion. We'll show you how to segment your ad content, and examine how ad insertion works with LL-HLS features such as Blocking Playlist Reload and Blocking Preload Hints. For more information about...

  • WWDC20

App accessibility for Switch Control

Switch Control is a powerful accessibility technology for anyone with very limited mobility. The feature is available natively on iOS, and you can create an even better Switch Control experience in your app with tips, tricks, and a few APIs. We’ll walk you through how people use Switch Control,...

  • WWDC20

Architecting for subscriptions

Learn how you can build simple entitlement logic to enhance the customer experience. We’ll dive deep into key concepts and provide guidance for architecting your systems to accurately entitle service. You’ll learn best practices for subscription features and how to craft the best customer...

  • WWDC20

Author fragmented MPEG-4 content with AVAssetWriter

Transform your audio and video content into fragmented MPEG-4 files for a faster and smoother HLS streaming experience. Learn how to work with the fragmented MPEG-4 format, generate fragmented content from a movie, and set up AVAssetWriter to create fragments for HLS output.

  • WWDC20

Bring keyboard and mouse gaming to iPad

Level up your iPad games and add in keyboard, mouse, and trackpad controls. Discover how to use the Game Controller framework to augment your existing titles, bring over games from other platforms, or dream up entirely new interaction experiences. Learn how to integrate keyboard and “delta”...

  • WWDC20

Build a SwiftUI view in Swift Playgrounds

Easily prototype and play around with SwiftUI views when you use them with Swift Playgrounds. We’ll show you how to build a SwiftUI view in a Xcode-compatible playground, and explore tools to help you easily edit and preview your code. For more on Swift Playgrounds, check out our interactive...

  • WWDC20

Build document-based apps in SwiftUI

Learn how to build a document-based app entirely in SwiftUI! We’ll walk you through the DocumentGroup API and how it composes with your App and Scenes, allowing you to add out-of-the-box support for document management — such as document browsing and standard commands — no heavy lifting...

  • WWDC20

Build Image and Video Style Transfer models in Create ML

Bring stylized effects to your photos and videos with Style Transfer in Create ML. Discover how you can train models in minutes that make it easy to bring creative visual features to your app. Learn about the training process and the options you have for controlling the results. And we’ll explore...

  • WWDC20

Build local push connectivity for restricted networks

Leverage local push connectivity and deliver notifications from your application server to devices on networks without an internet connection. Learn how to construct notifications for apps running in restricted network environments, helping people communicate with the same reliability and...

  • WWDC20

Build location-aware enterprise apps

Develop location-aware enterprise apps for your business and personalize your employee’s everyday experience. Learn how Apple built the Caffe Macs app for its on-campus cafeterias using iBeacons and Location Services and how you can apply these tools and frameworks to your own apps, while...

  • WWDC20

Create Swift Playgrounds content for iPad and Mac

Learn how to create Swift Playgrounds books that work fluidly across both Mac and iPad and help people of all ages explore the fun of coding in Swift. We’ll walk you through how to customize content for each platform while considering platform settings, and help you take advantage of them in your...

  • WWDC20

Debug GPU-side errors in Metal

Track down even the trickiest GPU-side programming errors with enhanced reporting in Xcode 12. While Metal’s API validation layer can catch most problems in a project, GPU errors can cause a host of difficult-to-debug issues. Get an introduction to GPU-side errors and learn how to find and...

  • WWDC20

Decode ProRes with AVFoundation and VideoToolbox

Make decoding and displaying ProRes content easier in your Mac app: Learn how to implement an optimal graphics pipeline by leveraging AVFoundation and VideoToolbox’s decoding capabilities. We’ll share best practices and performance considerations for your app, show you how to integrate...

  • WWDC20

Deploy Apple devices using zero-touch

Discover how Apple's system administrators remotely deploy Apple devices to their teams, ensuring a zero-touch deployment. Learn how to configure the setup experience, control and manage devices effectively, and discover practices around security and management.

  • WWDC20

Design for the iPadOS pointer

Bring the power of the pointer to your iPad app: We’ll show you how Apple's design team approached designing the iPadOS pointer to complement touch input, and how you can customize and refine pointer interactions in your app to make workflows more efficient and gratifying. Discover how the...

  • WWDC20

Design high quality Siri media interactions

Demystify the art of designing Siri experiences for your music and audio apps: We’ll show you how to think about crafting great interactions and how you can provide custom vocabulary so that Siri can respond with more accuracy and personality. We’ll also explain how you can debug common errors...

  • WWDC20

Discover WKWebView enhancements

WKWebView is the best way to present rich, interactive web content right within your app. Explore new APIs that help you convert apps using WebViews or UIWebViews while adding entirely new capabilities. Learn about better ways to handle JavaScript, fine tune the rendering process, export web...

  • WWDC20

Embrace Swift type inference

Swift uses type inference to help you write clean, concise code without compromising type safety. We’ll show you how the compiler seeks out clues in your code to solve the type inference puzzle. Discover what happens when the compiler can't come to a solution, and find out how Xcode 12 integrates...

  • WWDC20

Expand your SiriKit Media Intents to more platforms

Discover how you can enable Siri summoning for your music or audio app using SiriKit Media Intents. We’ll walk you through how to add Siri support to your music, podcast, or other audio service on more of our platforms, including HomePod and Apple TV, so people can start listening by just asking...

  • WWDC20

Expanding automation with the App Store Connect API

Make routine tasks in App Store Connect a thing of the past when you automate your workflow with the App Store Connect API. Learn how you can manage more about your presence on the App Store with the App Metadata API, or use the new Power and Performance Metrics and Diagnostics API to access the...

  • WWDC20

Explore numerical computing in Swift

Meet Swift Numerics: a new Swift package for computational mathematics. Take a tour of the protocols and types available in the package and find out how you can use them to write generic code. We'll also show you how and when to use the new Float16 type to improve performance and reduce memory...

  • WWDC20

Explore the Action & Vision app

It's now easy to create an app for fitness or sports coaching that takes advantage of machine learning — and to prove it, we built our own. Learn how we designed the Action & Vision app using Object Detection and Action Classification in Create ML along with the new Body Pose Estimation,...

  • WWDC20

Gain insights into your Metal app with Xcode 12

Learn how to locate graphics issues in minutes with Metal’s debugging and performance optimization tools in Xcode 12. We’ll show you how to diagnose problems quickly using Metal Debugger. Discover the new summary view, which suggests ways to improve memory usage, bandwidth, performance, and...

  • WWDC20

Get the most out of Sign in with Apple

Sign in with Apple makes it easy for people to sign in to your apps and websites with the Apple ID they already have. Fully integrate Sign in with Apple into your app using secure requests, and by handling state changes and server notifications. We’ll also introduce new APIs that allow you to let...

  • WWDC20

Getting started with HealthKit

HealthKit helps you build world-class health and fitness apps by centralizing health data from third-party apps, iPhone, Apple Watch, and external health devices. Discover how you can manage authorization and privacy around Health data, read and write data to the shared Health Store, and use...

  • WWDC20

Improve stream authoring with HLS Tools

Deliver live and on-demand audio and video to iPhone, iPad, Apple Watch, Mac, PC, and Apple TV with HTTP Live Streaming (HLS). Learn about tools and features to help improve the authoring of your HLS streams and provide low-latency delivery and better audio performance to people watching or...

  • WWDC20

Keep your complications up to date

Time is of the essence: Discover how your Apple Watch complications can provide relevant information throughout the day and help people get the information they need, when they need it. Learn best practices for capitalizing on your app’s runtime opportunities, incorporating APIs like background...

  • WWDC20

Make apps smarter with Natural Language

Explore how you can leverage the Natural Language framework to better analyze and understand text. Learn how to draw meaning from text using the framework's built-in word and sentence embeddings, and how to create your own custom embeddings for specific needs. We’ll show you how to use samples...

  • WWDC20

Meet Audio Workgroups

Fine-tune your audio app or plug-in for Apple silicon Macs: We’ll show you how to register your realtime threads using Audio Workgroups and make your app sing. Learn more about the power efficiency of System on a Chip (SoC) and how you can take advantage of new APIs to improve the speed and sound...

  • WWDC20

Optimize Metal apps and games with GPU counters

GPU counters can help you precisely measure GPU utilization to pinpoint bottlenecks and optimize workloads for your Metal apps and games. We’ll walk you through the tools available in the Metal System Trace instrument and Metal Debugger in Xcode 12 to profile your graphics workload, and show you...

  • WWDC20

Optimize the interface of your Mac Catalyst app

Discover how to tailor your Mac Catalyst app so that it looks and feels even more at home on the Mac by using the new “Optimize Interface for Mac” option in Xcode. Explore new layout and appearance options for Catalyst apps, and learn how they can provide you with graphical performance gains,...

  • WWDC20

Reduce latency with HLS Blocking Playlist Reload

Blocking Playlist Reload is a required component of Low-Latency HLS that improves segment discovery time in live streams and addresses the common problem of stale playlists when delivering through an HTTP cache. Learn how to use Blocking Playlist Reload to reduce streaming latency and improve CDN...

  • WWDC20

Shop online with AR Quick Look

AR Quick Look adds a new dimension to online shopping: We'll show you how to easily showcase your products in augmented reality for a "try before you buy" experience. Discover how to display a product banner in AR Quick Look, integrate Apple Pay, or display custom actions like "add to cart". To...

  • WWDC20

Stacks, Grids, and Outlines in SwiftUI

Display detailed data in your SwiftUI apps more quickly and efficiently with improved stacks and new list and outline views. Now available on iOS and iPadOS for the first time, outlines are a new multi-platform tool for expressing hierarchical data that work alongside stacks and lists. Learn how to...

  • WWDC20

Support performance-intensive apps and games

iOS and iPadOS provide powerful capabilities to help developers deliver breakthrough apps and games across all device generations. In certain instances, however, demanding apps with exceptional performance requirements may only be able to provide the best experience on devices with an A12 Bionic...

  • WWDC20

Swan's Quest, Chapter 3: The notable scroll

Swift Playgrounds presents "Swan’s Quest,” an interactive adventure in four chapters for all ages. Calling all musicians! In this chapter, our Hero has found a mysterious scroll of music, and only you can help decode it. (Don’t worry if you can’t read music, our clever Lizard is standing by...

  • WWDC20

Sync a Core Data store with the CloudKit public database

Discover how Core Data can help you adopt the CloudKit public database in your app with as little as one line of code. Learn how to easily manage the flow of data through your app and in and out of CloudKit. We’ll show you how to combine the complementary power of Core Data and the CloudKit...

  • WWDC20

The Push Notifications primer

Help people get the most out of your app with push notifications for important events and updates — and by delivering up-to-date data in the background, so that it is ready when they open your app. Discover how you can use notifications and alert people to timely and relevant information. Learn...

  • WWDC20

Triage test failures with XCTIssue

Put your test failures to work: Learn how to triage and diagnose uncaught issues in your app using the latest testing APIs in Xcode. We’ll show you how to help ease your testing workflow and put failures into context to help you deliver the best quality product. For more information on...

  • WWDC20

Unsafe Swift

What exactly makes code “unsafe”? Join the Swift team as we take a look at the programming language’s safety precautions — and when you might need to reach for unsafe operations. We’ll take a look at APIs that can cause unexpected states if not used correctly, and how you can write code...

  • WWDC20

What's new in ClassKit

The ClassKit framework helps you surface educational activities within your app to teachers through the Schoolwork app. Discover how to provide a richer assignment experience for students and teachers through enhanced metadata properties and progress reporting. We’ll also show you how the new...

  • WWDC20

What's new in Core NFC

Core NFC helps you scan and write to NFC tags in your apps, helping people get more from objects like parking meters, scooter rentals, car charging stations, and more. Learn about Core NFC’s support for the ISO15693 protocol and new tag capabilities, and find out more about syntax improvements...

  • WWDC20

What's new in ResearchKit

ResearchKit continues to simplify how developers build research and care apps. Explore how the latest ResearchKit updates expand the boundaries of data researchers can collect. Learn about features like enhanced onboarding, extended options for surveys, and new active tasks. Discover how Apple has...

  • WWDC20

What's new in streaming audio for Apple Watch

Deliver a smooth streaming audio experience straight to the wrist. We’ll talk about some of the new things for building great streaming apps unique to Apple Watch. Learn how to integrate more audio formats, deliver streams more efficiently through new codecs, and add encrypted content to expand...

  • WWDC20

What's new in USD

Discover proposed schema and structure updates to the Universal Scene Description (USD) standard. Learn how you can use Reality Composer to build AR content with interactive properties like anchoring, physics, behaviors, 3D text, and spatial audio that exports to USDZ. And, discover streamlined...

  • WWDC20

Write tests to fail

Plan for failure: Design great tests to help you find and diagnose even the toughest bugs. Learn how to improve your automated tests with XCTest to find hidden issues in even the best code. We’ll explain how to prepare your tests for failure to make triaging issues easier, letting you solve...

  • WWDC20

XCTSkip your tests

Get the test results that matter — and skip the ones that don’t. Discover how you can implement XCTSkip to conditionally avoid tests at runtime. We'll take you through how to return this new test result and better document tests beyond pass and fail within your test bundle. To get the most...