BuzzScreen Extension SDK 마이그레이션 가이드

목차





개요

본 가이드는 기존에 연동 중인 Migration Host/Client SDK의 버전을 Extension Host/Client SDK 버전으로 업데이트하기 위한 방법을 안내합니다. Migration Host/Client SDKExtension Host/Client SDK는 서로 정상 호환되지 않는 항목이 존재합니다. 따라서 마이그레이션 및 업데이트를 진행해야 한다면 M앱과 L앱 모두 최신 버전의 BuzzScreen Extension SDK 로 업데이트 해야 합니다. 가급적 M앱과 L앱을 스토어에 동시 배포 하는 것을 권장합니다.


BuzzScreenHost SDK

항목

Migration SDK (MigrationHost)

Extension SDK (BuzzScreenHost)

M앱 Extension, L앱 Migration 일 때 동작

M앱 Migration, L앱 Extension 일 때 동작

항목

Migration SDK (MigrationHost)

Extension SDK (BuzzScreenHost)

M앱 Extension, L앱 Migration 일 때 동작

M앱 Migration, L앱 Extension 일 때 동작

동작 방식 변경

초기화

MigrationHost.init()

  • BuzzScreen.init을 먼저 호출해야합니다.

BuzzScreenHost.init()

  • M앱에서 BuzzScreen을 연동하지 않습니다.

정상 동작합니다.

정상 동작합니다.

동작 방식 변경

L앱에서 버즈스크린이 활성화되어 M앱에서 잠금화면이 비활성화 되는 경우 호출되는 리스너가 등록

 

L앱의 잠금화면이 활성화/비활성화되거나 L앱에서 유저 정보가 변경되는 경우 호출되는 리스너가 등록되었습니다.

MigrationHost.setOnDeactivatedByLockScreenAppListener()

  • onDeactivated(): L앱에서 버즈스크린이 활성화되어 M앱에서 잠금화면이 비활성화 되는 경우 호출됩니다.

BuzzScreenHost.setClientEventListener()

  • onActivated(): L앱의 잠금화면이 활성화된 경우 호출됩니다.

  • onDeactivated(): L앱의 잠금화면이 비활성화된 경우 호출됩니다.

  • onUserProfileUpdated(): L앱에서 유저 정보가 변경되는 경우 호출됩니다.

M앱과 L앱의 연결이 끊긴 상태입니다. 리스너가 불리지 않습니다.

M앱과 L앱의 연결이 끊긴 상태입니다. 리스너가 불리지 않습니다.

동작 방식 변경

사용자 정보 설정

BuzzScreen.getInstance().getUserProfile()

BuzzScreenHost.getUserProfile()

  • M앱에서 BuzzScreen을 연동하지 않기 때문에, BuzzScreenHost로 유저 프로필 설정해야 합니다.

정상 동작합니다.

정상 동작합니다.

삭제됨

M앱에서 변경된 유저 아이디를 L앱에 동기화

MigrationHost.requestUserProfileSync()

삭제되었습니다.

  • L앱에서 checkAvailability를 호출 할 때 매번 M앱의 유저 정보를 가져옵니다.

삭제되었습니다.

M앱과 L앱의 연결이 끊긴 상태입니다. 따라서 L앱이 동작하지 않아 확인이 불가능합니다.

동작 방식 변경

로그아웃

BuzzScreen.getInstance().logout()

  • MigrationHost.requestDeactivation() 을 이어서 호출해야 합니다.

BuzzScreenHost.logout()

  • M앱에서 BuzzScreen을 연동하지 않습니다.

M앱은 로그아웃 되지만, L앱의 잠금화면이 비활성화 되지는 않습니다. L앱을 제어할 수 없는 상태입니다.

BuzzScreen.getInstance().logout() 자체는 정상 동작이나, MigrationHost.requestDeactivation()까지 고려해볼 때, 비정상 동작이라고 볼 수 있습니다.

동작 방식 변경

L앱을 통해 잠금화면 활성화, L앱이 실행

L앱을 실행만 하는 메서드, 잠금화면만 활성화 하는 메서드로 분리되었습니다.

 

MigrationHost.requestActivationWithLaunch()

  • BuzzScreen.getInstance().getUserProfile()을 미리 호출해야 합니다.

아래 두 개의 메서드로 분리되었습니다.

  • BuzzScreenHost.launchClient()

  • BuzzScreenHost.requestActivation()

  • BuzzScreenHost.launchClient()정상 동작합니다.

  • BuzzScreenHost.requestActivation()

    • CLIENT_NOT_SUPPORTED_VERSION 지원되지 않는 버전입니다

LockScreenApp 업데이트가 필요합니다.

LOCKSCREEN_APP_MIGRATION_NOT_SUPPORTED

지원되지 않는 버전입니다. LockScreenApp 업데이트가 필요합니다.

Migration(M앱)이 더 낮은 버전이며, 상위 버전인 Extension(L앱)을 업데이트하라는 현상이므로 비정상 동작입니다. M앱 L앱 모두 최신 버전으로 업데이트해주시기 바랍니다.

이름 변경

L앱의 실행 없이 L앱의 잠금화면 활성화

MigrationHost.requestActivation()

BuzzScreenHost.requestActivation()

CLIENT_NOT_SUPPORTED_VERSION

지원되지 않는 버전입니다. LockScreenApp 업데이트가 필요합니다.

LOCKSCREEN_APP_MIGRATION_NOT_SUPPORTED

지원되지 않는 버전입니다. LockScreenApp 업데이트가 필요합니다.

Migration(M앱)이 더 낮은 버전이며, 상위 버전인 Extension(L앱)을 업데이트하라는 현상이므로 비정상 동작입니다. M앱 L앱 모두 최신 버전으로 업데이트해주시기 바랍니다.

이름 변경

L앱 잠금화면 비활성화

MigrationHost.requestDeactivation()

BuzzScreenHost.requestDeactivation()

CLIENT_NOT_SUPPORTED_VERSION

지원되지 않는 버전입니다. LockScreenApp 업데이트가 필요합니다.

L앱을 제어할 수 없는 상태입니다. (리스너 없습니다)

이름 변경

L앱의 잠금화면 활성화 여부 확인

MigrationHost.isLockScreenAppActivated()

BuzzScreenHost.isClientActivated()

false

L앱 업데이트 이전 잠금화면 상태에 따라 다릅니다.

  • 잠금화면 On → true

  • 잠금화면 Off → false

삭제됨

커스텀 마켓 링크 설정

MigrationHost.setLockScreenAppMarketLink()

삭제되었습니다.

삭제되었습니다.

정상 동작합니다.

추가됨

잠금화면 스누즈하기

없습니다.

BuzzScreenHost.requestSnooze()

가이드에 공개되어 있지 않습니다. (샘플앱에만 존재합니다)

CLIENT_NOT_SUPPORTED_VERSION

지원되지 않는 버전입니다. LockScreenApp 업데이트가 필요합니다.

없습니다.

 

BuzzScreenClient SDK

항목

Migration SDK (MigrationClient)

Extension SDK (BuzzScreenClient)

M앱 Extension, L앱 Migration 일 때 동작

M앱 Migration, L앱 Extension 일 때 동작

항목

Migration SDK (MigrationClient)

Extension SDK (BuzzScreenClient)

M앱 Extension, L앱 Migration 일 때 동작

M앱 Migration, L앱 Extension 일 때 동작

이름 변경

초기화

MigrationClient.init()

BuzzScreenClient.init()

정상 동작합니다.

정상 동작합니다.

추가됨

M앱에서 로그아웃 되는 경우

없습니다.

BuzzScreenClient.setHostEventListener()

없습니다.

M앱과 L앱의 연결이 끊긴 상태입니다. 리스너가 불리지 않습니다.

이름 변경

L앱에서의 잠금화면이 비활성화되는 경우의 리스너 등록

MigrationClient.setOnDeactivatedByMainAppListener(OnDeactivatedByMainAppListener)

BuzzScreenClient.setOnDeactivatedByHostListener(OnDeactivatedByHostListener)

MAIN_APP_MIGRATION_NOT_SUPPORTED

L App 이용을 위해선 최신 버전의 M App이 설치되어 있어야 합니다.

Extension(L앱)이 하위 버전이며, 상위 버전인 Migration(M앱)을 업데이트하라는 현상이므로 비정상 동작입니다. M앱 L앱 모두 최신 버전으로 업데이트해주시기 바랍니다.

HOST_NOT_SUPPORTED_VERSION

L App 이용을 위해선 최신 버전의 M App이 설치되어 있어야 합니다.

이름 변경

M앱의 정보 가져오기

MigrationClient.checkAvailability()

BuzzScreenClient.checkAvailability()

MAIN_APP_MIGRATION_NOT_SUPPORTED

L App 이용을 위해선 최신 버전의 M App이 설치되어 있어야 합니다.

Extension(L앱)이 하위 버전이며, 상위 버전인 Migration(M앱)을 업데이트하라는 현상이므로 비정상 동작입니다. M앱 L앱 모두 최신 버전으로 업데이트해주시기 바랍니다.

HOST_NOT_SUPPORTED_VERSION

L App 이용을 위해선 최신 버전의 M App이 설치되어 있어야 합니다.

이름 변경

잠금화면 일시정지

MigrationClient.abort()

BuzzScreenClient.pause()

정상 동작합니다.

정상 동작합니다.

 

Communication Utils

Migration/Extension SDK, Host/Client 상관 없이 모두 동일한 메서드 사용합니다.

예시: MigrationHost.getDataStorage()BuzzScreenHost.getDataStorage()

XXX: MigrationHost or MigrationClient or BuzzScreenHost or BuzzScreenClient

M앱 Migration, L앱 Extension 일 때 동작

M앱 Extension, L앱 Migration 일 때 동작

XXX: MigrationHost or MigrationClient or BuzzScreenHost or BuzzScreenClient

M앱 Migration, L앱 Extension 일 때 동작

M앱 Extension, L앱 Migration 일 때 동작

XXX.getDataStorage().put()

정상 동작합니다.

정상 동작합니다.

XXX.getDataStorage().get()

정상 동작합니다.

정상 동작합니다.

XXX.getDataStorage().getAsync()

정상 동작합니다.

정상 동작합니다.

XXX.getEventHandler().post()

정상 동작합니다.

정상 동작합니다.

XXX.getEventHandler().registerEventListener()

정상 동작합니다.

정상 동작합니다.

XXX.getRequestHandler().registerResponder()

정상 동작합니다.

정상 동작합니다.

XXX.getRequestHandler().request()

정상 동작합니다.

정상 동작합니다.