Explora las posibilidades
- Crea windows en el Shared Space. Son escenas SwiftUI que usan views y controles. Tu aplicación aparecerá junto a otras aplicaciones.
- Extiende tu interfaz con elementos 3D. Añade objetos 3D o una RelityView a tus windows para darles profundidad. También puedes crear un volume que aparezca junto a las windows de tu aplicación.
- Aumenta el nivel de inmersión abriendo un Full Space. Cuando tu aplicación se abre en un Full Space se hace cargo por completo del canvas de visionOS. Cuando se abre un Full Space muestra exclusivamente las windows y volúmenes de tu app, ocultando el contenido de otras apps.
Tu aplicación puede transitar entre diferentes niveles de inmersión, y debe hacerlo de forma natural.
Dónde empezar
Empieza a desarrollar en Xcode, el entorno de desarrollo integrado de Apple. Para crear un nuevo proyecto en Xcode, selecciona File > New > Project. Todos los nuevos proyectos usan SwiftUI como modelo de programación.
SwiftUI trabaja perfectamente con las tecnologías de gestión de datos de Apple. La librería standard de Swift y el framework Foundation ofrecen tipo de estructuras de datos como arrays y diccionarios, y tipos de datos como cadenas de caracteres, números, fechas y otros.
Para que los tipos de datos que definas se almacenen en disco usa soporte Codable de Swift. Si tu app maneja un gran volumen de datos estructurados, puedes usar modelos orientados a objeto persistentes: SwiftData, Core Data y CloudKit.
También puedes usar Unity para tus aplicaciones visionOS.
Añade contenido 3D
Cuando crees una aplicación empieza con una window y añade elementos para ayudar a los usuarios a sumergirse en tu contenido. Añade un volume para presentar contenido 3D, o aumenta el nivel de inmersión usando un Full Space. El estilo mixed configura el espacio para ver a través de él (passthrough), en cambio, los estilo progressive y full aumentan la inmersión y minimizan las distracciones.
- Añade profundidad a tus windows. Aplica profundidad a tus views para destacar partes de tu window, o para indicar un cambio de modalidad. Incorpora objetos 3D directamente en tus views para posicionarlos junto tus elementos 2D.
- Añade hover effects a tus custom views.
- Implementa menus y toolbars usando ornaments. Posiciona herramientas y comandos de uso frecuente fuera de los límites de tus windows usando ornaments.
RealityKit juega un papel importante en las aplicaciones visionOS, se usa para la creación y animación de objetos 3D en tus apps. Puedes crear tu contenido programando o usando RealityComposer Pro para implementar escenas que contengan todos los objetos, animaciones, sonidos y efectos visuales que necesites. Incluye las escenas en tus windows, volumen o espacios usando una RealityView. Además, puedes aprovechar otras funcionalidades 3D en tus apps:
- Adopta MaterialX shaders para efectos dinámicos. MaterialX es un standard usando en la industria del cine, entretenimiento y videojuegos. Usa herramientas para crear MaterialX shaders, e intégralos en tus escenas RealityKit usando Reality Composer Pro.
- Guarda tu contenido 3D en ficheros USDZ.
- Crea reviews de tu contenido 3D en Xcode. Puedes previsualizar tus views SwiftUI con contenido 3D directamente en tu proyecto. Especifica múltiples posiciones de cámara para tus reviews y ver tu contenido desde diferentes ángulos.
Human Interface Guidelines
Diseña interacciones sencillas
En visionOS los usuarios interactúan con las apps principalmente con los ojos y las manos. Con un gesto indirecto, el usuario mira un objeto y entonces lo selecciona juntando un dedo con el pulgar. Con un gesto directo, el dedo del usuario interactúa con el objeto en el espacio 3D. Al gestionar el input en tu app:
- Adopta el sistema de gestos estándar: tap, swipe, drag, touch and hold, double tap, zoom, y rotate gestures.
- Añade soporte para controles externos de videojuegos. Los controles de juegos ofrecen una forma alternativa de entrada a tu app.
- Crea gestos personalizado con ARKit. Cuando tu app se encuentra en Full Space puedes solicitar permiso para conocer la posición de las manos y los dedos y la persona, y poder usar esa información para crear gestos personalizados.
En Full Space, ARKit proporciona servicios adicionales para soportar interacciones con el contenido. Detección de superficies e imágenes conocidas.
Crea audio y video a otro nivel
Apple Vision Pro soporta video estereoscópico (stereoscopic) para ayudar a películas a saltar de la pantalla al entorno del usuario. Spatial Audio es la experiencia por defecto, así que debes pensar como aprovechar esa experiencia.
- Actualiza tus recursos de video para 3D. El formato QuickTime soporta la inclusión de contenido que parece salta de la pantalla. Reproduce tus películas usando AVKit y AVFoundation. Incluye contenido estereoscópico en tus vídeos. Al igual que el audio estereo reproduce dos audios diferentes por el auricular derecho e izquierdo, el vídeo estereoscópico reproduce dos videos diferentes para cada ojo, con el objetivo de crear el efecto binocular que podemos ver en las películas 3D.
- Incorpora soporte para Spatial Audio usando AVFAudio para reproducir música, y PHASE para crear experiencias Spatial Audio complejas.
- Stream live o contenido grabado. Aprende como crear contenido reproducido en streaming y despliegalo en tu servidor usando HTTP live Streaming.
Inclusión
Creando contenido inclusivo asegurar que todos puede acceder a tu contenido. Asegurate de soportar estas tecnologías en tu app:
- Internacionaliza y localiza tu app.
- Elige palabras y términos inclusivos.
- Actualiza etiquetas de accesibilidad y navegación.
- Soporta formas alternativas para acceder a las funcionalidades.
- Añade VoiceOver announcements.
- Incluye subtítulos para contenido de audio.
- Considera el impacto de visión y movimiento. Los efectos de movimiento pueden ser molestos. Limita el uso de efectos que incorporan movimiento rápido, rebote o movimiento tipo onda, animaciones de ampliación(zooming), movimiento multieje o rotaciones.
Más información: Improving accessibility support in your visionOS app.
Prioriza la privacidad
- Proporciona un beneficio tangible para cualquier dato que recopiles.
- Explica claramente como usas la información recopilada.
- Securiza los datos que recopilas y almacenas.
Prueba y afina tu app
- Prueba y depura tu app concienzudamente. Implementa tests automatizados usando XCTest.
- Racionaliza los recursos consumidos de CPU y GPU.
- Adopta continuos integration CI Workflow
Cómo llevarlo más alla
Una que tengas tu app funcionando busca formas de mejorar la experiencia. Pequeños detalles pueden marcar una gran diferencia.
- Conecta a las personas usando SharePlay. Group Activities framework
- Diseña actividades SharePlay para Spatial Personas. Identifica momentos en tu app que puedan soportar SharePlay para Spatial Personas y sincroniza detalles necesarios para el contexto compartido. Por ejemplo, podrías compartir la posición de scroll en una window, además de los contenidos de una ventana.