Atlas App Services에 연결 - Kotlin SDK
이 페이지의 내용
이 페이지에서는 코틀린 SDK (Kotlin SDK) 를 사용하여 앱 클라이언트 를 초기화하고 Atlas App Services 백엔드 에 연결하는 방법을 설명합니다.
앱 클라이언트 는 App Services 백엔드 에 대한 클라이언트 사이드 인터페이스입니다. App Services App 과 상호 작용 수 있으며 다음을 포함한 App Services 기능에 대한 액세스 를 제공합니다.
각 앱 클라이언트 는 단일 앱 ID 와 연결됩니다. App Services UI 에서 앱 ID 를 찾는 방법을 학습 보려면 App Services 문서에서 앱 ID 찾기 를 참조하세요.
전제 조건
Atlas App Services에 연결하려면 먼저 앱 ID가 있는 App Services App이 필요합니다.
시작하려면 App Services 문서에서 앱 만들기 를 참조하세요.
앱 클라이언트 초기화
코틀린 SDK (Kotlin SDK)는 앱 인터페이스를 사용하여 App
클라이언트에 액세스합니다.
각 App
클라이언트 는 단일 앱 ID 와 연결됩니다. 여러 앱에 연결하는 여러 앱 클라이언트 인스턴스를 가질 수 있지만 동일한 앱 ID 를 주식 하는 모든 앱 클라이언트 인스턴스는 동일한 기본 연결을 사용합니다.
다음 메서드 중 하나를 호출하여 앱 클라이언트 를 초기화할 수 있습니다.
.create()
: 기본값 구성 값으로 앱을 초기화합니다..build()
:AppConfiguration
객체를 통해 전달된 사용자 지정 구성 값을 사용하여 앱을 초기화합니다.
앱을 초기화한 후에는 App
인스턴스 를 사용하여 App Services 기능에 액세스 수 있습니다.
기본 앱 클라이언트
기본값 구성 값으로 앱을 초기화하려면 App Services App 의 앱 ID 를 App.create() 메서드에 전달합니다.
// Creates an App with default configuration values val app = App.create(YOUR_APP_ID) // Replace with your App ID
구성된 앱 클라이언트
AppConfiguration 인터페이스를 사용하면 선택적 인수를 사용하여 앱 클라이언트 를 구성하여 로컬 암호화 를 위한 사용자 지정 요청 헤더 및 키와 같은 앱 연결 세부 정보를 보다 세밀하게 제어할 수 있습니다.
구성 옵션을 제어하려면 AppConfiguration.Builder 를 사용하고 .build()
메서드를 호출하여 구성 객체 를 전달합니다.
// 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()
구성 캐싱
버전 1.14.0에서 변경됨: baseUrl
이(가) AppConfiguration
에 캐시되지 않았습니다.
앱 클라이언트 를 초기화하면 구성이 내부적으로 캐시됩니다.
동일한 프로세스 내에서 구성이 변경된 앱을 닫았다가 다시 열려고해도 아무런 효과가 없습니다. 클라이언트는 캐시된 구성을 계속 사용합니다.
코틀린 SDK ( 코틀린 SDK (Kotlin SDK) ) 버전 1.14.0 부터 baseUrl() 은 더 이상 AppConfiguration
에 캐시되지 않습니다. 즉, baseUrl
을 변경할 수 있으며 앱 클라이언트 는 업데이트된 구성을 사용합니다. 이전 SDK 버전에서는 캐시된 앱 구성의 baseUrl
변경 사항이 적용되지 않았습니다.
앱 클라이언트 구성
다음 섹션에서는 특정 속성을 사용하여 AppConfiguration
클라이언트 를 빌드 하는 방법을 설명합니다.
동기화 연결 공유
참고
Atlas Device Sync 에 적용됩니다.
이 구성 옵션은 Atlas Device Sync를 사용하는 앱에만 적용됩니다. Kotlin SDK에서 Device Sync를 사용하는 방법에 대한 자세한 내용 은 앱에 Device Sync 추가 - Kotlin SDK를 참조하세요.
버전 1.13.0에 추가 되었습니다.
기본적으로 SDK는 동기화된 각 Realm에 대해 서버에 대한 별도의 연결을 엽니다. Kotlin v1.13.0 이상에서는 세션 멀티플렉싱 을 활성화할 수 있습니다. 활성화되면 SDK는 단일 Atlas App Services 사용자로 열린 모든 동기화 영역에 대해 서버 연결을 공유합니다. 여러 세션에서 연결을 공유하면 리소스가 줄어들고 성능이 향상될 수 있습니다.
멀티플렉싱은 기본적으로 비활성화되어 있습니다. .enableSessionMultilexing() 을 사용하여 AppConfiguration
에서 활성화할 수 있습니다. 메서드로, 부울 값을 허용합니다.
val config = AppConfiguration.Builder(YOUR_APP_ID) .enableSessionMultiplexing(true) .build()
활성화되면 모든 세션이 닫힐 때 공유 연결이 즉시 닫히지 않습니다. 대신 connectionLingerTime
동안 열린 상태로 유지되며 기본값은 30 초입니다. AppConfiguration
의 SyncTimeoutOptions.connectionLingerTime() 에 새 값을 전달하여 이 기간을 재정의할 수 있습니다.
val configCustomLingerTime = AppConfiguration.Builder(YOUR_APP_ID) .enableSessionMultiplexing(true) .syncTimeouts { connectionLingerTime = 10.seconds // Overrides default 30 secs } .build()
자세한 내용은 이 페이지의 동기화 시간 초과 구성 섹션을 참조하세요.
동기화 시간 초과 구성
참고
Atlas Device Sync 에 적용됩니다.
이 구성 옵션은 Atlas Device Sync를 사용하는 앱에만 적용됩니다. Kotlin SDK에서 Device Sync를 사용하는 방법에 대한 자세한 내용 은 앱에 Device Sync 추가 - Kotlin SDK를 참조하세요.
버전 1.13.0에 추가 되었습니다.
코틀린 (Kotlin) v1.13.0 이상에서는 Atlas 백엔드 와 클라이언트 앱 간에 데이터를 동기화할 때 사용되는 기본값 시간 제한 설정을 재정의할 수 있습니다.
.syncTimeout() 을 사용하여 AppConfiguration
에서 다양한 동기화 시간 초과 설정하다 을 지정할 수 있습니다. 메서드. 재정의하려는 특정 시간 초과 속성 값을 전달합니다. 구성된 제한 시간은 앱 의 모든 동기화 세션에 적용 됩니다.
val config = AppConfiguration.Builder(YOUR_APP_ID) .syncTimeouts { connectTimeout = 1.minutes connectionLingerTime = 15.seconds pingKeepalivePeriod = 30.seconds pongKeepalivePeriod = 1.minutes fastReconnectLimit = 30.seconds } .build()
사용 가능한 시간 초과 속성 및 해당 정의의 전체 목록은 SyncTimeoutOptionsBuilder API 참조를 참조하세요.
앱 메타데이터 암호화
App Services 에 연결하면 Realm 은 기기에 추가 메타데이터 파일을 생성합니다. 이러한 메타데이터 파일에 대한 자세한 내용은 코틀린 (Kotlin) 용 Atlas Device SDK 를 참조하세요.
동기화된 Realm 암호화와 유사하게 Atlas App Services가 클라이언트 기기에 저장하는 메타데이터를 암호화할 수 있습니다.
앱 메타데이터를 암호화하려면 앱을 초기화할 때 암호화 키를 encryptionKey 속성에 전달합니다.
val config = AppConfiguration.Builder(YOUR_APP_ID) // Specify the encryption key .encryptionKey(myEncryptionKey) .build()
사용자 지정 HTTP headers설정
버전 1.11.0의 새로운 기능.
프록시 설정 과 함께 App Services 또는 Device Sync 를 사용하는 경우 사용자 지정 HTTP headers 를 설정하다 해야 할 수 있습니다. 코틀린 SDK ( 코틀린 SDK (Kotlin SDK) )는 앱에서 사용자 지정 HTTP headers 설정을 지원합니다. 이러한 헤더는 함수 호출을 포함하여 App Services App 에 대한 모든 요청 에 추가됩니다.
앱을 초기화할 때 다음을 전달할 수 있습니다.
사용자 지정 authorizationHeaderName
String
값String
헤더 키 및 값 맵에 있는 모든 customRequestHeaders (SDK는 빈 값을 허용하지만 빈 키는 허용하지 않음)
AppConfiguration.Builder(YOUR_APP_ID) .authorizationHeaderName("MyApp-Authorization") .customRequestHeaders { put("X-MyApp-Version", "1.0.0") } .build()
플랫폼 네트워킹 활성화
버전 1.14.0에 추가 되었습니다.
Atlas Device SDK의 플랫폼 네트워킹 을 사용하면 Device Sync 트래픽에 기본값 WebSocket 클라이언트 대신 플랫폼의 네트워킹 스택 을 사용할 수 있습니다.
활성화하면 Android 및 JVM ( Java Virtual Machine) 플랫폼에서 실행 되는 애플리케이션이 OkHttp 를 통해 managed WebSocket을 사용하도록 구성할 수 있습니다. . 관리형 WebSocket은 인증 이 필요한 프록시 및 방화벽에 대한 고급 구성 지원 을 제공합니다.
플랫폼 네트워킹은 기본값 비활성화되어 있습니다. AppConfiguration.usePlatformNetworking() 을 사용하여 AppConfiguration
에서 활성화 할 수 있습니다. 메서드로, 부울 값을 허용합니다.
val config = AppConfiguration.Builder(YOUR_APP_ID) .usePlatformNetworking(true) .build()
참고
Android 및 JVM 플랫폼만 해당
이 기능 은 현재 Android 및 JVM ( Java Virtual Machine) 플랫폼에서만 사용할 수 있습니다.
앱 클라이언트 닫기
App.close() 메서드를 사용하여 앱 인스턴스를 수동으로 닫고 모든 기본 리소스를 해제할 수 있습니다.
app.close()
수동으로 닫지 않으면 앱 인스턴스 가 가비지 수집될 때 리소스가 해제됩니다.