## Experiences ### Swift - [[Swift Macros]] - [[Metaprogramming]] - e.g, `@CaseDetection` - `#URL`’ - Allows for fixits and errors/warnings - Attached Macros - In-line expansion while debugging macros In Xcode - More xamples - `assert` - `CustomCodable` - Macros can be distributed through [[Swift Packages]] - Swift <-> [[C++]] Interoperability ### SwiftUI - Incremental adoption - Examples [[Streaks]] - [[Final Cut Pro]] - New in SwiftUI - [[Pie Charts]] - Inspector API - MapKit Support - Lots more - Animations - Animations can take initial velocity from guestures - Default to springs with duration and bounce - Animated SF Symobls - Animated symbols - `PhaseAnimator` - Full support for keyframing - `@Observable` - All publicly visible properties are automatically published ## SwiftData - `@Model` macro - Persistence - Scheme modeling - Lightweight migration - Relationships - Additional modifiers via Macros - `@Attribute` - `@Query`, shared contexts ## WidgetKit - Backgrounds can be automatically removed once you annotate them - Interactivity - Identify background - Update padding to use the default - Remove `.padding` since it’s now automatic - Add buttons / toggles that trigger AppIntents - Use `transition` APIs to customize the animations ## App Intents - Associate App Intents with App Shortcuts and they can show up in Shortcuts and Spotlight ## TipKit - Built in tips that are automatically frequency controlled ## AirDrop - `ShareLink` lets users skip the share sheet - ActivityItem in UIKit ## Hardware - Game porting toolkit - Evaluate your existing game - `AVCapture` - Zero shutter lag - Overlapping captures - Deferred processing - 3x faster shot to shot time - Volume up and down buttons - ISO HDR API - [[ScreenCaptureKit]] - For Zoom and similar - [[tvOS]] - Continuity Camera from iPhone and iPad - [[watchOS]] - Vertical tab views - `containerBackground` with gradient fills - New `ToolbarItem` placements - `NavigationSplitView` on Apple Watch - Custom Workout API - New Core Motion API for higher fidelity motion capture ## Values ### Accessibility - 1.3 billion people worldwide with disabilities - Accessible to people with disabilities in: - Vision - Hearing - Speech - Mobility - Cognitive - This year - Expanding options for users who are sensitive to flashing lights and motion - `accesibiliotyPlayAnimatedImages` - Dim Flashing Lights - Automatically darkens display of video when lights are flashing - If you use a custom player - API exists for it - visionOS comes with dozens of accessibility features ### Privacy - New add only Calendar permission - New Photo Picker design…agian - Privacy Nutrition Labels - Privacy Manifest Files - Combines them all from all third party SDKs - Then you can more easily create accurate labels in App Store Connect - Signatures for Third Party SDKs - When you update versions, it makes sure it was by the same developer - Communication Safety - Sensitive Content Analysis - Detect nudity on device - Build positive experiences in your app with children in mind - Sensitive Content Warning - Automatically blurs nudity - [[App Store]] - [[StoreKit]] - `SubscriptionStoreView` - Automatic offer detection support - `SKAdNetwork` - Re-engagement tracking support (later this year) ## Tools ### Xcode - Updated Preview Canvas - Source Editor - Completion that picks more appropriate modifiers - Automatic type safety for asset catalogs - New `#Preview` macro syntax - Works for all UI frameworks now - Updates tot he Source Control Navigator - Xcode now shows unpushed commits - Testing - Complete redesign of the Test Report - Results overview with common failure patterns and summary across devices - Heat map to show you where to focus - [[Xcode Cloud]] - 2x Faster Worfkflows - **Tester Notes in TestFlight** - **macOS notarization** - Build System - Linker is up to 5x faster - 30% smaller debug binaries - Mergeable Libraries - Mac App Store build is 50% smaller ## visionOS - [[SwiftUI]], [[RealityKit]] and [[ARKit]] are extended for [[visionOS]] - [[Shared Space]] - Apps launch here - User has agency to reposition apps - Elements - [[Windows]] - Single, scalable, 2D but can contain 3D content - [[Volume]] - 3D objects like a game board - [[Spaces]] - Dedicated space for 3D content - Getting Started - Add the visionOS Destination - [[SwiftUI]] - `ZStack` can have 3D objects - `zIndex` for emphasis or a change in modality - Create a `Volume` alongside your App Windows - Windows and volumes can also be inside a full Space - RealityKit - Sharp, responsive, reality-coupled content - Physical environment and shadows - New - Portals in 3D Scnes - Sharp text rendering - Dynamic foveation - Focused regions are higher resolution - Image Based Lighting Asssets - MATERIALX Standard - Houdini and Maya authoring - `RealityView` can be used in any kind of scene - Attachments: attach 2D SwiftUI views to 3D content. - [[ARKit]] - Plane estimation - Scene reconstruction - Image anchoring - World mapping - Hand tracking - [[Accessibility]] - [[Dynamic Type]] - [[Reduced Transparency]] - [[Headlocked Content]] - [[Developer Tools]] - Xcode Previews - Simulator - Control Via - Keyboard - Trackpad - Game Controller - Gestures - Sample Scenes in the Simulator - Visualizations - Collisions - Occlusions - [[Reality Composer Pro]] - Preview and prepare 3D Content - Import and organize 2D and 3D media - Optimized assets for Xcode - TestFlight on Vision Pro - [[Unity]] - Unity is fully compatible with visionOS - Looks and feels at home - Get started with community, tutorials, and tempaltes - More - Sound is spatial by defaults - Sharing and collaboration - SharePlay - [[Persona]] - Automatically generated face - Developer preview of special personas available later this year - [[Linda Dong]] on What’s Next - Getting started - Updates Xcode available later this month - Updated HIG - Apple Vision Pro Developer Labs - London - Munich - Shanghi - Tokyo - Cupertino