View in English

  • Apple Developer
    • Get Started

    Explore Get Started

    • Overview
    • Learn
    • Apple Developer Program

    Stay Updated

    • Latest News
    • Hello Developer
    • Platforms

    Explore Platforms

    • Apple Platforms
    • iOS
    • iPadOS
    • macOS
    • tvOS
    • visionOS
    • watchOS
    • App Store

    Featured

    • Design
    • Distribution
    • Games
    • Accessories
    • Web
    • Home
    • CarPlay
    • Technologies

    Explore Technologies

    • Overview
    • Xcode
    • Swift
    • SwiftUI

    Featured

    • Accessibility
    • App Intents
    • Apple Intelligence
    • Games
    • Machine Learning & AI
    • Security
    • Xcode Cloud
    • Community

    Explore Community

    • Overview
    • Meet with Apple events
    • Community-driven events
    • Developer Forums
    • Open Source

    Featured

    • WWDC
    • Swift Student Challenge
    • Developer Stories
    • App Store Awards
    • Apple Design Awards
    • Apple Developer Centers
    • Documentation

    Explore Documentation

    • Documentation Library
    • Technology Overviews
    • Sample Code
    • Human Interface Guidelines
    • Videos

    Release Notes

    • Featured Updates
    • iOS
    • iPadOS
    • macOS
    • watchOS
    • visionOS
    • tvOS
    • Xcode
    • Downloads

    Explore Downloads

    • All Downloads
    • Operating Systems
    • Applications
    • Design Resources

    Featured

    • Xcode
    • TestFlight
    • Fonts
    • SF Symbols
    • Icon Composer
    • Support

    Explore Support

    • Overview
    • Help Guides
    • Developer Forums
    • Feedback Assistant
    • Contact Us

    Featured

    • Account Help
    • App Review Guidelines
    • App Store Connect Help
    • Upcoming Requirements
    • Agreements and Guidelines
    • System Status
  • Quick Links

    • Events
    • News
    • Forums
    • Sample Code
    • Videos
 

Vidéos

Ouvrir le menu Fermer le menu
  • Collections
  • Toutes les vidéos
  • À propos

Plus de vidéos

  • À propos
  • Résumé
  • Code
  • Nouveautés dans watchOS 26

    Découvrez les nouvelles fonctionnalités de watchOS 26 et apprenez à les intégrer dans vos apps watchOS et iOS. Explorez l'architecture ARM64 et plongez dans le nouveau système de conception. Nous partagerons également des mises à jour pour les widgets, ainsi que des conseils pour intégrer des contrôles à l'Apple Watch.

    Chapitres

    • 0:00 - Introduction
    • 0:56 - Mise à jour pour watchOS 26
    • 3:48 - Déployer des apps vers de nouveaux environnements
    • 9:44 - Rester pertinent et à jour

    Ressources

    • Workouts and activity rings
    • Creating controls to perform actions across the system
    • Migrating ClockKit complications to WidgetKit
    • Increasing the visibility of widgets in Smart Stacks
    • Making a configurable widget
    • MapKit
      • Vidéo HD
      • Vidéo SD

    Vidéos connexes

    WWDC25

    • Créer des icônes avec Icon Composer
    • Découvrez Liquid Glass
    • Nouveautés dans les widgets

    WWDC24

    • Extend your app’s controls across the system

    WWDC23

    • Meet MapKit for SwiftUI

    WWDC22

    • Go further with Complications in WidgetKit
  • Rechercher dans cette vidéo…
    • 6:53 - Make a widget configurable

      // In the AppIntentTimelineProvider
      func recommendations() -> [AppIntentRecommendation<BeachConfigurationIntent>] {
        return []
      }
    • 7:06 - Support earlier versions of watchOS with a configurable widget

      // In the AppIntentTimelineProvider
      func recommendations() -> [AppIntentRecommendation<BeachConfigurationIntent>] {
        if #available(watchOS 26, *) {
          // Return an empty array to allow configuration of the widget in watchOS 12+
          return []
        } else {
          // Return array of recommendations for preconfigured widgets before watchOS 12
          return recommendedBeaches
        }
      }
    • 7:46 - Use AppIntentControlConfiguration to make a control configurable

      struct ConfigurableMeditationControl: ControlWidget {
        var body: some ControlWidgetConfiguration {
          AppIntentControlConfiguration(
            kind: WidgetKinds.configurableMeditationControl,
            provider: Provider()
          ) { value in
            // Provide the control's content
          }
          .displayName("Ocean Meditation")
          .description("Meditation with optional ocean sounds.")
          .promptsForUserConfiguration()
        }
      }
    • 7:56 - Use AppIntentControlValueProvider for a configurable control

      extension ConfigurableMeditationControl {
        struct Provider: AppIntentControlValueProvider {
          func previewValue(configuration: TimerConfiguration) -> Value {
            // Return the value to show in the add sheet
          }
      
          func currentValue(configuration: TimerConfiguration) async throws -> Value {
            // Return the control's value
          }
        }
      }
    • 10:53 - Relevance for a point-of-interest category

      func relevance() async -> WidgetRelevance<Void> {
        guard let context = RelevantContext.location(category: .beach) else {
          return WidgetRelevance<Void>([])
        }
        return WidgetRelevance([WidgetRelevanceAttribute(context: context)])
      }
    • 14:37 - Implement the relevance method in the RelevanceEntriesProvider

      struct BeachEventRelevanceProvider: RelevanceEntriesProvider {
        let store: BeachEventStore
      
        func relevance() async -> WidgetRelevance<BeachEventConfigurationIntent> {
          // Associate configuration intents with RelevantContexts
          let attributes = events.map { event in
            WidgetRelevanceAttribute(
              configuration: BeachEventConfigurationIntent(event: event),
              context: .date(interval: event.date, kind: .default)
            )
          }
      
          return WidgetRelevance(attributes)
        }
      }
    • 15:09 - Create a RelevanceEntry when the widget is relevant

      struct BeachEventRelevanceProvider: RelevanceEntriesProvider {
        func relevance() async -> WidgetRelevance<BeachEventConfigurationIntent> {
          // Return relevance information for the widget
        }
        
        func entry(
          configuration: BeachEventConfigurationIntent,
          context: Context
        ) async throws -> BeachEventRelevanceEntry {
          if context.isPreview {
            return .previewEntry
          }
          return BeachEventRelevanceEntry(
            event: configuration.event
          )
        }
      }
    • 15:55 - Create a placeholder entry to display when the widget is loading

      struct BeachEventRelevanceProvider: RelevanceEntriesProvider {
        func relevance() async -> WidgetRelevance<BeachEventConfigurationIntent> {
          // Return relevance information for the widget
        }
        
        func entry(
          configuration: BeachEventConfigurationIntent,
          context: Context
        ) async throws -> BeachEventRelevanceEntry {
          // Return the entry for the configuration
        }
        
        func placeholder(context: Context) -> BeachEventRelevanceEntry {
          BeachEventRelevanceEntry.placeholderEntry
        }
      }
    • 16:27 - Use a RelevanceConfiguration to create a relevant widget

      struct BeachEventWidget: Widget {
        private let model = BeachEventStore.shared
      
        var body: some WidgetConfiguration {
          RelevanceConfiguration
            kind: "BeachWidget
            provider: BeachEventRelevanceProvider(store: model)
          ) { entry in
            BeachWidgetView(entry: entry)
          }
          .configurationDisplayName("Beach Events")
          .description("Events at the beach")
        }
      }
    • 17:31 - Use associatedKind to relate the relevant widget to the timeline widget

      struct BeachEventWidget: Widget {
        private let model = BeachEventStore.shared
      
        var body: some WidgetConfiguration {
          RelevanceConfiguration
            kind: "BeachWidget
            provider: BeachEventRelevanceProvider(store: model)
          ) { entry in
            BeachWidgetView(entry: entry)
          }
          .configurationDisplayName("Beach Events")
          .description("Events at the beach")
          .associatedKind(WidgetKinds.beachEventsTimeline)
        }
      }
    • 18:06 - Create a Preview with relevanceEntries

      #Preview("Entries") {
        BeachEventWidget()
      } relevanceEntries: {
        BeachEventRelevanceEntry.previewShorebirds
        BeachEventRelevanceEntry.previewMeditation
      }
    • 18:26 - Create a Preview with relevance

      #Preview("Provider and Relevance") {
        BeachEventWidget()
      } relevanceProvider: {
        BeachEventRelevanceProvider(store: .preview)
      } relevance: {
        let configurations: [BeachEventConfigurationIntent] = [
          .previewSurfing,
          .previewMeditation,
          .previewWalk
        ]
        let attributes = configurations.map {
          WidgetRelevanceAttribute(
            configuration: $0,
            context: .date($0.event.startDate, kind: .default)
          )
        }
        return WidgetRelevance(attributes)
      }
    • 18:47 - Create a Preview with a relevanceProvider

      #Preview("Provider") {
        BeachEventWidget()
      } relevanceProvider: {
        BeachEventRelevanceProvider(store: .preview)
      }
    • 0:00 - Introduction
    • watchOS 26 offre de nouvelles fonctionnalités et introduit de nouveaux éléments à prendre en compte au sujet des plateformes.

    • 0:56 - Mise à jour pour watchOS 26
    • Explorez le nouveau système de conception sous watchOS et les mises à jour apportées aux commandes, aux icônes d’app et aux espaces système. Découvrez des astuces pour prendre en charge l’architecture arm64 sur watchOS 26.

    • 3:48 - Déployer des apps vers de nouveaux environnements
    • Étendez la présence de votre app à tout watchOS. Les commandes aident à effectuer des actions rapides et peuvent être ajoutées au Centre de contrôle, au Défilement intelligent et au bouton Action de l’Apple Watch Ultra. Les commandes sont automatiquement disponibles dans les apps iOS ou peuvent être créées directement sur watchOS. Les apps qui enregistrent les entraînements avec HealthKit peuvent être automatiquement suggérées dans le Défilement intelligent en fonction de la routine des personnes. Les API MapKit d’iOS sont également disponibles sur watchOS 26, comme la recherche d’itinéraires entre deux lieux ou l’affichage d’itinéraires sous forme de superpositions.

    • 9:44 - Rester pertinent et à jour
    • RelevanceKit propose une nouvelle façon d’afficher les widgets dans le Défilement intelligent au moment le plus pertinent, en fonction de critères comme la date, le programme de sommeil ou le lieu. La création d’un widget pertinent comporte des étapes similaires à la création d’un widget basé sur la chronologie. Découvrez des astuces pour créer et tester votre widget pertinent, mais en utilisant des aperçus.

Developer Footer

  • Vidéos
  • WWDC25
  • Nouveautés dans watchOS 26
  • Open Menu Close Menu
    • iOS
    • iPadOS
    • macOS
    • tvOS
    • visionOS
    • watchOS
    • App Store
    Open Menu Close Menu
    • Swift
    • SwiftUI
    • Swift Playground
    • TestFlight
    • Xcode
    • Xcode Cloud
    • Icon Composer
    • SF Symbols
    Open Menu Close Menu
    • Accessibility
    • Accessories
    • Apple Intelligence
    • Audio & Video
    • Augmented Reality
    • Business
    • Design
    • Distribution
    • Education
    • Games
    • Health & Fitness
    • In-App Purchase
    • Localization
    • Maps & Location
    • Machine Learning & AI
    • Security
    • Safari & Web
    Open Menu Close Menu
    • Documentation
    • Downloads
    • Sample Code
    • Videos
    Open Menu Close Menu
    • Help Guides & Articles
    • Contact Us
    • Forums
    • Feedback & Bug Reporting
    • System Status
    Open Menu Close Menu
    • Apple Developer
    • App Store Connect
    • Certificates, IDs, & Profiles
    • Feedback Assistant
    Open Menu Close Menu
    • Apple Developer Program
    • Apple Developer Enterprise Program
    • App Store Small Business Program
    • MFi Program
    • Mini Apps Partner Program
    • News Partner Program
    • Video Partner Program
    • Security Bounty Program
    • Security Research Device Program
    Open Menu Close Menu
    • Meet with Apple
    • Apple Developer Centers
    • App Store Awards
    • Apple Design Awards
    • Apple Developer Academies
    • WWDC
    Read the latest news.
    Get the Apple Developer app.
    Copyright © 2026 Apple Inc. All rights reserved.
    Terms of Use Privacy Policy Agreements and Guidelines