View in English

  • Global Nav Open Menu Global Nav Close Menu
  • Apple Developer
Search
Cancel
  • Apple Developer
  • News
  • Discover
  • Design
  • Develop
  • Distribute
  • Support
  • Account
Only search within “”

Quick Links

5 Quick Links

Vidéos

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

Plus de vidéos

  • À propos
  • Résumé
  • Transcription
  • Code
  • Proposer des expériences adaptées à l’âge dans votre app

    Découvrez comment proposer des expériences adaptées à l'âge dans votre app avec la nouvelle API Declared Age Range. Nous verrons comment les parents peuvent permettre à leur enfant de partager une tranche d'âge avec une app pour garantir une expérience sûre tout en préservant la vie privée. Nous explorerons également comment ce framework peut vous aider à adapter le contenu et les fonctionnalités de votre application en fonction de l'âge de l'utilisateur, et vous montrerons comment mettre en place des barrières d'âge, comprendre la mise en cache et respecter la vie privée des utilisateurs tout en créant des expériences plus sûres et plus attrayantes.

    Chapitres

    • 0:00 - Introduction
    • 0:34 - Contribuer à la protection des enfants en ligne
    • 2:25 - Framework Declared Age Range
    • 7:00 - Demande d’une tranche d’âge
    • 12:22 - D’autres façons d’assurer la sécurité des enfants

    Ressources

    • Declared Age Range
    • Design safe and age‑appropriate experiences for your apps and games
    • Helping Protect Kids Online
      • Vidéo HD
      • Vidéo SD

    Vidéos connexes

    WWDC25

    • Améliorez la sécurité des enfants avec PermissionKit
  • Rechercher dans cette vidéo…

    Bonjour, et bienvenue dans « Proposer des expériences adaptées à l’âge dans votre app ». Je m’appelle Austin et je suis responsable Ingénierie pour le partage familial iCloud. Dans cette vidéo, je vais aborder trois sujets. D’abord, comment contribuer à la protection des enfants en ligne. Ensuite, je présenterai le framework Declared Age Range. Et enfin, je vous montrerai comment demander une tranche d’âge et construire une expérience adaptée. Je vais commencer par vous expliquer le contexte ayant conduit à la création du framework Declared Age Range. Chez Apple, notre objectif est de créer des technologies qui responsabilisent les utilisateurs, améliorent leur vie, tout en les aidant à rester en sécurité et à protéger leur vie privée. Nous souhaitons que des personnes de tous âges aient des expériences sûres et enrichissantes avec nos produits et services.

    En février 2025, Apple a publié le livre blanc « Helping Protect Kids Online » Protéger les enfants des menaces en ligne, qu’il s’agisse de tout-petits, de préados ou d’ados demande un effort constant. Le monde numérique est de plus en plus complexe, et les risques pour les familles évoluent en permanence. Fidèle à son engagement fort pour la vie privée, la sécurité et la protection, Apple continue à améliorer les outils de confiance permettant aux parents de protéger leurs enfants tout en respectant leur vie privée. En mars 2025, Apple a introduit une configuration simplifiée pour les comptes enfant. Elle permet d’appliquer des réglages adaptés par défaut, même si les parents souhaitent finaliser plus tard la configuration du compte. Et dans iOS 26, les parents peuvent corriger facilement l’âge associé à un compte enfant en cas d’erreur. De plus, iOS 26 introduit de nouvelles classifications d’âge plus précises sur l’App Store. Il y a désormais cinq catégories : 4+, 9+, 13+, 16+, 18+. Ces classifications fournissent plus d’infos utiles sur les pages produit, et permettent aux parents d’avoir une meilleure visibilité sur l’expérience proposée. Enfin, l’API Declared Age Range fait son entrée, et c’est le sujet principal de cette vidéo. Ensuite, je vais détailler le fonctionnement du framework Declared Age Range. Dans une expérience adaptée à l’âge, l’app peut demander une tranche d’âge. L’invite est personnalisée en fonction de la requête de l’app et de l’âge de l’utilisateur. Les utilisateurs peuvent choisir de partager ou non. En fonction de cette décision, l’app peut adapter son expérience. Ici, l’app demande si l’utilisateur a 16 ans ou plus. Afin de préserver la vie privée, l’app fournit un ensemble d’âges pertinents pour son fonctionnement. L’API renvoie alors une tranche d’âge, représentée par deux nombres. Cela permet de garder la date de naissance privée. L’utilisateur ne révèle que ce qui est nécessaire pour obtenir une expérience adaptée. À présent, je vais expliquer comment différents utilisateurs peuvent déclarer leur tranche d’âge. Dans cet exemple, l’app demande les âges 13 et 16.

    Olivia a 14 ans, elle peut donc déclarer qu’elle est dans la tranche 13-15 ans.

    Emily a 9 ans, elle peut alors indiquer qu’elle a 12 ans ou moins.

    Anne a 42 ans, elle peut partager qu’elle a 16 ans ou plus. Dans chaque cas, la date de naissance n’est pas révélée à l’app. Le framework Declared Age Range est destiné aux expériences des enfants et adolescents. Par conséquent, l’API définit un âge maximum local pour toute valeur donnée. Ce maximum correspond toujours à l’âge légal adulte dans la région. Les apps ont chacune leurs exigences spécifiques. Chaque app peut spécifier jusqu’à trois âges différents dans une requête, ce qui crée quatre plages possibles. Chaque plage doit couvrir au moins deux années.

    Déterminer les âges qui conviennent à votre app dépend des expériences à offrir ou à masquer selon l’âge des utilisateurs.

    Certaines apps se basent sur des obligations légales régionales ou estiment que c’est nécessaire pour offrir la meilleure expérience. Lors de l’intégration d’un enfant, un parent peut en apprendre plus sur Declared Age Range, confirmer l’âge de son enfant, et choisir l’option de partage appropriée. Un parent peut aussi gérer cela en accédant à Famille & Réglages, en sélectionnant l’enfant, Compte Apple & mot de passe et Tranche d’âge pour les apps.

    Cette option est aussi disponible directement sur l’appareil de l’enfant en allant dans Compte Apple et Réglages, Informations personnelles, puis Tranche d’âge pour les apps. Il existe trois paramètres différents pour cette API. Cet utilisateur est en mode Toujours partager. Le mode Toujours partager renvoie automatiquement la tranche d’âge demandée par l’app. Si une nouvelle information est divulguée, une notification s’affiche.

    Cet utilisateur est en mode Demander d’abord.

    Le mode Demander d’abord affiche une invite pour choisir si l’utilisateur souhaite partager ou non.

    Cet utilisateur est en mode Ne jamais partager. Le mode Ne jamais partager refuse systématiquement le partage. Aucune invite ne s’affiche lorsque l’app demande l’âge. Garder la date de naissance confidentielle est essentiel.

    Ainsi, le framework Declared Age Range prévoit des mesures supplémentaires pour garantir la vie privée. En mode Demander d’abord, par défaut, une invite ne s’affiche qu’à l’anniversaire de la réponse initiale. De même, en mode Toujours partager, les nouvelles informations d’âge ne sont révélées qu’à la date anniversaire de la déclaration initiale.

    Voici un exemple. Si un enfant atteint l’âge de 13 ans et entre dans une nouvelle tranche d’âge, l’API continue à renvoyer 12 ans ou moins jusqu’à l’anniversaire.

    À cette date, l’API partagera automatiquement ou invitera à partager, selon les paramètres.

    Cela évite à l’utilisateur de révéler sa date de naissance.

    Enfin, un utilisateur peut aussi autoriser l’app à faire redemander pour obtenir l’âge actuel. Le week-end suivant son anniversaire, l’utilisateur est impatient d’accéder aux fonctionnalités destinées aux plus grands. Il n’a pas à attendre l’anniversaire. Dans Réglages > Tranche d’âge pour les apps, il peut effacer le cache d’une app en touchant de nouveau Partager la tranche d’âge.

    L’app recevra alors la tranche d’âge mise à jour lors de la prochaine requête.

    Pour créer une expérience adaptée à l’âge, il faut modifier les fonctionnalités de votre app pour s’assurer qu’elles conviennent aux utilisateurs. Pour illustrer cela, je vais vous montrer comment créer l’expérience adaptée que j’ai présentée plus tôt.

    Les apps peuvent désormais adapter l’expérience si elle ne convient pas à l’âge de l’utilisateur. Dans cet exemple, la fonction de partage de photos est indisponible tant que Landmarks n’a pas confirmé que la tranche d’âge de l’enfant est appropriée.

    Pour commencer, vous devez ajouter la capacité Declared Age Range à votre projet. Allez dans l’onglet Signature et fonctionnalités de la cible de votre projet et cliquez sur le bouton plus.

    Sélectionnez ensuite Declared Age Range.

    Je vais maintenant passer à l’UI de l’app d’exemple et commencer à coder. Voici l’app Landmarks. Elle affiche une liste de sites remarquables. Lorsque je touche, j’obtiens une description détaillée.

    Ceci est la vue détaillée d’un site où je veux ajouter ma nouvelle fonctionnalité de partage de photos.

    J’ajoute une variable pour suivre si la fonctionnalité est activée. J’ajoute une variable d’environnement pour indiquer à l’API dans quelle fenêtre afficher une alerte. C’est important quand votre app dispose de plusieurs fenêtres, comme sur iPad ou Mac. Puis, j’ajoute un bouton qui vérifie s’il doit être activé. Par défaut, il sera désactivé.

    Je vais maintenant me plonger dans requestAgeRangeHelper.

    Cette méthode contient toute la logique pour interroger l’API et recevoir une réponse.

    L’API permet aux apps de spécifier les âges à l’exécution. Ainsi, pour chaque région ou scénario, spécifiez les âges pertinents pour votre app dans ce contexte. Pour aller plus vite, je mets un commentaire pour implémenter plus tard un code qui détectera la région de l’utilisateur.

    Faites la demande de tranche d’âge avec la méthode requestAgeRange. Et indiquez les âges qui vous intéressent. Dans ce cas, je veux savoir si l’utilisateur a 16 ans ou plus.

    Je suis prêt à implémenter le code qui traite la réponse. La réponse renverra une énumération correspondant à partage ou refus de partage.

    Si l’énumération vaut partage, l’utilisateur a partagé, et des limites inférieure et supérieure sont renvoyées. Cela représente la tranche d’âge fournie par l’API. Si l’énumération vaut refus de partage, cela signifie que l’utilisateur refuse de partager.

    Je vais maintenant vérifier si la limite inférieure est supérieure ou égale à 16.

    Si c’est vrai, on peut supposer que la limite supérieure est nulle.

    Comme mentionné, les limites inférieures et supérieure peuvent être nulles. Cela permet de représenter des tranches comme 12 ans ou moins ou des tranches sans limite supérieure, comme 16 ans ou plus.

    S’ils ont 16 ans ou plus, j’active le bouton de partage de photos. S’ils ont 15 ans ou moins, le bouton reste désactivé. Si la tranche d’âge est partagée, vous recevrez aussi une valeur ageRangeDeclaration.

    Pour les enfants, cette valeur sera toujours guardianDeclared. Pour les adolescents, s’ils font partie d’un partage familial iCloud, ce sera guardianDeclared. S’ils ne font pas partie d’un partage familial iCloud, ce sera aussi selfDeclared.

    Pour les adultes, ce sera toujours selfDeclared. Revenons maintenant au code. L’API peut également générer une erreur. J’ajoute du code pour gérer les erreurs. L’erreur invalidRequest est générée par le développeur. Elle indique qu’il y a un problème dans la requête elle-même. Par exemple, vous avez défini une tranche d’âge inférieure à deux ans. L’erreur notAvailable indique une configuration invalide du dispositif qui doit être gérée par l’app. Par exemple, l’utilisateur ne s’est pas connecté à un compte Apple sur l’appareil. Maintenant, je vais tout assembler et démontrer l’expérience utilisateur.

    Lorsque j’ouvre la vue détaillée d’un site, une alerte s’affiche pour me demander si je souhaite indiquer que j’ai 16 ans ou plus. Je choisis de partager. Comme prévu, la fonctionnalité de partage de photos est maintenant disponible.

    Il y a encore quelques détails utiles à connaître. Comme l’API sera souvent sollicitée, le système met en cache les réponses pour éviter que l’utilisateur ne voie trop d’invites. Concrètement, cela signifie que les apps n’ont pas à craindre que l’appel à l’API déclenche trop souvent une invite à l’utilisateur.

    Les réponses mises en cache sont synchronisées entre les appareils. Par exemple, une tranche d’âge partagée sur iPhone sera synchronisée sur Mac.

    Les utilisateurs peuvent gérer les réponses mises en cache dans Réglages.

    De plus, si la limite supérieure d’une tranche d’âge est inférieure à l’âge de la majorité, l’API renvoie un ensemble de contrôles parentaux supplémentaires configurés par le parent. Ici, j’ai du code qui vérifie si les limites de communication sont activées pour l’enfant.

    Pour en savoir plus, consultez Enhance Child Safety with PermissionKit Les apps utilisant ce framework permettent aux parents de contrôler avec qui leur enfant peut communiquer dans des expériences tierces.

    Voilà pour la nouvelle API. Laissez-moi vous parler d’autres fonctionnalités pour protéger vos utilisateurs.

    L’API Sensitive Content Analysis aide les apps à offrir une expérience plus sûre en détectant et alertant les utilisateurs en cas de nudité dans les images et vidéos avant leur affichage.

    Et dans iOS 26, cette API a été étendue pour détecter et bloquer la nudité dans les appels vidéo en direct.

    Le framework Temps d’écran fournit aux apps les outils nécessaires pour aider les parents et tuteurs à superviser la navigation web de leurs enfants. Et Contrôle familial permet aux apps d’intégrer leurs propres contrôles parentaux sur l’appareil.

    Vous connaissez maintenant les expériences adaptées à l’âge. Voici ce que vous devez faire ensuite.

    Consultez les outils de protection de l’enfance d’Apple sur developer.apple.com, ajoutez des expériences adaptées à l’âge là où ça a du sens, utilisez le framework Declared Age Range pour restreindre correctement l’accès à ces expériences.

    Merci d’avoir intégré des expériences adaptées à l’âge dans votre app.

    • 8:03 - Request an age range

      // Request an age range
      
      import SwiftUI
      import DeclaredAgeRange
      
      struct LandmarkDetail: View {
          // ...
          @State var photoSharingEnabled = false
          @Environment(\.requestAgeRange) var requestAgeRange
          
          var body: some View {
              ScrollView {
                  // ...
                  Button("Share Photos") {}
                      .disabled(!photoSharingEnabled)
              }
              .task {
                  await requestAgeRangeHelper()
              }
          }
      
          func requestAgeRangeHelper() async {
              do {
                  // TODO: Check user region
                  let ageRangeResponse = try await requestAgeRange(ageGates: 16)
                  switch ageRangeResponse {
                  case let .sharing(range):
                       // Age range shared
                      if let lowerBound = range.lowerBound, lowerBound >= 16 {
                          photoSharingEnabled = true
                      }
                      // guardianDeclared, selfDeclared
                      print(range.ageRangeDeclaration)
                  case .declinedSharing:
                      // Declined to share
                      print("Declined to share")
                  }
              } catch AgeRangeService.Error.invalidRequest {
                  print("Handle invalid request error")
              } catch AgeRangeService.Error.notAvailable {
                  print("Handle not available error")
              } catch {
                  print("Unhandled error: \(error)")
              }
          }
      }
    • 11:49 - Communication Limits

      // Request an age range
      
      func requestAgeRangeHelper() async {
          do {
              // TODO: Check user region
              let ageRangeResponse = try await requestAgeRange(ageGates: 16)
              switch ageRangeResponse {
              case let .sharing(range):
                  if range.activeParentalControls.contains(.communicationLimits) {
                      print("Communication Limits enabled")
                  }
                  // ...
              case .declinedSharing:
                  // Declined to share
                  print("Declined to share")
              }
          } catch {
              // ...
          }
      }
    • 0:00 - Introduction
    • Découvrez le framework Declared Age Range et comment demander des tranches d’âge pour créer des expériences adaptées dans vos apps.

    • 0:34 - Contribuer à la protection des enfants en ligne
    • Apple a publié en février 2025 un livre blanc exposant son engagement pour la protection des enfants en ligne. Suite à cela, Apple a introduit une configuration simplifiée pour les comptes enfants. À partir d’iOS 26, les parents peuvent corriger l’âge des comptes enfants, et les classifications App Store sont plus précises (4+, 9+, 13+, 16+, 18+).

    • 2:25 - Framework Declared Age Range
    • Le framework Declared Age Range vise à protéger la vie privée des enfants et des adolescents. Lorsqu’une app demande l’âge, le framework propose des tranches d’âge au lieu de la date de naissance exacte. Chaque app peut demander jusqu’à trois âges, créant quatre tranches d’au moins deux ans chacune. Les parents peuvent choisir entre trois options de partage : Toujours partager, Demander d’abord ou Ne jamais partager. Le framework intègre aussi des âges max régionaux et des fréquences de demande par défaut pour limiter les données personnelles divulguées. Les parents peuvent gérer les tranches d’âge de leur enfant à l’activation ou dans l’app Réglages.

    • 7:00 - Demande d’une tranche d’âge
    • Vous pouvez créer des expériences adaptées en modifiant les fonctions selon l’âge de l’utilisateur. Pour cela, votre app doit activer la capacité Declared Age Range. Puis, ajoutez du code pour demander la tranche d’âge de l’utilisateur via l’API DeclaredAgeRange. L’API répond par une énumération qui indique si l’utilisateur a partagé son âge et, le cas échéant, les limites inférieure et supérieure de la tranche d’âge. L’app active ou désactive alors des fonctionnalités spécifiques, comme un bouton de partage de photos. Le système enregistre les réponses pour éviter de trop souvent demander à l’utilisateur, et ces réponses sont partagées entre ses appareils. Les utilisateurs peuvent gérer leurs réponses enregistrées dans l’app Réglages. De plus, si l’utilisateur est mineur, l’API renvoie des réglages parentaux supplémentaires.

    • 12:22 - D’autres façons d’assurer la sécurité des enfants
    • Apple offre des API et frameworks pour aider les développeurs à protéger les utilisateurs, surtout les enfants, contre la nudité dans images, vidéos et flux en direct. Vous pouvez consulter les outils de sécurité des enfants d’Apple sur developer.apple.com.

Developer Footer

  • Vidéos
  • WWDC25
  • Proposer des expériences adaptées à l’âge dans votre app
  • Open Menu Close Menu
    • iOS
    • iPadOS
    • macOS
    • tvOS
    • visionOS
    • watchOS
    Open Menu Close Menu
    • Swift
    • SwiftUI
    • Swift Playground
    • TestFlight
    • Xcode
    • Xcode Cloud
    • Icon Composer
    • SF Symbols
    Open Menu Close Menu
    • Accessibility
    • Accessories
    • App Store
    • Audio & Video
    • Augmented Reality
    • Business
    • Design
    • Distribution
    • Education
    • Fonts
    • Games
    • Health & Fitness
    • In-App Purchase
    • Localization
    • Maps & Location
    • Machine Learning & AI
    • Open Source
    • Security
    • Safari & Web
    Open Menu Close Menu
    • Documentation
    • Sample Code
    • Tutorials
    • Downloads
    • Forums
    • Videos
    Open Menu Close Menu
    • Support Articles
    • Contact Us
    • 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
    • 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
    Get the Apple Developer app.
    Copyright © 2025 Apple Inc. All rights reserved.
    Terms of Use Privacy Policy Agreements and Guidelines