Recientemente, Apple lanzó Vision Pro y tuve la suerte de convertirme en un orgulloso propietario. Desde entonces, he estado profundamente involucrado en el desarrollo de mi aplicación y en la exploración de varias aplicaciones y tendencias dentro de Vision Pro App Store.
Una cosa que me llamó la atención es que cada día salen nuevas aplicaciones, pero solo unas pocas encajan bien con la experiencia inmersiva de realidad virtual. Supongo que muchos desarrolladores tienen dificultades para encontrar documentación y ejemplos de las funciones de Vision Pro. Sin embargo, utilizar las capacidades de Vision Pro puede diferenciar su aplicación y brindar a los usuarios una experiencia mejorada.
En este artículo, compartiré algunos consejos y trucos que descubrí mientras elaboraba mi aplicación. Estos consejos no solo ayudarán a que su aplicación se destaque, sino que también garantizarán su integración perfecta y su sensación nativa dentro de VisionOS.
Estoy seguro de que has notado que al ver un video o una foto, el fondo detrás de la ventana se oscurece, en la configuración se llama "atenuación automática". Para obtener el mismo efecto, necesita usar .preferredSurroundingsEffect(.systemDark)
en su vista y luego el espacio alrededor del usuario se oscurecerá y su ventana permanecerá brillante, esto ayudará a mantener el enfoque en el contenido.
Al visualizar un vídeo o contenido se desea que el usuario no tenga distracciones y cree el efecto de una ventana flotando en el aire, para ello Apple nos ha dado la posibilidad de ocultar la barra inferior de la ventana que sirve para moverla o cerrarla. la ventana actual. Con .persistentSystemOverlays(.hidden)
puedes ocultar esta barra de control en tu ventana, desaparecerá con la animación predeterminada y solo aparecerá cuando el usuario interactúe con la ventana.
Si abres la aplicación estándar de Apple TV y enciendes una película, notarás que la ventana de la película tiene un reflejo que cambia con cada cuadro, brindando un efecto más inmersivo. Para obtener un efecto de brillo alrededor de su video, debe usar VideoPlayerComponent
y habilitar isPassthroughTintingEnabled
, luego el efecto será el mismo que en Apple TV o HBO Max. Esto es lo que dice la documentación:
Esto es para habilitar el teñido de paso durante la reproducción de video que aparece alrededor del video tomando el color promedio del cuadro y teñiendo el paso con ese color para enfatizar el video.
Es posible que desee evitar que el usuario cambie el tamaño de la ventana; existe una manera de hacerlo:
onAppear { guard let windowScene = UIApplication.shared.connectedScenes.first as?UIWindowScene else { return } windowScene.requestGeometryUpdate(.Vision(resizingRestrictions: UIWindowScene.ResizingRestrictions.none)) }
También puede especificar configuraciones de tamaño adicionales en este método. La firma completa del método se ve así:
windowScene.requestGeometryUpdate(.Vision(size:, minimumSize:, maximumSize:, resizingRestrictions:))
Si su aplicación utiliza un espacio inmersivo y no desea que el usuario vea sus manos, o desea reemplazarlas con manos virtuales, como se hace en AmazeVR, entonces necesita usar .upperLimbVisibility(.hidden)
Estoy seguro de que has visto barras laterales en aplicaciones de VisionOS que se parecen TabBars
. Apple ha introducido un nuevo método View
para VisionOS que le permite "expandir" la ventana y agregar adornos a ambos lados de la misma.
.ornament( visibility: .visible, attachmentAnchor: .scene(.bottom), contentAlignment: .center ) { HStack { Button("Play", systemImage: "play.fill") { } Button("Stop", systemImage: "stop.fill") { } } .labelStyle(.iconOnly) .padding(.all) .glassBackgroundEffect() }
Un hecho interesante que pude verificar experimentalmente es que los métodos de CMMotionManager solo funcionan en un espacio inmersivo y no en la vista de ventana normal.
VisionOS proporciona muchas herramientas para crear aplicaciones inmersivas que llevan a los usuarios al mundo virtual y los hacen sentir parte de él. Si bien cada vez se lanzan más aplicaciones para Vision Pro, solo unas pocas utilizan toda su gama de funciones. Ahí es donde entra tu oportunidad de distinguirte: úsalas y aprovecha. Desafortunadamente, los desarrolladores tienen dificultades para encontrar documentación y ejemplos de fácil acceso. Por eso estoy escribiendo este artículo. Espero que mis consejos te ayuden a mejorar tu aplicación.