La API de ARCore Cloud Anchor, o servicio de Cloud Anchor de ARCore, proporciona capacidades de anclaje en la nube a tus apps para iOS, lo que permite que los usuarios de dispositivos iOS y Android compartan experiencias de RA.
En esta guía, se indica cómo realizar las siguientes acciones:
- Configura tu entorno de desarrollo para trabajar con Cloud Anchors
- Prueba alojar y resolver anclas en una app de ejemplo
Requisitos previos
- Xcode, versión 13.0 o posterior
- CocoaPods 1.4.0 o una versión posterior si usas CocoaPods
- Un dispositivo Apple compatible con ARKit que ejecute iOS 12.0 o una versión posterior (se requiere el destino de implementación de iOS 12.0 o una versión posterior)
Usa Cloud Anchors
En los siguientes pasos, se usa la app de ejemplo de Cloud Anchors a fin de mostrarte las tareas fundamentales para configurar y compilar una app que admita Cloud Anchors de ARCore.
Obtén la app de ejemplo de Cloud Anchors
Clona o descarga el SDK de ARCore para iOS desde GitHub a fin de obtener el código de la app de ejemplo.
Abre una ventana de Terminal o Finder y navega a la carpeta en la que clonaste o descargaste el SDK.
Puedes encontrar el código de la app de ejemplo en
/arcore-ios-sdk-master/Examples/CloudAnchorExample
.El código de la app de ejemplo de anclas de nube persistentes se encuentra en
/arcore-ios-sdk-master/Examples/PersistentCloudAnchorExample
.
Configuración de la sesión
Como parte de la configuración de la sesión, la app de ejemplo realiza las siguientes tareas importantes:
- Crea un
GARSession
- Cómo crear un
ARSession
y ejecutarlo - Configurar un elemento
ARSessionDelegate
- Pasar
ARFrame
s aGARSession
en el métodosession:didUpdateFrame:
Configura el uso compartido de ID de Cloud Anchor
La app de ejemplo de Cloud Anchors usa Firebase para compartir los IDs de Cloud Anchor entre dispositivos. Puedes usar una solución diferente en tus propias apps.
Para configurar la base de datos de Firebase en la app de ejemplo, sigue estos pasos:
- Sigue las instrucciones de Firebase para agregar Firebase a tu app.
- Descarga el archivo
GoogleService-Info.plist
generado como parte de la adición de Firebase a tu app. - Habilita Firebase Storage para la muestra:
- Ve a Firebase console y selecciona el proyecto que configuraste para la app de muestra.
- Selecciona el panel Database.
- En la opción Realtime Database, haz clic en Get Started.
- Se abrirá el menú Security rules for Realtime Database.
- Para ejecutar la muestra, selecciona Start in test mode.
- Ten en cuenta que, si usas Firebase en una app que tienes pensado publicar, debes usar reglas de seguridad más restrictivas.
- En Xcode, agrega el archivo
GoogleService-Info.plist
a tu app, junto aInfo.plist
.
Configura la API de ARCore
Para usar Cloud Anchors, primero debes configurar la API de ARCore en tu aplicación.
Ejecutar actualización del Pod
La app de CloudAnchorExample se envía con un Podfile
preconfigurado con el
SDK de ARCore y las versiones de iOS que necesitarás. Para instalar estas dependencias, sigue estos pasos:
- Abre una ventana de la terminal y ejecuta
pod update
desde la carpeta en la que existe el proyecto de Xcode.
Esto genera un archivo.xcworkspace
que usarás más adelante para compilar y ejecutar la app.
Consulta Agrega el SDK de ARCore a tu app
para obtener detalles sobre cómo configurar Podfile
en tus propias apps.
Abre el archivo
.xcworkspace
del proyecto en Xcode.Para evitar errores de compilación, asegúrate de compilar desde el archivo
.xcworkspace
y no desde el archivo.xcodeproj
.
Cómo cambiar el ID del paquete de aplicación
En Xcode, cambia el ID de paquete de la app para poder firmarla con tu equipo.
Compila y ejecuta la app
Conecta el dispositivo y, luego, inicia la app en Xcode.
Si compilas y ejecutas la app de muestra, consulta la siguiente sección si quieres obtener detalles sobre cómo usar la app para alojar y resolver Cloud Anchors (opcional).
Prueba la app de ejemplo
Compila y ejecuta la app de ejemplo desde el archivo
.xcworkspace
para iniciarla en tu dispositivo.Si se te solicita, otórgale permisos a la app. Luego, ARKit comenzará a detectar planos frente a la cámara.
Presiona HOST para ingresar al modo de hosting. Se generará un código de sala para compartir las anclas alojadas y aparecerá en la pantalla.
Presiona un plano para comenzar a alojar allí un ancla de nube.
- La app coloca un objeto de Android de Andy en el plano y le adjunta un ancla.
- Se envía una solicitud de host al extremo de nube de la API de ARCore. La solicitud de host incluye datos que representan la posición del ancla en relación con los rasgos visuales cercanos a ella.
- Una vez que se aloja el ancla, esta obtiene un ID que se usa para resolver las anclas en la nube en este espacio.
Presiona RESOLVE y, luego, ingresa un código de sala para acceder a los Cloud Anchors alojados anteriormente en esta sala con el mismo dispositivo o uno diferente.
- Se envía una solicitud de resolución al extremo de la nube de la API de ARCore.
- La solicitud de resolución incluye un ID de Cloud Anchor. Si el ID coincide con un ancla alojada y la localización se realiza correctamente, el servidor muestra la transformación del ancla en tus coordenadas locales.
- La app de ejemplo usa la transformación para agregar el ancla a tu escena y renderizar los objetos virtuales adjuntos a ella.
Agrega el SDK de ARCore a tus apps
En tus propias apps, deberás actualizar Podfile
para incluir el
SDK de ARCore y el control de versiones compatible con iOS. Para ello, sigue estos pasos:
Agrega los siguientes elementos
platform
ypod
alPodfile
de tu proyecto:platform :ios, '11.0' pod 'ARCore/CloudAnchors', '~> 1.44.0'
- Abre una ventana de terminal y ejecuta
pod update
desde la carpeta en la que existe tu proyecto de Xcode.
Esto genera un archivo.xcworkspace
que usarás para compilar y ejecutar la app.
Anclas de la nube persistentes
Como se describe en Aloja una Cloud Anchor con persistencia, puedes darle a la ancla de nube un tiempo de actividad de hasta 365 días. El código de muestra para usar anclas de nube persistentes está disponible en el directorio /arcore-ios-sdk-master/Examples/PersistentCloudAnchorExample
del SDK de ARCore para iOS desde GitHub.
Próximos pasos
Consulta la Guía para desarrolladores de Cloud Anchors para iOS a fin de explorar el código de la app de ejemplo y obtener más información sobre cómo trabajar con Cloud Anchors en tus propias apps.
Revisa los detalles en la referencia de la API de ARCore para iOS.