À medida que o Apple Vision Pro ganha popularidade, desenvolvedores de todo o mundo ficam cada vez mais interessados em explorar e criar soluções inovadoras para o novo gadget. Seu sistema operacional, o VisionOS, abre um leque de oportunidades para aplicações que unem o digital ao físico, o que permite experiências que vão desde realidades aumentadas até imersões totais.
Desenvolvido especificamente para o headset de realidade mista Vision Pro, o VisionOS é integrado com outros produtos da Apple e permite a instalação de aplicativos diretamente da Apple Store. Projetado para funcionar independentemente de dispositivos como telas convencionais, mouses ou teclados, o sistema é operado por meio de gestos com as mãos, movimentos dos olhos ou comandos de voz.
Neste artigo, você descobre como dar os primeiros passos na criação de apps para o VisionOS, além de descobrir mais sobre esse sistema operacional!
Revelando o canvas espacial infinito
Um mundo onde suas criações digitais não estão mais limitadas às telas planas: esse é o coração do VisionOS. Com ele, é possível manipular e explorar objetos digitais em um espaço que se estende ao redor do usuário, quase como se fossem parte do mundo real. A funcionalidade dual do Apple Vision Pro, facilitada pelo VisionOS, não só enriquece a interação do usuário com a tecnologia, mas também expande as possibilidades de criação e inovação no espaço digital.
Por mesclar conteúdos digitais com espaços físicos, em um ambiente tridimensional, o sistema operacional permite que os aplicativos sejam exibidos em janelas flutuantes ao redor do usuário, criando uma experiência de múltiplos monitores virtuais. Ao girar a cabeça, o usuário pode visualizar diferentes aplicativos em execução, e manter a visibilidade do ambiente, mesmo sem remover os óculos.
Além disso, o VisionOS oferece integração com apps nativos como Safari, Fotos, Notas, Facetime e Apple Maps, todos sincronizados com o ecossistema Apple. Há ainda suporte para conectar o Magic Keyboard para uma digitação mais confortável e até para espelhar a tela do MacBook no Vision Pro, o que expande as possibilidades de uso e interação com os dispositivos da marca.
Reprodução: Nayan Khadase.
Pontos importantes antes de começar
Para iniciar o Desenvolvimento de Aplicativos para VisionOS, é essencial compreender as experiências que o sistema pode oferecer. Essas experiências são alcançáveis através de três componentes fundamentais: Janelas, Volumes e Espaços.
Reprodução: Nayan Khadase.
→ Janelas (Windows): em aplicativos VisionOS, o usuário consegue criar múltiplas janelas. Essas janelas são criadas usando SwiftUI e podem incluir visualizações e controles padrão. Além disso, é possível aprimorar a experiência incorporando conteúdo 3D.
→ Volumes: é possível aprimorar o apelo visual do aplicativo com um volume 3D. Esses volumes são cenas SwiftUI que podem exibir conteúdo 3D através do RealityKit ou Unity, o que proporciona aos usuários experiências que podem ser visualizadas de qualquer ângulo no espaço compartilhado (Shared Space) ou espaço completo (Full Space) do gadget.
→ Espaços (Spaces): quando um aplicativo é aberto, ele é executado em espaço compartilhado. Isso é semelhante a ter vários aplicativos abertos em uma área de trabalho de um notebook. Você pode ajustar a posição das janelas e volumes no espaço compartilhado conforme achar melhor. Para uma experiência mais imersiva, um aplicativo também pode abrir em espaço completo, que exibirá conteúdo apenas daquele aplicativo específico. Em um espaço completo, o aplicativo pode usar janelas e volumes, criar conteúdo 3D sem limites, abrir um portal para outro mundo ou imergi-lo completamente em um ambiente.
Frameworks e ferramentas necessários
Existem os seguintes frameworks e ferramentas que podem ser usados para criar experiências únicas para o usuário: SwiftUI, RealityKit, ARKit e Reality Composer Pro.
- SwiftUI: utilizado para criar visualizações como janelas, volumes e experiências especiais;
- RealityKit: usado para apresentar conteúdo 3D, animações e efeitos visuais;
- ARKit: responsável por escanear completamente o ambiente ao redor de uma pessoa, oferecendo aos seus aplicativos novas maneiras de interagir com o espaço real;
- Reality Composer Pro: uma ferramenta projetada para simplificar a criação, pré-visualização e otimização de conteúdo 3D para aplicativos visionOS.
Depois que você tiver configurado essas ferramentas, é possível começar o desenvolvimento do aplicativo.
Como criar Janelas
Para mostrar dados na Janela, precisamos criar uma visualização SwiftUI. Confira o código abaixo e veja como configurar essa opção.
Confira a visualização dessa:
Reprodução: Nayan Khadase. Imagem 2: Saída do código de exemplo acima.
2. Como criar Volumes
Para criar um Volume, precisamos usar o framework RealityKit e a visualização RealityView. Precisamos adicionar um Package da ferramenta Reality Composer Pro, onde projetamos a cena.
Confira um exemplo de como fazer isso no VisionOS:
Reprodução: Nayan Khadase. Imagem 3: Saída do código de exemplo acima.
3. Como adicionar modelos USDZ à cena
Para incorporar modelos 3D de um arquivo USDZ ou Reality em seu aplicativo SwiftUI, use o Model3D. Você pode ajustar o tamanho do modelo para se adequar à interface do seu aplicativo usando métodos no tipo ResolvedModel3D, além de modificadores de visualização padrão.
Ao usar o método resizable(:), você pode dimensionar o modelo para se ajustar à visualização atual.
O modificador de visualização aspectRatio(:contentMode:) mantém a proporção original do modelo, em vez de dimensionar os eixos x, y e z independentemente para ajustar o robô ao quadro completo da visualização.
O código abaixo demonstra como incorporar um modelo USDZ no aplicativo.
4. Como usar WindowGroup
A cena mostra um grupo de Janelas que têm a mesma estrutura.
→ Para conter uma hierarquia de visualizações apresentada pelo seu aplicativo, utilize um WindowGroup. A hierarquia declarada, que serve como o conteúdo para o grupo, atua como um modelo para cada janela gerada pelo aplicativo a partir desse grupo.
O código a seguir demonstra como criar vários WindowGroups.
O código a seguir demonstra como chamar diferentes grupos de Janelas quando um botão é clicado.
6. Como usar ImmersiveSpace
A cena exibe seu conteúdo sem quaisquer limites no Espaço.
→ Use um ImmersiveSpace como um contêiner para uma hierarquia de visualizações apresentada pelo seu aplicativo.
O código a seguir demonstra como criar um contêiner ImmersiveSpace para VisionOS:
O código a seguir demonstra como abrir o ImmersiveSpace quando um botão é clicado.
Agora que você já entendeu sobre o papel de Janelas, Volumes e Espaços no universo VisionOS, e já aprendeu a configurá-los de forma básica, que tal tentar construir o seu próprio aplicativo para o Apple Vision Pro?