2020
WWDC20 · generated catalog
WWDC20 related resources
The 235 resources — documentation, sample projects, guides and downloads — referenced by WWDC20 sessions, grouped by topic. Also available as raw TSV.
Accessibility & Inclusion · 14
- Accessibility design for Mac Catalyst — Improve navigation in your app by using keyboard shortcuts and accessibility containers.
- Accessibility for UIKit — Make your UIKit apps accessible to everyone who uses iOS and tvOS.
- Auto Layout Guide — Dynamically calculate the size and position of all the views in your view hierarchy, based on constraints placed on those views.
- Autosizing views for localization in iOS — Add auto layout constraints to your app to achieve localizable views.
- Delivering an exceptional accessibility experience — Make improvements to your app’s interaction model to support assistive technologies such as VoiceOver.
- Displaying Human-Friendly Content — Convert data into readable strings or Swift objects using formatters.
- Expanding Your App to New Markets — Internationalization and Localization. Expanding Your App to New Markets.
- Language and Locale IDs — Language IDs identify a language, dialect, or script and are used to name language-specific resource folders stored in the app bundle. Locale IDs identify a set of regional conventions and are used in APIs where region information is needed to format data.
- Localization-friendly layouts in macOS — This project demonstrates localization-friendly auto layout constraints.
- PackageDescription — Create reusable code, organize it in a lightweight way, and share it across your projects and with other developers.
- Quest Create playground book — This playground book will provide you with a starting point for the entire series, Swan’s Quest.
- Swan’s Quest: Voices in the dark playground book — This playground book gives you all you need to complete the first swift playgrounds challenge in Swan’s Quest.
- Unicode Date Field Symbol Table — Unicode Date Field Symbol Table
- Xcode Help: Add language plural variants — Add language plural variants.
AI & Machine Learning · 10
- Adding custom functions to a shader graph — Run your own graph functions on the GPU by building the function programmatically.
- Building a feature-rich app for sports analysis — Detect and classify human activity in real time using computer vision and machine learning.
- Core ML — Integrate machine learning models into your app.
- Create ML — Create machine learning models for use in your app.
- Creating an Action Classifier Model — Train a machine learning model to recognize a person’s body movements.
- Detecting Hand Poses with Vision — Create a virtual drawing app by using Vision’s capability to detect hand poses.
- Metal — Render advanced 3D graphics and compute data in parallel with graphics processors.
- Metal Performance Shaders — Optimize graphics and compute performance with kernels that are fine-tuned for the unique characteristics of each Metal GPU family.
- Sample video for Action & Vision app — Sample video of bean bag toss game for testing the Action & Vision sample code project.
- Vision — Analyze image and video content in your app using computer vision algorithms for object detection, text recognition, and image segmentation.
App Services · 23
- Acceptable Use Guidelines for Apple Pay on the Web — Acceptable Use Guidelines for Apple Pay on the Web
- Adding an Apple Pay Button or a Custom Action in AR Quick Look — Provide a banner that users can tap to make a purchase or perform a custom action in an AR experience.
- Adding Shortcuts for Wind Down — Reveal your app’s shortcuts inside the Health app.
- Apple Pay — Request and process Apple Pay payments in your app.
- Apple Pay on the Web — Support Apple Pay on your website with JavaScript-based APIs.
- AR Quick Look Gallery — AR Quick Look Gallery Page
- ARKit — Integrate hardware sensing features to produce augmented reality apps and games.
- Building Widgets Using WidgetKit and SwiftUI — Create widgets to show your app’s content on the Home screen, with custom intents for user-customizable settings.
- CarPlay for developers — Guide to CarPlay development
- Creating 3D Content with Reality Composer — Assemble assets into a dynamic 3D composition that you can add to a scene in your
- Creating a widget extension — Display your app’s content in a convenient, informative widget on various devices.
- Human Interface Guidelines: CarPlay — HIG
- Human Interface Guidelines: Widgets — HIG
- If you’d like to integrate your music service with HomePod, let us know — With SiriKit Media Intents on HomePod, streaming music services can integrate directly with HomePod to deliver a seamless playback experience for their users. Users can simply ask Siri to access music and playlists from your service and play them on one or multiple HomePod speakers throughout the home. If you’d like to integrate your service with HomePod, let us know.
- Integrating Your App with Siri Event Suggestions — Donate reservations and provide quick access to event details throughout the system.
- Keeping a widget up to date — Plan your widget’s timeline to show timely, relevant information using
- Learn more about creating widgets
- Managing Audio with SiriKit — Control audio playback and handle requests to add media using SiriKit Media Intents.
- PassKit (Apple Pay and Wallet) — Process Apple Pay payments in your app, and create and distribute passes for the Wallet app.
- Providing Hands-Free App Control with Intents — Resolve, confirm, and handle intents without an extension.
- Register with Apple for Siri Event Suggestions Markup
- Soup Chef: Accelerating App Interactions with Shortcuts — Make it easy for people to use Siri with your app by providing shortcuts to your app’s actions.
- WidgetKit — Extend the reach of your app by creating widgets, watch complications, Live Activities, and controls.
App Store, Distribution & Marketing · 39
- App Clips — Create a lightweight, in-the-moment experience or demo version for your app that’s instantly available.
- App Store Connect API — The data structure that represents an app store connect api resource.
- App Store Connect API Resources — Gain the flexibility to customize your workflows so you can focus on creating great apps. This REST API lets you automate tasks on App Store Connect for increased efficiency. Use it for development, testing, and reporting within your team’s internal workflow.
- App Store Receipts — Validate app and In-App Purchase receipts with the App Store.
- App Store Server Notifications — Monitor in-app purchase events in real time with server notifications from the App Store.
- Apple Business Manager User Guide — Apple Business Manager User Guide
- Apple Configurator 2 User Guide — Apple Configurator 2 User Guide
- Apple Platform Deployment
- Apple School Manager User Guide — Apple School Manager User Guide
- AppleSeed
- AppleSeed for IT Program Planning Guide
- Authentication Services — Make it easy for users to log into apps and services.
- Auto-renewable subscriptions overview — Auto-Renewable Subscriptions
- Choosing the right functionality for your App Clip — Review frameworks available to App Clips and identify functionality that makes a great App Clip.
- Configuring App Clip experiences — Review how people launch your App Clip with invocation URLs, default and demo links, and advanced App Clip experiences.
- Deferring Apple software updates
- Determining service entitlement on the server — Identify a customer’s entitlement to your service, offers, and messaging by analyzing a validated receipt and the state of their subscription.
- Device Management — Manage your organization’s devices remotely.
- Enabling App Store Server Notifications — Configure your server and provide an HTTPS URL to receive notifications about in-app purchase events and unreported external purchase tokens.
- Fruta: Building a feature-rich app with SwiftUI — Create a shared codebase to build a multiplatform app that offers widgets and an App Clip.
- Handling refund notifications — Respond to notifications about customer refunds for consumable, non-consumable, and non-renewing subscription products.
- Handling Subscriptions Billing — Build logic around the date and time constraints of subscription products, while planning for all scenarios where you control access to content.
- Implementing introductory offers in your app — Offer introductory pricing for auto-renewable subscriptions to eligible users.
- Implementing promotional offers in your app — Offer discounted pricing for auto-renewable subscription products to eligible subscribers.
- In-App Purchase — Offer content and services in your app across Apple platforms using a Swift-based interface.
- Kerberos Single Sign-on Extension User Guide
- Learn more about App Store Connect
- Network Extension — Customize and extend core networking features.
- Offering Universal Purchase — Distribute iOS, iPadOS, watchOS, macOS, and tvOS versions of your app as a universal purchase to let customers easily enjoy your app and in‑app purchases across platforms. They’ll only need to purchase once on the App Store.
- Reducing Involuntary Subscriber Churn — Prevent unintentional loss of subscribers due to billing issues.
- Responding to invocations — Add code to respond to invocations and offer a focused launch experience.
- Setting up promotional offers — Generate a key and configure offers for auto-renewable subscriptions in App Store Connect.
- Setting up StoreKit Testing in Xcode — Prepare your test environment to test in-app purchases with data you configure locally.
- StoreKit — Support In-App Purchases and interactions with the App Store.
- StoreKit Test — Create and automate tests in Xcode for your app’s subscription and in-app purchase transactions, and SKAdNetwork implementations.
- Testing at all stages of development with Xcode and the sandbox — Verify your implementation of In-App Purchases by testing your code throughout its development.
- Testing In-App Purchases in Xcode — Use locally configured product data to test and debug your In-App Purchases implementation.
- Testing In-App Purchases with sandbox — Test your implementation of In-App Purchases using real product information and server-to-server transactions in the sandbox environment.
- Validating Receipts with the App Store — Verify transactions with the App Store on a secure server.
Audio & Video · 27
- Adopting Picture in Picture in a Custom Player — Add controls to your custom player user interface to invoke Picture in Picture (PiP) playback.
- Adopting Picture in Picture in a Standard Player — Add Picture in Picture (PiP) playback to your app using a player view controller.
- Adopting Picture in Picture Playback in tvOS — Add advanced multitasking capabilities to your video apps by using Picture in Picture playback in tvOS.
- AVFoundation — Work with audiovisual assets, control device cameras, process audio, and configure system audio interactions.
- Capturing stereo audio from built-In microphones — Configure an iOS device’s built-in microphones to add stereo recording capabilities to your app.
- CardButtonStyle — A button style that doesn’t pad the content, and applies a motion effect
- Core Image — Use built-in or custom filters to process still and video images.
- Core Media — Represent time-based audio-visual assets with essential data types.
- Editing and playing HDR video — Support high-dynamic-range (HDR) video content in your app by using the HDR editing and playback capabilities of AVFoundation.
- HTTP Live Streaming (HLS) authoring specification for Apple devices — Learn the requirements for live and on-demand audio and video content delivery using
- Human Interface Guidelines: Designing for tvOS — HIG
- Human Interface Guidelines: Playing video
- If you’d like to integrate your music service with HomePod, let us know — With SiriKit Media Intents on HomePod, streaming music services can integrate directly with HomePod to deliver a seamless playback experience for their users. Users can simply ask Siri to access music and playlists from your service and play them on one or multiple HomePod speakers throughout the home. If you’d like to integrate your service with HomePod, let us know.
- isFocused — Returns whether the nearest focusable ancestor has focus.
- Learn more about AVFoundation — Full featured framework for working with time-based audiovisual media on iOS, macOS, watchOS and tvOS.
- Learn to Make Apps with SwiftUI — Follow a series of guided tutorials to learn to make apps using SwiftUI and Xcode.
- Managing Audio with SiriKit — Control audio playback and handle requests to add media using SiriKit Media Intents.
- Personalizing Your App for Each User on Apple TV — Use account-specific storage to segregate data on a multiuser system.
- prefersDefaultFocus(_:in:) — Indicates that the view should receive focus by default for a given
- Providing Hands-Free App Control with Intents — Resolve, confirm, and handle intents without an extension.
- Recording and Streaming Your macOS App — Share screen recordings, or broadcast live audio and video of your app, by adding ReplayKit to your macOS apps and games.
- ReplayKit — Record or stream video from the screen, and audio from the app and microphone.
- Supporting Multiple Users in Your tvOS App — Store separate data for each user with the new Runs as Current User capability.
- SwiftUI — Declare the user interface and behavior for your app on every platform.
- UISearchController — A view controller that manages the display of search results based on interactions with a search bar.
- Using AVFoundation to play and persist HTTP live streams — Play HTTP Live Streams and persist streams on disk for offline playback using AVFoundation.
- Writing fragmented MPEG-4 files for HTTP Live Streaming — Create an HTTP Live Streaming presentation by turning a movie file into a sequence of fragmented MPEG-4 files.
Business & Education · 15
- App Store Review Guidelines
- Apple Business Manager User Guide — Apple Business Manager User Guide
- Apple Platform Deployment
- Apple School Manager User Guide — Apple School Manager User Guide
- AppleSeed
- AppleSeed for IT Program Planning Guide
- Authentication Services — Make it easy for users to log into apps and services.
- Automatic Assessment Configuration — Enter single-app mode and prevent students from accessing specific system features while taking an exam.
- ClassKit — Enable teachers to assign activities from your app’s content and to view student progress.
- Deferring Apple software updates
- Distributing Apps on Apple Business Manager and Apple School Manager
- Kerberos Single Sign-on Extension User Guide
- Learn more about App Store Connect
- Quest Create playground book — This playground book will provide you with a starting point for the entire series, Swan’s Quest.
- Swan’s Quest: The sequence completes playground book — This playground book will provide you with everything you need to complete the fourth and final challenge in Swan’s Quest.
Design · 19
- Accessibility for UIKit — Make your UIKit apps accessible to everyone who uses iOS and tvOS.
- Building a watchOS app — Set up your app’s life cycle and create its user interface with SwiftUI.
- Building Apps with Dynamic Type — Demonstrates several common tips and tricks for supporting Dynamic Type.
- Building Widgets Using WidgetKit and SwiftUI — Create widgets to show your app’s content on the Home screen, with custom intents for user-customizable settings.
- Choosing the right functionality for your App Clip — Review frameworks available to App Clips and identify functionality that makes a great App Clip.
- Designing for watchOS — HIG
- Enhancing your iPad app with pointer interactions — Provide a great user experience with pointing devices, by incorporating pointer content effects and shape customizations.
- Explore the Human Interface Guidelines
- Human Interface Guidelines: App Clips — An App Clip is a lightweight version of your app that lets people perform everyday tasks quickly, without downloading and installing your app.
- Human Interface Guidelines: Designing for iOS — HIG
- Human Interface Guidelines: Designing for macOS — HIG
- Human Interface Guidelines: Designing for tvOS — HIG
- Human Interface Guidelines: Game Center — HIG
- Human Interface Guidelines: Maps — HIG
- Human Interface Guidelines: Pointing devices — HIG
- Human Interface Guidelines: Typography — HIG
- Human Interface Guidelines: Widgets — HIG
- Learn to Make Apps with SwiftUI — Follow a series of guided tutorials to learn to make apps using SwiftUI and Xcode.
- SwiftUI — Declare the user interface and behavior for your app on every platform.
Developer Tools · 36
- Adding menus and shortcuts to the menu bar and user interface — Provide quick access to useful actions by adding menus and keyboard shortcuts to your Mac app built with Mac Catalyst.
- Auto Layout Guide — Dynamically calculate the size and position of all the views in your view hierarchy, based on constraints placed on those views.
- Autosizing views for localization in iOS — Add auto layout constraints to your app to achieve localizable views.
- AVFoundation — Work with audiovisual assets, control device cameras, process audio, and configure system audio interactions.
- Building a feature-rich app for sports analysis — Detect and classify human activity in real time using computer vision and machine learning.
- Core Image — Use built-in or custom filters to process still and video images.
- Core Media — Represent time-based audio-visual assets with essential data types.
- Core ML — Integrate machine learning models into your app.
- Create ML — Create machine learning models for use in your app.
- Creating a Metal dynamic library — Compile a library of shaders and write it to a file as a dynamically linked library.
- Creating an Action Classifier Model — Train a machine learning model to recognize a person’s body movements.
- Editing and playing HDR video — Support high-dynamic-range (HDR) video content in your app by using the HDR editing and playback capabilities of AVFoundation.
- Fruta: Building a feature-rich app with SwiftUI — Create a shared codebase to build a multiplatform app that offers widgets and an App Clip.
- Human Interface Guidelines: Mac Catalyst — When you use Mac Catalyst to create a Mac version of your iPad app, you make your app available to a new audience while giving existing users the opportunity to enjoy it in a new environment.
- Integrating Your App with Siri Event Suggestions — Donate reservations and provide quick access to event details throughout the system.
- Introducing Swift AWS Lambda Runtime
- Learn more about Apple Silicon
- Learn more about AVFoundation — Full featured framework for working with time-based audiovisual media on iOS, macOS, watchOS and tvOS.
- Loading and displaying a large data feed — Consume data in the background, and lower memory use by batching imports and preventing duplicate records.
- Localization-friendly layouts in macOS — This project demonstrates localization-friendly auto layout constraints.
- Mac Catalyst — Create a version of your iPad app that users can run on a Mac device.
- Metal — Render advanced 3D graphics and compute data in parallel with graphics processors.
- Metal Developer Tools on Windows — Metal Developer Tools on Windows
- Objective-C and C Code Customization — Apply macros to your Objective-C APIs to customize how they’re imported into Swift.
- Objective-C Runtime — Describes the macOS Objective-C runtime library support functions and data structures.
- Offering Universal Purchase — Distribute iOS, iPadOS, watchOS, macOS, and tvOS versions of your app as a universal purchase to let customers easily enjoy your app and in‑app purchases across platforms. They’ll only need to purchase once on the App Store.
- Optimizing your iPad app for Mac — Make your iPad app more like a Mac app by taking advantage of system features in macOS.
- Register with Apple for Siri Event Suggestions Markup
- Setting up StoreKit Testing in Xcode — Prepare your test environment to test in-app purchases with data you configure locally.
- Soup Chef: Accelerating App Interactions with Shortcuts — Make it easy for people to use Siri with your app by providing shortcuts to your app’s actions.
- StoreKit Test — Create and automate tests in Xcode for your app’s subscription and in-app purchase transactions, and SKAdNetwork implementations.
- Swift AWS Lambda Runtime on GitHub — The Swift AWS Lambda Runtime GitHub repository where you can find sample code, scripts, documentation and more.
- SwiftUI — Declare the user interface and behavior for your app on every platform.
- Testing at all stages of development with Xcode and the sandbox — Verify your implementation of In-App Purchases by testing your code throughout its development.
- Testing In-App Purchases in Xcode — Use locally configured product data to test and debug your In-App Purchases implementation.
- Testing In-App Purchases with sandbox — Test your implementation of In-App Purchases using real product information and server-to-server transactions in the sandbox environment.
Graphics & Games · 31
- Accelerating ray tracing and motion blur using Metal — Generate ray-traced images with motion blur using GPU-based parallel processing.
- Accelerating ray tracing using Metal — Implement ray-traced rendering using GPU-based parallel processing.
- Acceptable Use Guidelines for Apple Pay on the Web — Acceptable Use Guidelines for Apple Pay on the Web
- Adding an Apple Pay Button or a Custom Action in AR Quick Look — Provide a banner that users can tap to make a purchase or perform a custom action in an AR experience.
- Adding custom functions to a shader graph — Run your own graph functions on the GPU by building the function programmatically.
- AR Quick Look Gallery — AR Quick Look Gallery Page
- ARKit — Integrate hardware sensing features to produce augmented reality apps and games.
- AVFoundation — Work with audiovisual assets, control device cameras, process audio, and configure system audio interactions.
- Core Image — Use built-in or custom filters to process still and video images.
- Creating 3D Content with Reality Composer — Assemble assets into a dynamic 3D composition that you can add to a scene in your
- Creating a fog effect using scene depth — Apply virtual fog to the physical environment.
- Creating a game with scene understanding — Create AR games and experiences that interact with real-world objects on LiDAR-equipped iOS devices.
- Creating a Metal dynamic library — Compile a library of shaders and write it to a file as a dynamically linked library.
- Debugging the shaders within a draw command or compute dispatch — Identify and fix problematic shaders in your app using the shader debugger.
- Displaying a point cloud using scene depth — Present a visualization of the physical environment by placing points based a scene’s depth data.
- Game Controller — Support hardware game controllers in your game.
- Human Interface Guidelines: Game Center — HIG
- Learn more about Apple Silicon
- Metal — Render advanced 3D graphics and compute data in parallel with graphics processors.
- Metal Developer Tools on Windows — Metal Developer Tools on Windows
- Metal Feature Set Tables — Features, limits, and capabilities of Metal.
- Metal for Accelerating Ray Tracing — Use the Metal Performance Shaders ray intersector to perform ray-traced rendering.
- Metal Performance Shaders — Optimize graphics and compute performance with kernels that are fine-tuned for the unique characteristics of each Metal GPU family.
- Metal Shading Language Specification — The Metal shading language is used to write graphics and compute functions that are executed on the GPU. Version 2.0 of the Metal shading language adds new features such as Raster Order Groups, Indirect Argument Buffers, Arrays of Samplers, Uniform Types, and much more.
- Modern rendering with Metal — Use advanced Metal features such as indirect command buffers, sparse textures, and variable rate rasterization to implement complex rendering techniques.
- Playing Haptics on Game Controllers — Add haptic feedback to supported game controllers by using Core Haptics.
- RealityKit — Simulate and render 3D content for use in your augmented reality apps.
- Recording and Streaming Your macOS App — Share screen recordings, or broadcast live audio and video of your app, by adding ReplayKit to your macOS apps and games.
- Rendering a scene with deferred lighting in Objective-C — Avoid expensive lighting calculations by implementing a deferred lighting renderer optimized for immediate mode and tile-based deferred renderer GPUs.
- ReplayKit — Record or stream video from the screen, and audio from the app and microphone.
- Tracking geographic locations in AR — Track specific geographic areas of interest and render them in an AR experience.
Health & Fitness · 11
- Accessing a User’s Clinical Records — Request authorization to query HealthKit for a user’s clinical records and display them in your app.
- Accessing Health Records — Read clinical record data from the HealthKit store.
- Adding Shortcuts for Wind Down — Reveal your app’s shortcuts inside the Health app.
- CareKit — Create apps that help people better understand and manage their health.
- CareKit Repository — CareKit Source Repository
- Core Motion — Process accelerometer, gyroscope, pedometer, and environment-related events.
- Creating a Mobility Health App — Create a health app that allows a clinical care team to send and receive mobility data.
- FHIRModels Swift Package on GitHub — FHIRModels Swift Package on GitHub
- HealthKit — Access and share health and fitness data while maintaining the user’s privacy and control.
- Research and Care Website — Research and Care Website
- ResearchKit Open Source Website — ResearchKit Open Source Website
Maps & Location · 6
- Core Location — Obtain the geographic location and orientation of a device.
- Human Interface Guidelines: Maps — HIG
- Implementing interactions between users in close proximity — Enable devices to access relative positioning information.
- Integrating Your App with Siri Event Suggestions — Donate reservations and provide quick access to event details throughout the system.
- Nearby Interaction — Locate and interact with nearby devices using identifiers, distance, and direction.
- Register with Apple for Siri Event Suggestions Markup
Photos & Camera · 6
- Core Image — Use built-in or custom filters to process still and video images.
- PhotoKit — Work with image and video assets managed by the Photos app, including those from iCloud Photos and Live Photos.
- Recording and Streaming Your macOS App — Share screen recordings, or broadcast live audio and video of your app, by adding ReplayKit to your macOS apps and games.
- ReplayKit — Record or stream video from the screen, and audio from the app and microphone.
- Selecting Photos and Videos in iOS — Improve the user experience of finding and selecting assets by using the Photos picker.
- Vision — Analyze image and video content in your app using computer vision algorithms for object detection, text recognition, and image segmentation.
Privacy & Security · 15
- Authentication Services — Make it easy for users to log into apps and services.
- Automatic Assessment Configuration — Enter single-app mode and prevent students from accessing specific system features while taking an exam.
- Core Location — Obtain the geographic location and orientation of a device.
- Human Interface Guidelines: Maps — HIG
- Human Interface Guidelines: Sign in with Apple — HIG
- Implementing User Authentication with Sign in with Apple — Provide a way for users of your app to set up an account and start using your services.
- iOS Security White Paper — Apple designed the iOS platform with security at its core. This document provides details about how security technology and features are implemented within the iOS platform. It will also help organizations combine iOS platform security technology and features with their own policies and procedures to meet their specific security needs.
- Monitoring System Events with Endpoint Security — Receive notifications and authorization requests for sensitive operations by creating an Endpoint Security client for your app.
- Password AutoFill — Streamline your app’s login and onboarding procedures.
- PhotoKit — Work with image and video assets managed by the Photos app, including those from iCloud Photos and Live Photos.
- Safari Release Notes — Learn about changes for Safari and Safari View Controller for iOS, iPadOS, macOS, and in visionOS; WKWebView for iOS, iPadOS, macOS, watchOS, and in visionOS; and Web Inspector on macOS.
- Selecting Photos and Videos in iOS — Improve the user experience of finding and selecting assets by using the Photos picker.
- Sign In with Apple
- System Extensions and DriverKit
- WebKit Open Source Project — WebKit Open Source Project
Safari & Web · 32
- Acceptable Use Guidelines for Apple Pay on the Web — Acceptable Use Guidelines for Apple Pay on the Web
- Adding an Apple Pay Button or a Custom Action in AR Quick Look — Provide a banner that users can tap to make a purchase or perform a custom action in an AR experience.
- Allowing apps and websites to link to your content — Use universal links to link directly to content within your app and share data securely.
- App Clips — Create a lightweight, in-the-moment experience or demo version for your app that’s instantly available.
- Apple Design Resources
- AR Quick Look Gallery — AR Quick Look Gallery Page
- ARKit — Integrate hardware sensing features to produce augmented reality apps and games.
- Authentication Services — Make it easy for users to log into apps and services.
- Configuring App Clip experiences — Review how people launch your App Clip with invocation URLs, default and demo links, and advanced App Clip experiences.
- Creating 3D Content with Reality Composer — Assemble assets into a dynamic 3D composition that you can add to a scene in your
- Developing a Safari Web Extension — Customize and enhance web pages by building a Safari web extension.
- Explore the Human Interface Guidelines
- Fruta: Building a feature-rich app with SwiftUI — Create a shared codebase to build a multiplatform app that offers widgets and an App Clip.
- Human Interface Guidelines: Sign in with Apple — HIG
- Human Interface Guidelines: Watch faces
- Implementing User Authentication with Sign in with Apple — Provide a way for users of your app to set up an account and start using your services.
- Integrating Your App with Siri Event Suggestions — Donate reservations and provide quick access to event details throughout the system.
- Intelligent Tracking Prevention — Intelligent Tracking Prevention
- MDN Web Docs - Web Extensions API — JavaScript APIs for web extensions.
- Messaging a Web Extension’s Native App — Communicate between your Safari web extension and its containing app.
- Password AutoFill — Streamline your app’s login and onboarding procedures.
- Register with Apple for Siri Event Suggestions Markup
- Responding to invocations — Add code to respond to invocations and offer a focused launch experience.
- Safari Release Notes — Learn about changes for Safari and Safari View Controller for iOS, iPadOS, macOS, and in visionOS; WKWebView for iOS, iPadOS, macOS, watchOS, and in visionOS; and Web Inspector on macOS.
- Safari Technology Preview — Safari Technology Preview
- Sharing an Apple Watch face — Distribute a customized watch face to Apple Watch users.
- Sign In with Apple
- Supporting universal links in your app — Prepare your app to respond to an incoming universal link.
- Web Inspector Reference — Web Inspector Documentation
- WebKit — Integrate web content seamlessly into your app, and customize content interactions to meet your app’s needs.
- WebKit Open Source Project — WebKit Open Source Project
- WKWebView — An object that displays interactive web content, such as for an in-app browser.
Spatial Computing · 10
- Acceptable Use Guidelines for Apple Pay on the Web — Acceptable Use Guidelines for Apple Pay on the Web
- Adding an Apple Pay Button or a Custom Action in AR Quick Look — Provide a banner that users can tap to make a purchase or perform a custom action in an AR experience.
- AR Quick Look Gallery — AR Quick Look Gallery Page
- ARKit — Integrate hardware sensing features to produce augmented reality apps and games.
- Creating 3D Content with Reality Composer — Assemble assets into a dynamic 3D composition that you can add to a scene in your
- Creating a fog effect using scene depth — Apply virtual fog to the physical environment.
- Creating a game with scene understanding — Create AR games and experiences that interact with real-world objects on LiDAR-equipped iOS devices.
- Displaying a point cloud using scene depth — Present a visualization of the physical environment by placing points based a scene’s depth data.
- RealityKit — Simulate and render 3D content for use in your augmented reality apps.
- Tracking geographic locations in AR — Track specific geographic areas of interest and render them in an AR experience.
Swift · 32
- App — A type that represents the structure and behavior of an app.
- Building Widgets Using WidgetKit and SwiftUI — Create widgets to show your app’s content on the Home screen, with custom intents for user-customizable settings.
- Create ML — Create machine learning models for use in your app.
- Creating a widget extension — Display your app’s content in a convenient, informative widget on various devices.
- DocumentGroup — A scene that enables support for opening, creating, and saving documents.
- Float16 — A half-precision (16-bit), floating-point value type.
- Fruta: Building a feature-rich app with SwiftUI — Create a shared codebase to build a multiplatform app that offers widgets and an App Clip.
- Human Interface Guidelines: Widgets — HIG
- Keeping a widget up to date — Plan your widget’s timeline to show timely, relevant information using
- Language and Locale IDs — Language IDs identify a language, dialect, or script and are used to name language-specific resource folders stored in the app bundle. Locale IDs identify a set of regional conventions and are used in APIs where region information is needed to format data.
- Learn more about creating widgets
- Manual Memory Management — Allocate and manage memory manually.
- Model data — Manage the data that your app uses to drive its interface.
- Numeric Protocols — Write generic code that works with any numeric type.
- Objective-C and C Code Customization — Apply macros to your Objective-C APIs to customize how they’re imported into Swift.
- PackageDescription — Create reusable code, organize it in a lightweight way, and share it across your projects and with other developers.
- Quest Create playground book — This playground book will provide you with a starting point for the entire series, Swan’s Quest.
- Scene — A part of an app’s user interface with a life cycle managed by the
- Swan’s Quest: A time for tones playground book — This playground book will provide you with everything you need to complete the second challenge in Swan’s Quest.
- Swan’s Quest: The notable scroll playground book — This playground book will provide you with everything you need to complete the third challenge in Swan’s Quest.
- Swan’s Quest: The sequence completes playground book — This playground book will provide you with everything you need to complete the fourth and final challenge in Swan’s Quest.
- Swan’s Quest: Voices in the dark playground book — This playground book gives you all you need to complete the first swift playgrounds challenge in Swan’s Quest.
- Swift Argument Parser on GitHub — Straightforward, type-safe argument parsing for Swift.
- Swift Evolution — The list of Swift Evolution proposals.
- Swift Numerics on GitHub — Swift Numerics provides a set of modules that support numerical computing in Swift.
- Swift Standard Library Preview — Provides access to new functionality that has been accepted into the standard library through the Swift Evolution process, but has not yet shipped as part of an official Swift release.
- SwiftUI — Declare the user interface and behavior for your app on every platform.
- The Swift Programming Language — The definitive guide to Swift, Apple’s programming language for building iOS, macOS, watchOS, and tvOS apps.
- Uniform Type Identifiers — Provide uniform type identifiers that describe file types for storage or transfer.
- View Layout and Presentation — Combine views in stacks, generate groups and lists of views dynamically, and define
- WidgetKit — Extend the reach of your app by creating widgets, watch complications, Live Activities, and controls.
- WindowGroup — A scene that presents a group of identically structured windows.
SwiftUI & UI Frameworks · 78
- Accessibility design for Mac Catalyst — Improve navigation in your app by using keyboard shortcuts and accessibility containers.
- Accessibility for UIKit — Make your UIKit apps accessible to everyone who uses iOS and tvOS.
- Adding hardware keyboard support to your app — Enhance interactions with your app by handling raw keyboard events, writing custom keyboard shortcuts, and working with gesture recognizers.
- Adding menus and shortcuts to the menu bar and user interface — Provide quick access to useful actions by adding menus and keyboard shortcuts to your Mac app built with Mac Catalyst.
- Adopting menus and UIActions in your user interface — Add menus to your user interface, with built-in button support and bar-button items, and create custom menu experiences.
- Adopting Picture in Picture in a Custom Player — Add controls to your custom player user interface to invoke Picture in Picture (PiP) playback.
- Adopting Picture in Picture in a Standard Player — Add Picture in Picture (PiP) playback to your app using a player view controller.
- Adopting Picture in Picture Playback in tvOS — Add advanced multitasking capabilities to your video apps by using Picture in Picture playback in tvOS.
- App — A type that represents the structure and behavior of an app.
- App Clips — Create a lightweight, in-the-moment experience or demo version for your app that’s instantly available.
- Apple Design Resources
- Authentication Services — Make it easy for users to log into apps and services.
- Building a watchOS app — Set up your app’s life cycle and create its user interface with SwiftUI.
- Building Widgets Using WidgetKit and SwiftUI — Create widgets to show your app’s content on the Home screen, with custom intents for user-customizable settings.
- CardButtonStyle — A button style that doesn’t pad the content, and applies a motion effect
- Choosing the right functionality for your App Clip — Review frameworks available to App Clips and identify functionality that makes a great App Clip.
- CKDatabase — An object that represents a collection of record zones and subscriptions.
- ClockKit — Display app-specific data on the clock face.
- Configuring App Clip experiences — Review how people launch your App Clip with invocation URLs, default and demo links, and advanced App Clip experiences.
- Creating a widget extension — Display your app’s content in a convenient, informative widget on various devices.
- Creating an App Clip with Xcode — Add an App Clip target to your Xcode project and share code between the App Clip and its corresponding full app.
- Creating and updating a complication’s timeline — Create complications that batch-load a timeline of future entries and run periodic background sessions to update the timeline.
- Creating NFC Tags from Your iPhone — Save data to tags, and interact with them using native tag protocols.
- Customizing Scribble with Interactions — Enable writing on a non-text-input view by adding interactions.
- Delivering an exceptional accessibility experience — Make improvements to your app’s interaction model to support assistive technologies such as VoiceOver.
- Developing a Safari Web Extension — Customize and enhance web pages by building a Safari web extension.
- DocumentGroup — A scene that enables support for opening, creating, and saving documents.
- Drawing with PencilKit — Add expressive, low-latency drawing to your app using PencilKit.
- Enhancing your iPad app with pointer interactions — Provide a great user experience with pointing devices, by incorporating pointer content effects and shape customizations.
- Explore the Human Interface Guidelines
- Fruta: Building a feature-rich app with SwiftUI — Create a shared codebase to build a multiplatform app that offers widgets and an App Clip.
- Game Controller — Support hardware game controllers in your game.
- Human Interface Guidelines: App Clips — An App Clip is a lightweight version of your app that lets people perform everyday tasks quickly, without downloading and installing your app.
- Human Interface Guidelines: Designing for iOS — HIG
- Human Interface Guidelines: Designing for tvOS — HIG
- Human Interface Guidelines: Mac Catalyst — When you use Mac Catalyst to create a Mac version of your iPad app, you make your app available to a new audience while giving existing users the opportunity to enjoy it in a new environment.
- Human Interface Guidelines: Playing video
- Human Interface Guidelines: Pointing devices — HIG
- Human Interface Guidelines: Sidebars
- Human Interface Guidelines: Split views
- Human Interface Guidelines: Watch faces
- Human Interface Guidelines: Widgets — HIG
- Implementing modern collection views — Bring compositional layouts to your app and simplify updating your user interface with diffable data sources.
- Implementing User Authentication with Sign in with Apple — Provide a way for users of your app to set up an account and start using your services.
- Inspecting, Modifying, and Constructing PencilKit Drawings — Score users’ ability to match PencilKit drawings generated from text, by accessing the strokes and points inside PencilKit drawings.
- isFocused — Returns whether the nearest focusable ancestor has focus.
- Keeping a widget up to date — Plan your widget’s timeline to show timely, relevant information using
- Learn more about creating app clips
- Learn more about creating widgets
- Learn to Make Apps with SwiftUI — Follow a series of guided tutorials to learn to make apps using SwiftUI and Xcode.
- Loading and displaying a large data feed — Consume data in the background, and lower memory use by batching imports and preventing duplicate records.
- Mac Catalyst — Create a version of your iPad app that users can run on a Mac device.
- MDN Web Docs - Web Extensions API — JavaScript APIs for web extensions.
- Messaging a Web Extension’s Native App — Communicate between your Safari web extension and its containing app.
- Mirroring a Core Data store with CloudKit — Back user interfaces with a local replica of a CloudKit private database.
- Model data — Manage the data that your app uses to drive its interface.
- Offering Universal Purchase — Distribute iOS, iPadOS, watchOS, macOS, and tvOS versions of your app as a universal purchase to let customers easily enjoy your app and in‑app purchases across platforms. They’ll only need to purchase once on the App Store.
- Optimizing your iPad app for Mac — Make your iPad app more like a Mac app by taking advantage of system features in macOS.
- Password AutoFill — Streamline your app’s login and onboarding procedures.
- PhotoKit — Work with image and video assets managed by the Photos app, including those from iCloud Photos and Live Photos.
- prefersDefaultFocus(_:in:) — Indicates that the view should receive focus by default for a given
- Responding to invocations — Add code to respond to invocations and offer a focused launch experience.
- Scene — A part of an app’s user interface with a life cycle managed by the
- Selecting Photos and Videos in iOS — Improve the user experience of finding and selecting assets by using the Photos picker.
- Sharing an Apple Watch face — Distribute a customized watch face to Apple Watch users.
- Sign In with Apple
- Supporting Multiple Users in Your tvOS App — Store separate data for each user with the new Runs as Current User capability.
- SwiftUI — Declare the user interface and behavior for your app on every platform.
- Synchronizing a local store to the cloud — Share data between a user’s devices and other iCloud users.
- UIResponderStandardEditActions — A set of standard methods that apps can adopt to support editing.
- UISearchController — A view controller that manages the display of search results based on interactions with a search bar.
- UISplitViewController — A container view controller that implements a hierarchical interface.
- Uniform Type Identifiers — Provide uniform type identifiers that describe file types for storage or transfer.
- URLSession Programming Guide
- View Layout and Presentation — Combine views in stacks, generate groups and lists of views dynamically, and define
- WatchKit — Build watchOS apps that use features the app delegate monitors or controls, such as background tasks and extended runtime sessions.
- WidgetKit — Extend the reach of your app by creating widgets, watch complications, Live Activities, and controls.
- WindowGroup — A scene that presents a group of identically structured windows.
System Services · 26
- Adding hardware keyboard support to your app — Enhance interactions with your app by handling raw keyboard events, writing custom keyboard shortcuts, and working with gesture recognizers.
- Allowing apps and websites to link to your content — Use universal links to link directly to content within your app and share data securely.
- Building a custom peer-to-peer protocol — Use networking frameworks to create a custom protocol for playing a game across iOS, iPadOS, watchOS, and tvOS devices.
- CallKit — Display the system-calling UI for your app’s VoIP services, and coordinate your calling services with other apps and the system.
- CKDatabase — An object that represents a collection of record zones and subscriptions.
- ClockKit — Display app-specific data on the clock face.
- Creating and updating a complication’s timeline — Create complications that batch-load a timeline of future entries and run periodic background sessions to update the timeline.
- Game Controller — Support hardware game controllers in your game.
- Human Interface Guidelines: Sign in with Apple — HIG
- Implementing Alert Push Notifications — Add visible alert notifications to your app by using the UserNotifications framework.
- Implementing Background Push Notifications — Add background notifications to your app by using the UserNotifications framework.
- Implementing User Authentication with Sign in with Apple — Provide a way for users of your app to set up an account and start using your services.
- Loading and displaying a large data feed — Consume data in the background, and lower memory use by batching imports and preventing duplicate records.
- Mirroring a Core Data store with CloudKit — Back user interfaces with a local replica of a CloudKit private database.
- Model data — Manage the data that your app uses to drive its interface.
- Monitoring System Events with Endpoint Security — Receive notifications and authorization requests for sensitive operations by creating an Endpoint Security client for your app.
- NEAppPushProvider entitlement application — Link to NEAppPushProvider entitlement application for developers to seek permission to use this entitlement.
- Playing Haptics on Game Controllers — Add haptic feedback to supported game controllers by using Core Haptics.
- Receiving Voice and Text Communications on a Local Network — Provide voice and text communication on a local network isolated from Apple Push Notification service by adopting Local Push Connectivity.
- Sign In with Apple
- Supporting universal links in your app — Prepare your app to respond to an incoming universal link.
- Synchronizing a local store to the cloud — Share data between a user’s devices and other iCloud users.
- System Extensions and DriverKit
- UIResponderStandardEditActions — A set of standard methods that apps can adopt to support editing.
- URLSession Programming Guide
- WatchKit — Build watchOS apps that use features the app delegate monitors or controls, such as background tasks and extended runtime sessions.