Docs Menu
Docs Home
/ /
Conectar a Atlas

Conéctate a Atlas App Services - Kotlin SDK

Esta página describe cómo inicializar el cliente de su aplicación y conectarse al backend de Atlas App Services mediante el SDK de Kotlin.

El cliente de la aplicación es la interfaz del lado del cliente para el backend de App Services. Permite interactuar con la aplicación de App Services y proporciona acceso a sus funciones, como:

Cada cliente de aplicación está asociado a un único ID de aplicación. Para saber cómo encontrar el ID de aplicación en la interfaz de usuario de App Services, consulte Encuentre el ID de su aplicación en la documentación de App Services.

Antes de poder conectarse a Atlas App Services, necesita una App Services App con un ID de la aplicación.

Para comenzar, consulte Crear una aplicación en la documentación de Servicios de aplicaciones.

El SDK de Kotlin utiliza la interfaz de la aplicación para acceder a una App cliente.

Cada cliente App está asociado a un único ID de aplicación. Puedes tener varias instancias de cliente de aplicación que se conecten a varias aplicaciones, pero todas las instancias de cliente de aplicación que comparten el mismo ID de aplicación usan la misma conexión subyacente.

Puede inicializar un cliente de aplicación llamando a uno de los siguientes métodos:

  • .create(): inicializa una aplicación con valores de configuración predeterminados

  • .build(): inicializa una aplicación con valores de configuración personalizados pasados ​​a través de un objeto AppConfiguration

Una vez que inicialice la aplicación, puede usar la instancia App para acceder a la funcionalidad de los servicios de la aplicación.

Para inicializar una aplicación con valores de configuración predeterminados, pase el ID de la aplicación de App Services al método App.create():

// Creates an App with default configuration values
val app = App.create(YOUR_APP_ID) // Replace with your App ID

La interfaz AppConfiguration le permite configurar su cliente de aplicación con argumentos opcionales para un control más granular de los detalles de conexión de su aplicación, como encabezados de solicitud personalizados y claves para el cifrado local.

Para controlar las opciones de configuración, utilice AppConfiguration.Builder y llame al .build() método para pasar un objeto de configuración:

// Creates an App with custom configuration values
AppConfiguration.Builder(YOUR_APP_ID)
// Specify your custom configuration values
.appName("my-app-name")
.appVersion("1.0.0")
.baseUrl("http://localhost:9090")
.build()

Cambiado 1.14.0 enbaseUrl la versión: no se almacena en caché en AppConfiguration

Cuando se inicializa el cliente de la aplicación, la configuración se almacena en caché internamente.

Intentar cerrar y volver a abrir una aplicación con una configuración modificada dentro del mismo proceso no tiene ningún efecto. El cliente continúa usando la configuración en caché.

A partir de la versión del SDK de Kotlin,1.14.0 baseUrl() ya no se almacena en caché AppConfiguration en. Esto significa que se baseUrl puede cambiar y ​​el cliente de la aplicación usará la configuración actualizada. En versiones anteriores del SDK, los cambios en baseUrl en una configuración de la aplicación almacenada en caché no surten efecto.

Las siguientes secciones describen cómo crear el cliente AppConfiguration con propiedades específicas.

Nota

Se aplica a Atlas Device Sync

Esta opción de configuración solo se aplica a las aplicaciones que usan Atlas Device Sync. Para obtener más información sobre cómo usar Device Sync con el SDK de Kotlin, consulta "Añadir Device Sync a una aplicación - SDK de Kotlin".

Nuevo en la versión 1.13.0.

De forma predeterminada, el SDK abre una conexión independiente al servidor para cada dominio sincronizado. En Kotlin v1.13.0 y versiones posteriores, se puede habilitar la multiplexación de sesiones. Al habilitarla, el SDK comparte una conexión al servidor para todos los dominios sincronizados abiertos con un solo usuario de App Services. Compartir una conexión entre varias sesiones reduce los recursos y puede mejorar el rendimiento.

La multiplexación está deshabilitada por defecto. Puede habilitarla en mediante AppConfiguration el método `.enableSessionMultiplexing()`, que acepta un valor booleano.

val config = AppConfiguration.Builder(YOUR_APP_ID)
.enableSessionMultiplexing(true)
.build()

Cuando está habilitada, la conexión compartida no se cierra inmediatamente al cerrar todas las sesiones. En su lugar, permanece abierta connectionLingerTime durante, que por defecto es 30 segundos. Puede anular esta duración pasando un nuevo valor a SyncTimeoutOptions.connectionLingerTime() AppConfigurationen.

val configCustomLingerTime = AppConfiguration.Builder(YOUR_APP_ID)
.enableSessionMultiplexing(true)
.syncTimeouts {
connectionLingerTime = 10.seconds // Overrides default 30 secs
}
.build()

Para obtener más información, consulte la sección Configurar tiempos de espera de sincronización en esta página.

Nota

Se aplica a Atlas Device Sync

Esta opción de configuración solo se aplica a las aplicaciones que usan Atlas Device Sync. Para obtener más información sobre cómo usar Device Sync con el SDK de Kotlin, consulta "Añadir Device Sync a una aplicación - SDK de Kotlin".

Nuevo en la versión 1.13.0.

En Kotlin v1.13.0 y posteriores, puedes anular la configuración por defecto de timeout utilizada para sincronizar datos entre el backend de Atlas y la aplicación cliente.

Puedes configurar varios tiempos de espera de sincronización en AppConfiguration mediante el método .syncTimeouts(). Introduce los valores específicos de las propiedades de tiempo de espera que quieras anular. Los tiempos de espera configurados se aplican a todas las sesiones de sincronización de la aplicación.

val config = AppConfiguration.Builder(YOUR_APP_ID)
.syncTimeouts {
connectTimeout = 1.minutes
connectionLingerTime = 15.seconds
pingKeepalivePeriod = 30.seconds
pongKeepalivePeriod = 1.minutes
fastReconnectLimit = 30.seconds
}
.build()

Para obtener una lista completa de las propiedades de tiempo de espera disponibles y sus definiciones, consulte la referencia de API de SyncTimeoutOptionsBuilder.

Al conectarse a App Services, Realm crea archivos de metadatos adicionales en un dispositivo. Para obtener más información sobre estos archivos de metadatos, consulte el SDK de dispositivos Atlas para Kotlin.

Puedes cifrar los metadatos que App Services almacena en los dispositivos cliente, de forma similar a como cifras un dominio sincronizado.

Para cifrar los metadatos de la aplicación, pase su clave de cifrado a la propiedad encryptionKey cuando inicialice la aplicación:

val config =
AppConfiguration.Builder(YOUR_APP_ID)
// Specify the encryption key
.encryptionKey(myEncryptionKey)
.build()

Nuevo en la versión 1.11.0.

Si usa App Services o Device Sync con un proxy, es posible que necesite configurar encabezados HTTP personalizados. El SDK de Kotlin permite configurar encabezados HTTP personalizados en la aplicación. Estos encabezados se añaden a cada solicitud a la aplicación App Services, incluidas las llamadas a funciones.

Al inicializar la aplicación, puedes pasar:

AppConfiguration.Builder(YOUR_APP_ID)
.authorizationHeaderName("MyApp-Authorization")
.customRequestHeaders { put("X-MyApp-Version", "1.0.0") }
.build()

Nuevo en la versión 1.14.0.

La red de plataforma de Atlas Device SDK le permite utilizar la pila de red de su plataforma en lugar del cliente WebSocket predeterminado para el tráfico de sincronización de dispositivos.

Cuando está habilitado, puede configurar aplicaciones que se ejecutan en plataformas Android y Java Virtual Machine (JVM) para usar WebSockets administrados a través de OkHttpLos WebSockets administrados brindan soporte de configuración avanzado para servidores proxy y firewalls que requieren autenticación.

La red de plataformas está deshabilitada de forma predeterminada. Puede habilitarla en AppConfiguration mediante el método AppConfiguration.usePlatformNetworking(), que acepta un valor booleano.

val config =
AppConfiguration.Builder(YOUR_APP_ID)
.usePlatformNetworking(true)
.build()

Nota

Solo plataformas Android y JVM

Esta función actualmente solo está disponible en las plataformas Android y Java Virtual Machine (JVM).

Puede cerrar manualmente una instancia de aplicación y liberar todos los recursos subyacentes utilizando el método App.close():

app.close()

Si no se cierra manualmente, los recursos se liberan cuando se recolecta la basura de la instancia de la aplicación.

Volver

Conectar a Atlas

En esta página