2022
WWDC22 · generated catalog
WWDC22 related resources
The 332 resources — documentation, sample projects, guides and downloads — referenced by WWDC22 sessions, grouped by topic. Also available as raw TSV.
Accessibility & Inclusion · 18
- Accessibility — Make your SwiftUI apps accessible to everyone, including people with disabilities.
- Accessibility — Make your apps accessible to everyone who uses Apple devices.
- Apple Design Resources
- Apple Unity Plug-Ins on GitHub
- AutonomousSingleAppMode — The payload that configures Autonomous Single App mode.
- Delivering Rich App Experiences with Haptics — Enhance your app’s experience by incorporating haptic and sound feedback into key interactive moments.
- Dialog
- Expanding Your App to New Markets — Internationalization and Localization. Expanding Your App to New Markets.
- Game Controller — Support hardware game controllers in your game.
- Human Interface Guidelines: Game Center — HIG
- Human Interface Guidelines: Right to left
- Internationalization and Localization Guide — Explains how to create a user interface and write code that can be localized into multiple languages.
- Learn VoiceOver gestures on iPhone
- Localization — Expand the market for your app by supporting multiple languages and regions.
- Localizing package resources — Ensure that your Swift package provides localized resources for many locales.
- PHASE — Create dynamic audio experiences in your game or app that react to events and cues in the environment.
- requestGuidedAccessSession(enabled:completionHandler:) — Transitions the app to or from Single App mode asynchronously.
- Speech Synthesis Markup Language (SSML)
AI & Machine Learning · 9
- Core ML — Integrate machine learning models into your app.
- Core ML Converters — Reference documentation on coremltools including Core ML Converters
- Core ML Tools PyTorch Conversion Documentation — Full documentation of coremltools for PyTorch model conversion.
- Counting human body action repetitions in a live video feed — Use Create ML Components to analyze a series of video frames and count a person’s
- Create ML — Create machine learning models for use in your app.
- Integrating a Core ML Model into Your App — Add a simple model to an app,
- Metal — Render advanced 3D graphics and compute data in parallel with graphics processors.
- Scanning data with the camera — Enable Live Text data scanning of text and codes that appear in the camera’s viewfinder.
- Vision — Analyze image and video content in your app using computer vision algorithms for object detection, text recognition, and image segmentation.
App Services · 53
- App Clips — Create a lightweight, in-the-moment experience or demo version for your app that’s instantly available.
- App Intents — Make content and actions discoverable by Apple Intelligence and support system experiences like Siri, Spotlight, Shortcuts, and widgets.
- Apple Developer: MapKit JS
- Apple Pay — Request and process Apple Pay payments in your app.
- Apple Pay Merchant Token Management API — Retrieve and manage payment life-cycle events for your Apple Pay merchant tokens.
- Apple Pay on the Web — Support Apple Pay on your website with JavaScript-based APIs.
- Apple Pay on the Web Interactive Demo — Try configuring an Apple Pay JS button and then making a test transaction.
- ApplePayPaymentRequest — A request for payment, which includes information about payment-processing capabilities, the payment amount, and shipping information.
- Attributing ads with SKAdNetwork and Private Click Measurement — SKAdNetwork and Private Click Measurement let advertisers attribute their advertising across multiple sources — all while maintaining user privacy.
- Background Assets — Improve or eliminate the time people wait while your app downloads assets.
- BackgroundTask — The kinds of background tasks that your app or extension can handle.
- backgroundTask(_:action:) — Runs the specified action when the system provides a background task.
- CarPlay for developers — Guide to CarPlay development
- Core Bluetooth — Communicate with Bluetooth low energy and BR/EDR (“Classic”) Devices.
- Creating accessory widgets and watch complications — Support accessory widgets that appear on the Lock Screen and as complications on Apple Watch.
- Device Activity — Monitor device activity with your app extension while maintaining privacy.
- Emoji Rangers: Supporting Live Activities, interactivity, and animations — Offer Live Activities, controls, animate data updates, and add interactivity to widgets.
- Enabling Live Text interactions with images — Add a Live Text interface that enables users to perform actions with text and QR
- Example Order Packages — Edit, build, and add example order packages to Wallet.
- Explore a location with a highly detailed map and Look Around — Display a richly detailed map, and use Look Around to experience an interactive view of landmarks.
- Family Controls — Authorize your app to provide parental controls on a device.
- Finding devices with precision — Leverage the spatial awareness of ARKit and Apple Ultra Wideband Chips in your app to guide users to a nearby device.
- Focus — Adjust your app’s behavior and filter incoming notifications when the
- Human Interface Guidelines: CarPlay — HIG
- Human Interface Guidelines: SharePlay
- Human Interface Guidelines: Siri
- Human Interface Guidelines: Wallet
- Interacting with nearby points of interest — Provide automatic search completions for a partial search query, search the map for relevant locations nearby, and retrieve details for selected points of interest.
- Introduction to WebKit Content Blockers
- iOS and iPadOS Feature Availability — Choose a feature below to see if it’s supported in your region and language.
- Managed Settings — Access and change settings with your app while maintaining user privacy and control.
- MapKit — Display map or satellite imagery within your app, call out points of interest, and determine placemark information for map coordinates.
- Mapping Apple TV users to app profiles — Adapt the content of your app for the current viewer by using an entitlement and simplifying sign-in flows.
- Maps for Developers
- Migrating ClockKit complications to WidgetKit — Leverage WidgetKit’s API to create watchOS complications using SwiftUI.
- Nearby Interaction — Locate and interact with nearby devices using identifiers, distance, and direction.
- Nearby Interactions with U1
- NSBundleResourceRequest — A resource manager you use to download content hosted on the App Store at the time your app needs it.
- Offering Actions in the Shortcuts App — Suggest shortcuts users may want to add to Siri or combine with other actions in their own shortcuts.
- PassKit (Apple Pay and Wallet) — Process Apple Pay payments in your app, and create and distribute passes for the Wallet app.
- PDFAnnotationWidgetsAdvanced — Demonstrates how to use PDFKit to add widgets (interactive form elements) to your own PDF document.
- PHASE — Create dynamic audio experiences in your game or app that react to events and cues in the environment.
- Requesting identity data from a Wallet pass — Initiate a request for identity information by prompting a user for permission and decrypting a response payload.
- SFSafariViewController — An object that provides a visible standard interface for browsing the web.
- SharePlay for Developers
- SKAdNetwork — A class that validates advertisement-driven app installations.
- User Notifications — Push user-facing notifications to the user’s device from a server, or generate them locally from your app.
- Verifying Wallet identity requests — Decrypt and verify an in-app presentment request on your server.
- Wallet Orders — Create, distribute, and update orders in Wallet.
- WeatherKit — Deliver weather conditions and alerts to your users.
- 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
- WidgetKit — Extend the reach of your app by creating widgets, watch complications, Live Activities, and controls.
App Store, Distribution & Marketing · 29
- App Store - What’s New — Describes the features of the new App Store.
- App Store Connect
- App Store Connect API — The data structure that represents an app store connect api resource.
- App Store Server API — Manage your customers’ App Store transactions from your server.
- App Store Server Notifications — Monitor in-app purchase events in real time with server notifications from the App Store.
- Apple PKI — Apple established the Apple PKI in support of the generation, issuance, distribution, revocation, administration, and management of public/private cryptographic keys that are contained in CA-signed X.509 Certificates.
- Attributing ads with SKAdNetwork and Private Click Measurement — SKAdNetwork and Private Click Measurement let advertisers attribute their advertising across multiple sources — all while maintaining user privacy.
- Auto-renewable subscriptions overview — Auto-Renewable Subscriptions
- CloudKit — Store structured app and user data in iCloud containers that all users of your app can share.
- Creating API keys to authorize API requests — Create API keys you use to sign JSON Web Tokens and authorize API requests.
- 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.
- environment — The server environment, either sandbox or production.
- Gain Insights with Analytics
- Generating JSON Web Tokens for API requests — Create JSON Web Tokens signed with your private key to authorize requests for App Store Server API and External Purchase Server API.
- Get Notification History — Get a list of notifications that the App Store server attempted to send to your server.
- Get Test Notification Status — Check the status of the test App Store server notification sent to your server.
- Get Transaction History — Get a customer’s in-app purchase transaction history for your app.
- 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 a store in your app using the StoreKit API — Offer In-App Purchases and manage entitlements using signed transactions and status information.
- Implementing offer codes in your app — Enable customers to redeem offer codes through the App Store or within an app that uses receipts.
- Introducing StoreKit 2
- Learn more about setting up offer codes
- recentSubscriptionStartDate — The earliest start date of a subscription in a series of auto-renewable subscription purchases that ignores all lapses of paid service shorter than 60 days.
- Reducing Involuntary Subscriber Churn — Prevent unintentional loss of subscribers due to billing issues.
- Request a Test Notification — Ask App Store Server Notifications to send a test notification to your server.
- Responding to App Store Server Notifications — Send HTTP status codes to indicate the success of a notification post.
- Setting up StoreKit Testing in Xcode — Prepare your test environment to test in-app purchases with data you configure locally.
- SKAdNetwork — A class that validates advertisement-driven app installations.
- 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.
Audio & Video · 22
- Advanced Video Quality Tool — The Advanced Video Quality Tool, or AVQT in short, is a macOS command line tool, which estimates perceptual video quality of compressed videos, that might contain video coding and scaling artifacts. The tool expects reference (source) and test (compressed) videos as inputs and outputs frame level and segment level scores of the test video on a scale of 1 to 5, where 1 indicates bad video quality and 5 indicates excellent video quality. You can also use AVQT to compute MSE (Mean Squared Error) and PSNR (Peak Signal to Noise Ratio) scores. Please see the enclosed README for more details.
- CAEDRMetadata — Metadata describing how extended dynamic range (EDR) values should be tone mapped.
- Capturing screen content in macOS — Stream desktop content like displays, apps, and windows by adopting screen capture in your app.
- Communicating between a DriverKit extension and a client app — Send and receive different kinds of data securely by validating inputs and asynchronously by storing and using a callback.
- Core Image — Use built-in or custom filters to process still and video images.
- Creating images from a video asset — Display images for specific times within the media timeline by generating images from a video’s frames.
- Explore more content with MusicKit — Track your outdoor runs with access to the Apple Music catalog, personal recommendations, and your own personal music library.
- Generating an animation with a Core Image Render Destination — Animate a filtered image to a Metal view in a SwiftUI app using a Core Image Render Destination.
- HTTP Live Streaming 2nd Edition
- Human Interface Guidelines: Playing video
- Human Interface Guidelines: SharePlay
- Implementing drivers, system extensions, and kexts — Create drivers and system extensions to communicate with hardware and provide low-level services, and only use kernel extensions for a few tasks.
- Learn more about AVFoundation — Full featured framework for working with time-based audiovisual media on iOS, macOS, watchOS and tvOS.
- Loading media data asynchronously — Build responsive apps by using language-level concurrency features to efficiently load media data.
- Mapping Apple TV users to app profiles — Adapt the content of your app for the current viewer by using an entitlement and simplifying sign-in flows.
- Media Player — Find and play songs, audio podcasts, audio books, and more from within your app.
- MusicKit — Integrate your app with Apple Music.
- ScreenCaptureKit — Filter and select screen content and stream it to your app.
- SharePlay for Developers
- ShazamKit — Find information about a specific audio recording when a segment of it’s part of captured sound in the Shazam catalog or your custom catalog.
- System Extensions and DriverKit
- Using Apple’s HTTP Live Streaming (HLS) Tools — Segment your video stream and create media playlists for successful transmission
Business & Education · 25
- Apple Business Essentials
- Apple Business Essentials User Guide
- Apple Configurator User Guide for iPhone
- Apple Platform Deployment
- Apple Platform Security
- Apple Private PKI Repository
- AppleSeed
- AutonomousSingleAppMode — The payload that configures Autonomous Single App mode.
- Capture setup — Configure built-in cameras and microphones, and external capture devices, for media capture.
- Configuring your webpage for Sign in with Apple — Prepare your webpage to authorize users through Sign in with Apple.
- Device Activity — Monitor device activity with your app extension while maintaining privacy.
- Device Attestation Extension
- Device Management — Manage your organization’s devices remotely.
- Device Management Client Schema on GitHub
- Endpoint Security — Develop system extensions that enhance user security.
- Family Controls — Authorize your app to provide parental controls on a device.
- Hypervisor — Build virtualization solutions on top of a lightweight hypervisor, without third-party kernel extensions.
- 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.
- Managed Settings — Access and change settings with your app while maintaining user privacy and control.
- Monitoring System Events with Endpoint Security — Receive notifications and authorization requests for sensitive operations by creating an Endpoint Security client for your app.
- requestGuidedAccessSession(enabled:completionHandler:) — Transitions the app to or from Single App mode asynchronously.
- Roster API — Read information about people and classes from an Apple School Manager organization.
- Running GUI Linux in a virtual machine on a Mac — Install and run GUI Linux in a virtual machine using the Virtualization framework.
- Supporting Continuity Camera in your macOS app — Enable high-quality photo and video capture by using an iPhone camera as an external capture device.
- Virtualization — Create virtual machines and run macOS and Linux-based operating systems.
Design · 11
- App Intents — Make content and actions discoverable by Apple Intelligence and support system experiences like Siri, Spotlight, Shortcuts, and widgets.
- Apple Design Resources
- Creating a chart using Swift Charts — Make a chart by combining chart building blocks in SwiftUI.
- Explore the Human Interface Guidelines
- Human Interface Guidelines: Right to left
- Human Interface Guidelines: SharePlay
- Human Interface Guidelines: Siri
- Offering Actions in the Shortcuts App — Suggest shortcuts users may want to add to Siri or combine with other actions in their own shortcuts.
- SharePlay for Developers
- Swift Charts — Construct and customize charts on every Apple platform.
- Visualizing your app’s data — Build complex and interactive charts using Swift Charts.
Developer Tools · 23
- About continuous integration and delivery with Xcode Cloud — Learn how continuous integration and delivery with Xcode Cloud helps you create high-quality apps and frameworks.
- Adding structure to your documentation pages — Make symbols easier to find by arranging them into groups and collections.
- Adding supplemental content to a documentation catalog — Include articles and extension files to extend your source documentation comments or provide supporting conceptual content.
- Adopting iOS Dark Mode — Adopt Dark Mode in your iOS app by using dynamic colors and visual effects.
- Background Tasks — Support background processing in your app by wrapping your app’s most critical work in framework-provided tasks.
- Concepts library
- Configuring start conditions — Configure Xcode Cloud to start a build when you update a branch, pull request, or Git tag, or based on a schedule.
- Configuring webhooks in Xcode Cloud — Configure webhooks that connect Xcode Cloud to other services and tools.
- Configuring your first Xcode Cloud workflow — Set up your project or workspace to use Xcode Cloud and adopt continuous integration and delivery.
- Configuring your Xcode Cloud workflow’s actions — Add actions to an Xcode Cloud workflow to build, test, analyze, and archive your app or framework when it performs a build.
- Constraints and concepts
- Developing a workflow strategy for Xcode Cloud — Review how you can best create custom Xcode Cloud workflows to refine your continuous integration and delivery practice.
- DocC — Produce rich API reference documentation and interactive tutorials for your app, framework, or package.
- Documenting apps, frameworks, and packages — Create developer documentation from in-source comments, add articles with code snippets,
- Improving app responsiveness — Create a user experience that feels responsive by removing hangs and hitches from your app.
- Refreshing and Maintaining Your App Using Background Tasks — Use scheduled background tasks for refreshing your app content and for performing maintenance.
- SlothCreator: Building DocC documentation in Xcode — Build DocC documentation for a Swift package that contains a DocC Catalog.
- Swift Compiler Driver on GitHub — The GitHub repository for the Swift compiler driver project.
- Swift on Server
- SwiftDocCPlugin — The Swift-DocC plugin is a Swift Package Manager command plugin that supports building documentation for SwiftPM libraries and executables.
- Writing custom build scripts — Extend your Xcode Cloud workflows with custom build scripts that perform custom tasks or install additional tools.
- Xcode Cloud — Automatically build, test, and distribute your apps with Xcode Cloud to verify changes and create high-quality apps.
- Xcode Cloud workflow reference — Configure metadata, start conditions, actions, post-actions, and more to create custom Xcode Cloud workflows.
Essentials · 73
- App Intents — Make content and actions discoverable by Apple Intelligence and support system experiences like Siri, Spotlight, Shortcuts, and widgets.
- App Store Connect
- App Store Connect API — The data structure that represents an app store connect api resource.
- App Store Guidelines: User Privacy and Data Use
- Apple Design Resources
- Apple Developer: MapKit JS
- ARKit — Integrate hardware sensing features to produce augmented reality apps and games.
- AsyncSequence — A type that provides asynchronous, sequential, iterated access to its
- Attributing ads with SKAdNetwork and Private Click Measurement — SKAdNetwork and Private Click Measurement let advertisers attribute their advertising across multiple sources — all while maintaining user privacy.
- AutonomousSingleAppMode — The payload that configures Autonomous Single App mode.
- Bringing robust navigation structure to your SwiftUI app — Use navigation links, stacks, destinations, and paths to provide a streamlined experience for all platforms, as well as behaviors such as deep linking and state restoration.
- Building a productivity app for Apple Watch — Create a watch app to manage and share a task list and visualize the status with a chart.
- Celebrating learning experiences from the 2021 Swift Mentorship Program
- Concurrency — Perform asynchronous and parallel operations.
- Contribute to Swift
- Creating a chart using Swift Charts — Make a chart by combining chart building blocks in SwiftUI.
- Creating accessory widgets and watch complications — Support accessory widgets that appear on the Lock Screen and as complications on Apple Watch.
- Device Activity — Monitor device activity with your app extension while maintaining privacy.
- Dialog
- Diversity in Swift
- Emoji Rangers: Supporting Live Activities, interactivity, and animations — Offer Live Activities, controls, animate data updates, and add interactivity to widgets.
- Explore a location with a highly detailed map and Look Around — Display a richly detailed map, and use Look Around to experience an interactive view of landmarks.
- Explore the ARKit Developer Forums
- Explore the Human Interface Guidelines
- Family Controls — Authorize your app to provide parental controls on a device.
- Human Interface Guidelines: Augmented reality — Human Interface Guidelines: Augmented reality
- Human Interface Guidelines: Designing for macOS — 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: SharePlay
- Human Interface Guidelines: Siri
- Interacting with nearby points of interest — Provide automatic search completions for a partial search query, search the map for relevant locations nearby, and retrieve details for selected points of interest.
- Introduction to WebKit Content Blockers
- iOS and iPadOS Feature Availability — Choose a feature below to see if it’s supported in your region and language.
- Learn VoiceOver gestures on iPhone
- List — A container that presents rows of data arranged in a single column,
- Managed Settings — Access and change settings with your app while maintaining user privacy and control.
- Managing model data in your app — Create connections between your app’s data model and views.
- MapKit — Display map or satellite imagery within your app, call out points of interest, and determine placemark information for map coordinates.
- Maps for Developers
- Migrating to new navigation types — Improve navigation behavior in your app by replacing navigation views
- MusicKit — Integrate your app with Apple Music.
- NavigationSplitView — A view that presents views in two or three columns, where selections in
- NavigationStack — A view that displays a root view and enables you to present additional
- Offering Actions in the Shortcuts App — Suggest shortcuts users may want to add to Siri or combine with other actions in their own shortcuts.
- PDFAnnotationWidgetsAdvanced — Demonstrates how to use PDFKit to add widgets (interactive form elements) to your own PDF document.
- PhotoKit — Work with image and video assets managed by the Photos app, including those from iCloud Photos and Live Photos.
- Protecting the User’s Privacy — Secure personal data, and respect user preferences for how data is used.
- requestGuidedAccessSession(enabled:completionHandler:) — Transitions the app to or from Single App mode asynchronously.
- Selecting Photos and Videos in iOS — Improve the user experience of finding and selecting assets by using the Photos picker.
- selfSizingInvalidation
- selfSizingInvalidation
- SFSafariViewController — An object that provides a visible standard interface for browsing the web.
- ShareLink — A view that controls a sharing presentation.
- SharePlay for Developers
- Speech Synthesis Markup Language (SSML)
- Supporting desktop-class features in your iPad app — Enhance your iPad app by adding desktop-class features and document support.
- Swift Async Algorithms package
- Swift Charts — Construct and customize charts on every Apple platform.
- Swift Mentorship Program
- The Swift Programming Language — The definitive guide to Swift, Apple’s programming language for building iOS, macOS, watchOS, and tvOS apps.
- The Swift Programming Language: Concurrency — The chapter of the Language Guide in The Swift Programming Language that covers asynchronous and parallel code, including asynchronous functions (async/await), asynchronous sequences (AsyncSequence), async let, tasks, task groups, and actors.
- Tracking geographic locations in AR — Track specific geographic areas of interest and render them in an AR experience.
- UIHostingConfiguration — A content configuration suitable for hosting a hierarchy of SwiftUI views.
- UIHostingController — A UIKit view controller that manages a SwiftUI view hierarchy.
- UIKit integration — Add UIKit views to your SwiftUI app, or use SwiftUI views in your UIKit app.
- UIViewController — An object that manages a view hierarchy for your UIKit app.
- Using SwiftUI with UIKit — Learn how to incorporate SwiftUI views into a UIKit app.
- Vision — Analyze image and video content in your app using computer vision algorithms for object detection, text recognition, and image segmentation.
- Visualizing your app’s data — Build complex and interactive charts using Swift Charts.
- watchOS apps — Build watchOS apps that combine complications, notifications, and Siri to create
- 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
- WidgetKit — Extend the reach of your app by creating widgets, watch complications, Live Activities, and controls.
Graphics & Games · 38
- 4K Video (WWDC22-10103) — Download WWDC22-10103 in 4K.
- Accelerating ray tracing using Metal — Implement ray-traced rendering using GPU-based parallel processing.
- Accessibility — Make your SwiftUI apps accessible to everyone, including people with disabilities.
- Accessibility — Make your apps accessible to everyone who uses Apple devices.
- Adjusting the level of detail using Metal mesh shaders — Choose and render meshes with several levels of detail using object and mesh shaders.
- Apple Unity Plug-Ins on GitHub
- Applying temporal antialiasing and upscaling using MetalFX — Reduce render workloads while increasing image detail with MetalFX.
- ASWF USD Working Group — ASWF USD Working Group
- Building an immersive experience with RealityKit — Use systems and postprocessing effects to create a realistic underwater scene.
- CAEDRMetadata — Metadata describing how extended dynamic range (EDR) values should be tone mapped.
- Capturing photographs for RealityKit Object Capture — Take high-quality images of objects to generate 3D models.
- Capturing photographs for RealityKit Object Capture — Take high-quality images of objects to generate 3D models.
- Capturing screen content in macOS — Stream desktop content like displays, apps, and windows by adopting screen capture in your app.
- Core Image — Use built-in or custom filters to process still and video images.
- Creating a 3D application with hydra rendering — Build a 3D application that integrates with Hydra and USD.
- Creating a Game with Reality Composer — Design your app’s visual look and behaviors in Reality Composer, and complete the gameplay experience by using custom RealityKit code.
- Creating a photogrammetry command-line app — Generate 3D objects from images using RealityKit Object Capture.
- Delivering Rich App Experiences with Haptics — Enhance your app’s experience by incorporating haptic and sound feedback into key interactive moments.
- Download the LearnMetalCPP project — Resource for the WWDC22 challenge "Draw with metal-cpp!"
- Game Controller — Support hardware game controllers in your game.
- Generating an animation with a Core Image Render Destination — Animate a filtered image to a Metal view in a SwiftUI app using a Core Image Render Destination.
- Getting started with Metal-cpp — Metal-cpp is a low-overhead C++ interface for Metal that helps developers add Metal functionality to graphics apps, games, and game engines that are written in C++.
- GKLocalPlayer — The local player who signs in to Game Center on the device running the game.
- Human Interface Guidelines: Game Center — HIG
- Introduction to Universal Scene Description (USD) — Introduction to Universal Scene Description (USD)
- Learn more about AVFoundation — Full featured framework for working with time-based audiovisual media on iOS, macOS, watchOS and tvOS.
- Metal — Render advanced 3D graphics and compute data in parallel with graphics processors.
- Metal for Accelerating Ray Tracing — Use the Metal Performance Shaders ray intersector to perform ray-traced rendering.
- MetalFX — Boost your Metal app’s performance by upscaling lower-resolution content to save GPU time.
- Minimizing the binary size of a shader library — Reduce the storage footprint of your shaders, and potentially reduce their compile time, by selecting the Metal compiler’s size optimization option.
- MTLLibraryOptimizationLevel — The optimization options for the Metal compiler.
- PHASE — Create dynamic audio experiences in your game or app that react to events and cues in the environment.
- RealityKit — Simulate and render 3D content for use in your augmented reality apps.
- Rendering reflections in real time using ray tracing — Implement realistic real-time lighting by dynamically generating reflection maps
- Resource loading — Load assets in your games and apps quickly by running a dedicated input/output queue alongside your GPU tasks.
- ScreenCaptureKit — Filter and select screen content and stream it to your app.
- USDZ schemas for AR — Add augmented reality functionality to your 3D content using USDZ schemas.
- Using object capture assets in RealityKit — Create a chess game using RealityKit and assets created using Object Capture.
Health & Fitness · 11
- Accessory Design Guidelines
- Core Bluetooth — Communicate with Bluetooth low energy and BR/EDR (“Classic”) Devices.
- Creating a chart using Swift Charts — Make a chart by combining chart building blocks in SwiftUI.
- HealthKit — Access and share health and fitness data while maintaining the user’s privacy and control.
- Human Interface Guidelines: HealthKit — Get in-depth information and UI resources for designing great Health apps.
- Human Interface Guidelines: Playing video
- Human Interface Guidelines: SharePlay
- Mapping Apple TV users to app profiles — Adapt the content of your app for the current viewer by using an entitlement and simplifying sign-in flows.
- SharePlay for Developers
- Swift Charts — Construct and customize charts on every Apple platform.
- Visualizing your app’s data — Build complex and interactive charts using Swift Charts.
Maps & Location · 16
- Apple Developer: MapKit JS
- Apple Maps Server API — Reduce API calls and conserve device power by streamlining your app’s georelated searches.
- Core Bluetooth — Communicate with Bluetooth low energy and BR/EDR (“Classic”) Devices.
- Creating a Maps identifier and a private key — Create a Maps identifier and a private key before generating tokens for MapKit JS.
- Creating and using tokens with Maps Server API — Sign JSON Web Tokens to use Maps Server API and debug common signing errors.
- Explore a location with a highly detailed map and Look Around — Display a richly detailed map, and use Look Around to experience an interactive view of landmarks.
- Finding devices with precision — Leverage the spatial awareness of ARKit and Apple Ultra Wideband Chips in your app to guide users to a nearby device.
- Interacting with nearby points of interest — Provide automatic search completions for a partial search query, search the map for relevant locations nearby, and retrieve details for selected points of interest.
- iOS and iPadOS Feature Availability — Choose a feature below to see if it’s supported in your region and language.
- MapKit — Display map or satellite imagery within your app, call out points of interest, and determine placemark information for map coordinates.
- Maps for Developers
- Maps Server API test environment — Test access and responses for a variety of Apple Maps features, such as geocoding, search, and estimated time of arrival.
- Nearby Interaction — Locate and interact with nearby devices using identifiers, distance, and direction.
- Nearby Interactions with U1
- PHASE — Create dynamic audio experiences in your game or app that react to events and cues in the environment.
- WeatherKit — Deliver weather conditions and alerts to your users.
Photos & Camera · 19
- Accessing the camera while multitasking — Operate the camera in Split View, Slide Over, or Picture in Picture mode.
- Adopting Picture in Picture for video calls — Add multitasking capability to your video-call apps by using Picture in Picture (PiP).
- CAEDRMetadata — Metadata describing how extended dynamic range (EDR) values should be tone mapped.
- Capture setup — Configure built-in cameras and microphones, and external capture devices, for media capture.
- Core Image — Use built-in or custom filters to process still and video images.
- Core Media I/O — Securely support custom camera devices in macOS.
- Create a 3D model of an interior room by guiding the user through an AR experience — Highlight physical structures and display text that guides a user to scan the shape of their physical environment using a framework-provided view.
- Creating a camera extension with Core Media I/O — Build high-performance camera drivers that are secure and simple to deploy.
- Enabling Live Text interactions with images — Add a Live Text interface that enables users to perform actions with text and QR
- Generating an animation with a Core Image Render Destination — Animate a filtered image to a Metal view in a SwiftUI app using a Core Image Render Destination.
- Learn more about AVFoundation — Full featured framework for working with time-based audiovisual media on iOS, macOS, watchOS and tvOS.
- Overriding the default USB video class extension — Create a simple DriverKit extension to override the default driver-matching behavior for USB devices.
- PhotoKit — Work with image and video assets managed by the Photos app, including those from iCloud Photos and Live Photos.
- RoomPlan — Create a 3D model of a room by interactively guiding people to scan their physical environment using a device’s camera.
- Scanning data with the camera — Enable Live Text data scanning of text and codes that appear in the camera’s viewfinder.
- Selecting Photos and Videos in iOS — Improve the user experience of finding and selecting assets by using the Photos picker.
- Supporting Continuity Camera in your macOS app — Enable high-quality photo and video capture by using an iPhone camera as an external capture device.
- System Extensions and DriverKit
- TN3121: Selecting a pixel format for an AVCaptureVideoDataOutput — Learn how to choose the best output pixel format for your app.
Privacy & Security · 19
- About the security of passkeys
- App Store Guidelines: User Privacy and Data Use
- Apple Private PKI Repository
- Attributing ads with SKAdNetwork and Private Click Measurement — SKAdNetwork and Private Click Measurement let advertisers attribute their advertising across multiple sources — all while maintaining user privacy.
- Connecting to a service with passkeys — Allow users to sign in to a service without typing a password.
- Device Attestation Extension
- Device Management — Manage your organization’s devices remotely.
- Endpoint Security — Develop system extensions that enhance user security.
- 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.
- Local Authentication — Authenticate users biometrically or with a passphrase they already know.
- Monitoring System Events with Endpoint Security — Receive notifications and authorization requests for sensitive operations by creating an Endpoint Security client for your app.
- Notarizing macOS software before distribution — Give users even more confidence in your macOS software by submitting it to Apple for notarization.
- Notary API — Submit your macOS software for notarization through a web interface.
- Protecting keys with the Secure Enclave — Create an extra layer of security for your private keys.
- Protecting the User’s Privacy — Secure personal data, and respect user preferences for how data is used.
- Security Overview
- Sign in with Apple Button — You can use this page to customize Sign in with Apple buttons that align with the HIG and to enable Sign in with Apple on the web using Sign in with Apple JS.
- Supporting passkeys — Eliminate passwords for your users when they sign in to apps and websites.
- Token revocation — Invalidate the tokens and associated user authorizations for a user when they are no longer associated with your app.
Safari & Web · 37
- About the security of passkeys
- Adding a web development tool to Safari Web Inspector — Expand the built-in Safari Web Inspector to include your custom tool, augmenting developers’ options for inspecting, testing, and debugging webpages.
- Apple Developer: MapKit JS
- Apple Maps Server API — Reduce API calls and conserve device power by streamlining your app’s georelated searches.
- CKTool JS — Manage your CloudKit containers and databases from JavaScript.
- CloudKit Samples: Tooling — These sample projects demonstrate the use of CKTool JS and cktool.
- Connecting to a service with passkeys — Allow users to sign in to a service without typing a password.
- Creating a Maps identifier and a private key — Create a Maps identifier and a private key before generating tokens for MapKit JS.
- Creating and using tokens with Maps Server API — Sign JSON Web Tokens to use Maps Server API and debug common signing errors.
- Developing a Safari Web Extension — Customize and enhance web pages by building a Safari web extension.
- Dialog
- 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 a Text-Based Schema into Your Workflow — Define and update your schema with the CloudKit Schema Language.
- Introduction to WebKit Content Blockers
- Learn more about bug reporting
- Learn VoiceOver gestures on iPhone
- Maps for Developers
- Maps Server API test environment — Test access and responses for a variety of Apple Maps features, such as geocoding, search, and estimated time of arrival.
- 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.
- Modernizing Safari Web Extensions — Learn about enhancements to Safari Web Extensions.
- Notifications API — The Notifications API allows web pages to control the display of system notifications to the end user.
- Push API — The Push API gives web applications the ability to receive messages pushed to them from a server.
- 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
- Safari web extensions — Create web extensions that work in Safari and other browsers.
- Sending web push notifications in web apps and browsers — Update your web server and website to send push notifications that work in Safari, other browsers, and web apps, following cross-browser standards.
- Service Worker API
- SFSafariViewController — An object that provides a visible standard interface for browsing the web.
- Sign in with Apple Button — You can use this page to customize Sign in with Apple buttons that align with the HIG and to enable Sign in with Apple on the web using Sign in with Apple JS.
- Speech Synthesis Markup Language (SSML)
- Supporting passkeys — Eliminate passwords for your users when they sign in to apps and websites.
- Token revocation — Invalidate the tokens and associated user authorizations for a user when they are no longer associated with your app.
- WeatherKit — Deliver weather conditions and alerts to your users.
- 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
Spatial Computing · 17
- ARKit — Integrate hardware sensing features to produce augmented reality apps and games.
- ASWF USD Working Group — ASWF USD Working Group
- Building an immersive experience with RealityKit — Use systems and postprocessing effects to create a realistic underwater scene.
- Capturing photographs for RealityKit Object Capture — Take high-quality images of objects to generate 3D models.
- Capturing photographs for RealityKit Object Capture — Take high-quality images of objects to generate 3D models.
- Create a 3D model of an interior room by guiding the user through an AR experience — Highlight physical structures and display text that guides a user to scan the shape of their physical environment using a framework-provided view.
- Creating a 3D application with hydra rendering — Build a 3D application that integrates with Hydra and USD.
- Creating a Game with Reality Composer — Design your app’s visual look and behaviors in Reality Composer, and complete the gameplay experience by using custom RealityKit code.
- Creating a photogrammetry command-line app — Generate 3D objects from images using RealityKit Object Capture.
- Explore the ARKit Developer Forums
- Human Interface Guidelines: Augmented reality — Human Interface Guidelines: Augmented reality
- Introduction to Universal Scene Description (USD) — Introduction to Universal Scene Description (USD)
- RealityKit — Simulate and render 3D content for use in your augmented reality apps.
- RoomPlan — Create a 3D model of a room by interactively guiding people to scan their physical environment using a device’s camera.
- Tracking geographic locations in AR — Track specific geographic areas of interest and render them in an AR experience.
- USDZ schemas for AR — Add augmented reality functionality to your 3D content using USDZ schemas.
- Using object capture assets in RealityKit — Create a chess game using RealityKit and assets created using Object Capture.
Swift · 20
- AsyncSequence — A type that provides asynchronous, sequential, iterated access to its
- Celebrating learning experiences from the 2021 Swift Mentorship Program
- Concurrency — Perform asynchronous and parallel operations.
- Contribute to Swift
- Diversity in Swift
- SE-0336: Distributed Actor Isolation
- SE-0344: Distributed Actor Runtime
- SE-0350: Regex type and overview
- SE-0351: Regex builder DSL
- SE-0354: Regex literals
- SE-0355: Regex syntax
- SE-0357: Regex-powered algorithms
- Swift Async Algorithms package
- Swift Distributed Actors Cluster Library
- Swift Forums: Distributed Actors
- Swift Mentorship Program
- Swift on Server
- The Swift Programming Language — The definitive guide to Swift, Apple’s programming language for building iOS, macOS, watchOS, and tvOS apps.
- The Swift Programming Language: Concurrency — The chapter of the Language Guide in The Swift Programming Language that covers asynchronous and parallel code, including asynchronous functions (async/await), asynchronous sequences (AsyncSequence), async let, tasks, task groups, and actors.
- TicTacFish: Implementing a game using distributed actors — Use distributed actors to take your Swift concurrency and actor-based apps beyond a single process.
SwiftUI & UI Frameworks · 80
- AnyLayout — A type-erased instance of the layout protocol.
- AutonomousSingleAppMode — The payload that configures Autonomous Single App mode.
- BackgroundTask — The kinds of background tasks that your app or extension can handle.
- backgroundTask(_:action:) — Runs the specified action when the system provides a background task.
- Bringing multiple windows to your SwiftUI app — Compose rich views by reacting to state changes and customize your app’s scene presentation and behavior on iPadOS and macOS.
- Bringing robust navigation structure to your SwiftUI app — Use navigation links, stacks, destinations, and paths to provide a streamlined experience for all platforms, as well as behaviors such as deep linking and state restoration.
- Building a desktop-class iPad app — Optimize your iPad app’s user experience by adopting desktop-class enhancements for multitasking with Stage Manager, document interactions, text editing, search, and more.
- Building a productivity app for Apple Watch — Create a watch app to manage and share a task list and visualize the status with a chart.
- CAEDRMetadata — Metadata describing how extended dynamic range (EDR) values should be tone mapped.
- CarPlay for developers — Guide to CarPlay development
- centerItemGroups — Customizable item groups to display in the center section of the navigation bar.
- collectionView(_:contextMenuConfigurationForItemsAt:point:) — Asks the delegate for a context-menu configuration for the items at the specified index paths.
- collectionView(_:performPrimaryActionForItemAt:) — Tells the delegate to perform the primary action for the cell at the specified index path.
- Composing custom layouts with SwiftUI — Arrange views in your app’s interface using layout tools that SwiftUI provides.
- Configure your apps navigation titles — Use a navigation title to display the current navigation state of an
- contextMenu(menuItems:preview:) — Adds a context menu with a custom preview to a view.
- ControlGroup — A container view that displays semantically-related controls
- Core Image — Use built-in or custom filters to process still and video images.
- Creating a chart using Swift Charts — Make a chart by combining chart building blocks in SwiftUI.
- Creating accessory widgets and watch complications — Support accessory widgets that appear on the Lock Screen and as complications on Apple Watch.
- Dialog
- DocumentGroup — A scene that enables support for opening, creating, and saving documents.
- EditMode — A mode that indicates whether the user can edit a view’s content.
- Emoji Rangers: Supporting Live Activities, interactivity, and animations — Offer Live Activities, controls, animate data updates, and add interactivity to widgets.
- Expanding Your App to New Markets — Internationalization and Localization. Expanding Your App to New Markets.
- Generating an animation with a Core Image Render Destination — Animate a filtered image to a Metal view in a SwiftUI app using a Core Image Render Destination.
- Grid — A container view that arranges other views in a two dimensional layout.
- Human Interface Guidelines: CarPlay — HIG
- Human Interface Guidelines: Designing for macOS — 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.
- Internationalization and Localization Guide — Explains how to create a user interface and write code that can be localized into multiple languages.
- Layout — A type that defines the geometry of a collection of views.
- Layout containers — Arrange views horizontally and vertically inside container views like stacks and grids.
- Learn more about AVFoundation — Full featured framework for working with time-based audiovisual media on iOS, macOS, watchOS and tvOS.
- Learn VoiceOver gestures on iPhone
- List — A container that presents rows of data arranged in a single column,
- Localization — Expand the market for your app by supporting multiple languages and regions.
- Localizing package resources — Ensure that your Swift package provides localized resources for many locales.
- Managing model data in your app — Create connections between your app’s data model and views.
- MenuBarExtra — A scene that renders itself as a persistent control in the system menu bar.
- Migrating ClockKit complications to WidgetKit — Leverage WidgetKit’s API to create watchOS complications using SwiftUI.
- Migrating to new navigation types — Improve navigation behavior in your app by replacing navigation views
- NavigationSplitView — A view that presents views in two or three columns, where selections in
- NavigationSplitViewStyle — A type that specifies the appearance and interaction of navigation split
- NavigationStack — A view that displays a root view and enables you to present additional
- NewDocumentAction — An action that presents a new document.
- OpenDocumentAction — An action that presents an existing document.
- OpenWindowAction — An action that presents a window.
- requestGuidedAccessSession(enabled:completionHandler:) — Transitions the app to or from Single App mode asynchronously.
- searchSuggestions — A list of suggestions to offer as shortcuts below the search field.
- selfSizingInvalidation
- selfSizingInvalidation
- ShareLink — A view that controls a sharing presentation.
- Speech Synthesis Markup Language (SSML)
- Supporting desktop-class features in your iPad app — Enhance your iPad app by adding desktop-class features and document support.
- Swift Charts — Construct and customize charts on every Apple platform.
- SwiftUI — Declare the user interface and behavior for your app on every platform.
- Tables — Display selectable, sortable data arranged in rows and columns.
- titleMenuProvider — A closure that generates the navigation item’s title menu.
- ToolbarItem — A model that represents an item which can be placed in the toolbar
- ToolbarRole — The purpose of content that populates the toolbar.
- UICalendarView — A view that displays a calendar with date-specific decorations, and provides for user selection of a single date or multiple dates.
- UIDocumentProperties — Information that UIKit uses to generate a document header for a navigation item’s title menu.
- UIEditMenuInteraction — An interaction that provides edit operations using a menu.
- UIFindInteraction — An interaction that provides text finding and replacing operations using a system find panel.
- UIHostingConfiguration — A content configuration suitable for hosting a hierarchy of SwiftUI views.
- UIHostingController — A UIKit view controller that manages a SwiftUI view hierarchy.
- UIKit integration — Add UIKit views to your SwiftUI app, or use SwiftUI views in your UIKit app.
- UINavigationItem.ItemStyle — Constants that determine how the content of the navigation item lays out in the navigation bar.
- UINavigationItemRenameDelegate — Methods an object implements to rename a navigation item.
- UIPageControl — A control that displays a horizontal series of dots, each of which corresponds to a page in the app’s document or other data-model entity.
- UIViewController — An object that manages a view hierarchy for your UIKit app.
- Using SwiftUI with UIKit — Learn how to incorporate SwiftUI views into a UIKit app.
- Value and Reference Types — Types in Swift fall into one of two categories: first, “value types”, where each instance keeps a unique copy of its data, usually defined as a struct, enum, or tuple. The second, “reference types”, where instances share a single copy of the data, and the type is usually defined as a class. In this post we explore the merits of value and reference types, and how to choose between them.
- ViewThatFits — A view that adapts to the available space by providing the first
- Visualizing your app’s data — Build complex and interactive charts using Swift Charts.
- watchOS apps — Build watchOS apps that combine complications, notifications, and Siri to create
- WidgetKit — Extend the reach of your app by creating widgets, watch complications, Live Activities, and controls.
- Window — A scene that presents its content in a single, unique window.
- WindowGroup — A scene that presents a group of identically structured windows.
System Services · 35
- About the security of passkeys
- Accessory Design Guidelines
- App Store Guidelines: User Privacy and Data Use
- Attributing ads with SKAdNetwork and Private Click Measurement — SKAdNetwork and Private Click Measurement let advertisers attribute their advertising across multiple sources — all while maintaining user privacy.
- CKTool JS — Manage your CloudKit containers and databases from JavaScript.
- CloudKit — Store structured app and user data in iCloud containers that all users of your app can share.
- CloudKit Samples: Tooling — These sample projects demonstrate the use of CKTool JS and cktool.
- Communicating between a DriverKit extension and a client app — Send and receive different kinds of data securely by validating inputs and asynchronously by storing and using a callback.
- Connecting to a service with passkeys — Allow users to sign in to a service without typing a password.
- Core Bluetooth — Communicate with Bluetooth low energy and BR/EDR (“Classic”) Devices.
- Core Data — Persist or cache data on a single device, or sync data to multiple devices with CloudKit.
- Device Activity — Monitor device activity with your app extension while maintaining privacy.
- Family Controls — Authorize your app to provide parental controls on a device.
- Hypervisor — Build virtualization solutions on top of a lightweight hypervisor, without third-party kernel extensions.
- Implementing drivers, system extensions, and kexts — Create drivers and system extensions to communicate with hardware and provide low-level services, and only use kernel extensions for a few tasks.
- 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 a Text-Based Schema into Your Workflow — Define and update your schema with the CloudKit Schema Language.
- Managed Settings — Access and change settings with your app while maintaining user privacy and control.
- Managing iCloud Containers with CloudKit Database App — Inspect and modify the schema and data for your app’s iCloud container.
- Migrating your data model automatically — Enable lightweight migrations to keep your data model and the underlying data in a consistent state.
- Mirroring a Core Data store with CloudKit — Back user interfaces with a local replica of a CloudKit private database.
- Network Quality test in Go
- Network Speedtest by Ookla
- Protecting the User’s Privacy — Secure personal data, and respect user preferences for how data is used.
- Push to Talk — Display the system user interface for your app’s Push to Talk services.
- Responsiveness Test Server configuration instructions
- Running GUI Linux in a virtual machine on a Mac — Install and run GUI Linux in a virtual machine using the Virtualization framework.
- Sign in with Apple Button — You can use this page to customize Sign in with Apple buttons that align with the HIG and to enable Sign in with Apple on the web using Sign in with Apple JS.
- SMS and MMS Message Filtering — Create an app extension that identifies and filters unwanted SMS and MMS messages while preserving user privacy.
- Supporting passkeys — Eliminate passwords for your users when they sign in to apps and websites.
- Synchronizing a local store to the cloud — Share data between a user’s devices and other iCloud users.
- System Extensions and DriverKit
- Token revocation — Invalidate the tokens and associated user authorizations for a user when they are no longer associated with your app.
- Virtualization — Create virtual machines and run macOS and Linux-based operating systems.
- Waveform bufferbloat test