
-
Ofrece experiencias apropiadas para la edad en tu app
Aprende a ofrecer experiencias apropiadas para cada edad en tu app con la nueva API Declared Age Range. Hablaremos sobre cómo los padres pueden permitir que los niños compartan un rango de edad con una app para garantizar una experiencia segura. Exploraremos cómo esta estructura puede ayudarte a adaptar el contenido y las funcionalidades de tu app en función de la edad, y mostraremos cómo implementar límites de edad, comprender el almacenamiento en caché y respetar la privacidad mientras creas experiencias más seguras y atractivas.
Capítulos
- 0:00 - Introducción
- 0:34 - Ayuda a proteger a los niños en línea
- 2:25 - Estructura Declared Age Range
- 7:00 - Solicita un rango de edad
- 12:22 - Más formas de mantener a los niños seguros
Recursos
- Declared Age Range
- Design safe and age‑appropriate experiences for your apps and games
- Helping Protect Kids Online
Videos relacionados
WWDC25
-
Buscar este video…
Hola, te doy la bienvenida a “Ofrece experiencias adecuadas a la edad en tu app”. Soy Austin, gerente de ingeniería de iCloud Family. En este video, abordaré tres temas. Primero, cómo ayudar a proteger a los niños en línea. Luego, explicaré la estructura Declared Age Range. Y, por último, te mostraré cómo solicitar un rango de edad y crear una experiencia apropiada para cada etapa. Comenzaré con el contexto que nos llevó a crear la estructura Declared Age Range. En Apple, nuestro objetivo es diseñar tecnología que empodere a las personas y enriquezca sus vidas, ayudándolas a mantenerse seguras en línea y a proteger su privacidad. Queremos que personas de todas las edades disfruten experiencias excelentes y seguras con nuestros productos y servicios.
En febrero de 2025, Apple publicó el documento técnico “Helping Protect Kids Online”. Proteger a los menores (niños pequeños, preadolescentes o adolescentes) de las amenazas digitales exige un esfuerzo continuo. El mundo digital es cada vez más complejo y los riesgos para las familias cambian constantemente. Partiendo del compromiso profundo de Apple con la privacidad, la seguridad y la protección, seguimos mejorando las herramientas de confianza que ofrecemos para que los padres protejan a sus hijos de forma pensada para preservar la privacidad. En marzo de 2025, Apple lanzó un flujo simplificado de configuración infantil que aplica ajustes predeterminados adecuados a menores si los padres prefieren posponer la configuración completa de la cuenta de un niño. Y, en iOS 26, los padres pueden corregir fácilmente la edad asociada a la cuenta de su hijo si se introdujo de manera incorrecta. También en iOS 26 cambió la clasificación global por edades del App Store para aportar más granularidad. Actualmente hay cinco categorías: 4+, 9+, 13+, 16+, 18+. Las clasificaciones ofrecen información más útil en las páginas de producto y brinda a los padres mayor conocimiento sobre la experiencia de sus hijos. Por último, se presenta la nueva API Declared Age Range, tema central de este video. Pasemos a los detalles de la estructura Declared Age Range. En una experiencia adecuada a la edad, la app puede solicitar un rango de edad. La solicitud se personaliza según lo que la app pida y la edad del usuario. Las personas pueden elegir compartir o no compartir esa información. Según su decisión, la app puede adaptar la experiencia. Aquí la app pregunta si el usuario tiene 16 años o más. Para preservar la privacidad, la app ofrece un conjunto de edades relevantes para su experiencia. La API devuelve un rango de edad formado por dos números, lo que ayuda a mantener la fecha de nacimiento en privado. El usuario solo revela lo necesario para obtener la experiencia adecuada. Veamos cómo distintos usuarios pueden declarar su rango de edad. En este ejemplo la app solicita las edades 13 y 16.
Olivia tiene 14 años, así que puede declarar que está en el rango de 13 a 15.
Emily tiene 9, de modo que puede indicar que pertenece a 12 o menos.
Ann tiene 42, por lo que puede compartir que está en 16 o más. En ningún caso la fecha de nacimiento se revela a la app. La estructura Declared Age Range está diseñado para experiencias de niños y adolescentes. Por lo tanto, la API establece un máximo regional para cualquier edad proporcionada. Siempre corresponderá a la mayoría de edad de esa región. Cada app tiene requisitos propios. Cada app puede especificar hasta tres edades diferentes en una sola solicitud, lo que produce cuatro rangos posibles. Cada rango debe tener una duración mínima de dos años.
Elegir las edades adecuadas depende de qué contenido la app desee mostrar u ocultar a usuarios de distintas edades.
Algunas apps pueden basarse en exigencias regionales o determinar que es necesario para ofrecer la mejor experiencia. Durante la configuración infantil, un padre puede informarse sobre Declared Age Range, confirmar la edad de su hijo y elegir qué opción de compartición es apropiada. También puede administrarlo en Family & Settings, seleccionar el niño, ir a Cuenta de Apple y Contraseña, y luego a Age Range for Apps.
Desde el dispositivo del niño se accede desde Cuenta de Apple en Configuración, luego se debe tocar Información personal y nuevamente aparece Age Range for Apps. La API tiene tres ajustes posibles. Este usuario está en Always Share. La app recibe automáticamente el rango de edad solicitado y, si se revela nueva información, se muestra una notificación.
Este usuario está en Preguntar primero.
Preguntar primero muestra un aviso para que el usuario decida si comparte o no.
Este usuario está en Never Share: la opción rechaza siempre compartir y no aparece nada cuando una app solicita la edad. Es esencial mantener la fecha de nacimiento en privado,
por lo que la estructura Declared Age Range incorpora medidas adicionales de privacidad. Cuando la configuración es Ask First, por defecto solo volverá a pedir permiso en el aniversario de la respuesta original. De manera similar, con Always Share, por omisión solo revelará información nueva en ese aniversario.
Por ejemplo, si un niño cumple 13 años y pasa a un rango nuevo, la API seguirá devolviendo 12 o menos hasta llegar al aniversario.
Entonces, en dicha fecha, cuando la app lo solicite, la API compartirá automáticamente la nueva información o pedirá confirmación según el ajuste.
Así se evita que los usuarios revelen su fecha de nacimiento.
Por último, el usuario puede permitir que la app vuelva a preguntar para obtener la edad actual. Por ejemplo, el fin de semana posterior a su cumpleaños quiere acceder en seguida a funcionalidades para niños mayores y no desea esperar al aniversario. En Configuración, Rango de edad para las apps puede forzar el borrado de la caché entrando en una app concreta y tocando Volver a compartir rango de edad.
La próxima vez que la app solicite la edad, recibirá el rango actualizado.
Crear una experiencia adecuada a la edad consiste en adaptar las funciones de tu app para que resulten apropiadas. Para ilustrarlo, repasaré el ejercicio de implementar la experiencia apta por edades que mostré antes.
Las apps pueden ahora cambiar su comportamiento según la edad del usuario. En este caso la funcionalidad de compartir fotos estará deshabilitada hasta que la app Landmarks confirme el rango de edad del niño y determine que es adecuado.
Para comenzar, debes agregar la capacidad Declared Age Range a tu proyecto. Ve a la pestaña Signing and Capabilities del destino, haz clic en el botón Más
y elige Declared Age Range.
Ahora entraré en la interfaz de la app de ejemplo y empezaré a programar. Esta es la app Landmarks. Muestra una lista de lugares emblemáticos. Al tocar uno, se abre una descripción detallada.
Aquí, en la vista de detalle, quiero agregar la nueva funcionalidad de compartir fotos.
Agrego una variable que indicará si la funcionalidad está habilitada o no. Luego, incorporo una variable de entorno para que la API sepa en qué ventana mostrar la alerta. Esto es importante cuando tu app tiene varias ventanas, por ejemplo en iPad o Mac. A continuación, agrego un botón que comprobará si debe estar habilitado. Por defecto, estará deshabilitado.
Ahora me sumergiré en requestAgeRangeHelper.
Este método contiene toda la lógica para solicitar y recibir la respuesta de la API.
La API permite definir las edades en tiempo de ejecución, de modo que para cada región o caso de uso especifica las edades pertinentes en ese contexto. Para abreviar, agrego un comentario donde más adelante implementaremos el código que compruebe la región del usuario.
Solicito el rango de edad con requestAgeRange y le paso las edades que me interesan. En este caso, quiero saber si el usuario tiene 16 años o más.
Estoy listo para implementar la gestión de la respuesta. La API devuelve una enumeración que puede ser compartir o no compartir.
Si la enumeración es igual a compartir, el usuario compartió y se devuelve un límite inferior y superior, que representan el rango de edad devuelto por la API. Si la enumeración es igual a rechazar compartir, el usuario eligió no compartir.
Compruebo si el límite inferior es mayor o igual a 16.
Si esto es cierto, puedo asumir que el límite superior es nulo.
Como se mencionó, los valores superior e inferior pueden ser nulos para indicar rangos como 12 o menos, o rangos que no tienen un límite superior, como 16 o más.
Si el usuario tiene 16 o más, habilito el botón de compartir fotos. Si tiene 15 o menos, el botón permanece deshabilitado. Si el rango de edad se comparte, también recibirás un valor ageRangeDeclaration.
Para los niños, este valor siempre será guardianDeclared. Para los adolescentes, si pertenecen a una familia de iCloud, será guardianDeclared. Si no pertenecen a una familia de iCloud, será selfDeclared.
Para los adultos, el valor será selfDeclared. Volvamos al código. La API también puede lanzar un error; agregaré código para manejarlo. El error invalidRequest es generado por el desarrollador e indica que hay algo incorrecto en la solicitud. Por ejemplo, un rango cuya duración no cubre al menos dos años. El error notAvailable señala un problema de configuración del dispositivo que la app debe manejar, por ejemplo, que el usuario no haya iniciado sesión con una cuenta de Apple. Ahora reuniré todo y mostraré la experiencia del usuario.
Al abrir la vista de detalle de Landmarks aparece una alerta que pregunta si deseo compartir que tengo 16 años o más. Elijo compartir. Como se esperaba, la funcionalidad de compartir fotos ya está disponible.
Hay algunos detalles adicionales útiles. Como la API se llamará con frecuencia, el sistema almacena en caché las respuestas para que el usuario no tenga que responder avisos constantemente. En la práctica, esto significa que las apps no deben preocuparse de que la llamada a la API genere demasiadas peticiones al usuario.
Las respuestas almacenadas se sincronizan entre dispositivos; por ejemplo, un rango de edad cacheado en el iPhone se sincroniza con la Mac.
Los usuarios pueden administrar esas respuestas en Configuración.
Además, si el límite superior del rango está por debajo de la mayoría de edad, la API devuelve los controles parentales adicionales que el padre haya configurado para el niño. Aquí tengo código que comprueba si Límites de comunicación está habilitado para el niño.
Para saber más, consulta “Enhance child safety with PermissionKit”. Las apps que usan esta estructura permiten que los padres controlen con quién puede comunicarse un niño en experiencias de terceros.
Esta es la nueva API. Permíteme contarte otras funcionalidades que puedes usar para proteger a tus usuarios.
La API Sensitive Content Analysis ayuda a las apps a ofrecer una experiencia más segura al detectar y alertar sobre desnudos en imágenes y videos antes de mostrarlos en pantalla.
En iOS 26, la API Sensitive Content Analysis se amplía para detectar y bloquear desnudos en videollamadas en streaming en tiempo real.
La estructura Screen Time brinda a las apps las herramientas necesarias para que padres y tutores supervisen el uso web de sus hijos. Y Family Controls permite que las apps incluyan sus propios controles parentales en el dispositivo.
Ahora que conoces las experiencias adecuadas a la edad, esto es lo que debes hacer.
Revisa las herramientas de seguridad infantil de Apple en developer.apple.com, agrega experiencias acordes a la edad donde corresponda y usa la estructura Declared Age Range para controlar correctamente el acceso a dichas experiencias.
Gracias por incorporar experiencias adecuadas a la edad en tu 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 - Introducción
Obtén más información sobre la estructura Declared Age Range y cómo puedes solicitar rangos de edad para crear experiencias apropiadas para cada edad en apps.
- 0:34 - Ayuda a proteger a los niños en línea
Apple publicó un informe técnico en febrero de 2025 que expone su compromiso con la protección de los niños en línea. Después de esto, Apple presentó un proceso de configuración infantil simplificado. A partir de iOS 26, los padres pueden corregir las edades de las cuentas de menores y las clasificaciones de edad del App Store son específicas (4+, 9+, 13+, 16+, 18+).
- 2:25 - Estructura Declared Age Range
La estructura Declared Age Range está diseñada para proteger la privacidad, especialmente de menores y jóvenes. Cuando una app solicita la edad, la estructura presenta rangos para elegir, en lugar de preguntarles su fecha de nacimiento exacta. Cada app puede especificar hasta tres edades en una solicitud, lo que da como resultado cuatro rangos de edad, cada uno de al menos dos años. Se puede seleccionar entre tres configuraciones para compartir: “Compartir siempre”, “Preguntar primero” y “Nunca compartir”. La estructura también incluye configuraciones de edad regionales y frecuencias de solicitud predeterminadas para minimizar la divulgación de información personal. Se puede gestionar la configuración del rango de edad del menor en la configuración inicial o desde Configuración.
- 7:00 - Solicita un rango de edad
Ahora puedes crear experiencias apropiadas modificando funcionalidades según la edad del usuario. Para esto, tu app debe habilitar la capacidad “Declared Age Range.” Luego, agrega código para solicitar el rango de edad desde la API DeclaredAgeRange. La API responde con una enumeración que indica si se compartió la edad y, de ser así, los límites inferior y superior del rango de edad. Luego, la app habilita o deshabilita funcionalidades específicas, como el botón para compartir fotos, según corresponda. El sistema almacena en caché las respuestas para evitar solicitudes frecuentes y estas respuestas se sincronizan en todos los dispositivos. Las personas pueden administrar sus respuestas almacenadas en caché en Configuración. Además, si es menor de edad, la API devuelve un conjunto de configuraciones de control parental adicionales.
- 12:22 - Más formas de mantener a los niños seguros
Apple ofrece API y estructuras para permitir a los desarrolladores proteger a los usuarios, especialmente a menores, de la desnudez en imágenes, videos y transmisiones en vivo. Puedes revisar las herramientas de seguridad infantil de Apple en developer.apple.com.