— SDK v1からv2のアップグレード方法

Usage

KARTE SDK v2 では、これまでの設計を1から見直し、新たな設計のSDKを構築しました。

SDK v1 との大きな違いとして、以下のような違いがあります。

  • 実装言語の変更(Java > Kotlin)
  • 機能単位でのモジュール化
  • インターフェースの見直し

これに伴い、導入手順の変更や実装の置き換えなどの作業が発生します。
ここでは、SDK v1 から v2 への具体的なアップグレード方法について示します。

SDK構成の変更

SDK v1 では全ての機能を一つのバイナリにパッケージするモノリシックな構造でしたが、SDK v2 では機能毎にバイナリにパッケージするモジュール構造に変更しております。

そのため、アプリケーションが必要とする機能に応じてインストールするバイナリを選択する必要があります。

なお KARTE SDK を導入する上で、core モジュールの導入は必須となります。
詳細な SDK の導入手順については、 SDKを導入する をご覧ください。

各機能とモジュールの対応関係

機能

対応モジュール

必須

コア機能 / イベント計測

core

アプリ内メッセージ

inappmessaging

プッシュ通知

notifications

設定値配信

variables

ビジュアルトラッキング

visualtracking
Karte Gradle Plugin

インターフェースの違いについて

SDK v2 では、モジュール化に伴い全てのインターフェースの見直しを行いました。
この見直しは破壊的なものあり、インターフェースの後方互換性はありません。

SDK v1 と v2 のインターフェースの対応関係
クラス名とメソッド名の間にある # はインスタンスメソッド、. はクラスメソッドを意味します。

SDK v1 IF

SDK v2 IF

Required v2 module

Tracker.init()

KarteApp.setup()

core

Tracker#getAppKey()

KarteApp#getAppKey()

core

Tracker#getVisitorId()

KarteApp.getVisitorId()

core

Tracker#getTrackerConfig()

KarteApp#getConfig()

core

Tracker#getAppInfo()

KarteApp#getAppInfo()

core

Tracker#optIn()

KarteApp.optIn()

core

Tracker#optOut()

KarteApp.optOut()

core

Tracker#isOptOut()

KarteApp.isOptOut()

core

Tracker#renewVisitorId()

KarteApp.renewVisitorId()

core

Tracker#track()

Tracker.track()

core

Tracker#identify()

Tracker.identify()

core

Tracker#view()

Tracker.view()

core

Tracker#trackFcmToken()

Notifications.registerFCMToken()
KarteApp.registerFCMToken()

notifications

Tracker#trackUncaughtException()

廃止

Tracker.getInstance()

廃止

Tracker#getInAppMessagingManager

廃止
InAppMessagingクラスに直接アクセス

inappmessaging

Tracker#addTrackerListener

Tracker.setDelegate

core

TrackerConfig

Config

core

TrackerConfig#setEnabledTrackingAaid

Config#enabledTrackingAaid

core

TrackerConfig#setEnableTrackingCrashError

廃止(常にtrue)

core

TrackerConfig#setEnableFCMTokenResend

Notifications.Config#enabledFCMTokenResend

notifications

TrackerConfig#setAutoControlSoftInputAdjust

廃止

core

TrackerConfig#setEnableTrackerOptOut

Config#isOptOut

core

TrackerConfig#setEnableWebViewCache

InaAppMessaging.Config#enabledWebViewCache

inappmessaging

TrackerConfig#setDryRun

Config#isDryRun

core

TrackerConfig.Builder

Config.Builder

core

TrackerJsUtil.appendUserSyncQueryParameter()

UserSync.appendUserSyncQueryParameter()

core

TrackerJsUtil.
setUserSyncScript()

UserSync.setUserSyncScript(_:)

core

KRLog

Logger

core

KRLog.setLevel()

KarteApp.setLogLevel()
Logger.setLevel

core

KRLog.d()等

Logger.d()等

core

InAppMessagingManager

InAppMessaging

inappmessaging

InAppMessagingManager.OnOpenURLListener

InAppMEssagingDelegate

inappmessaging

InAppMessagingManager#isPresenting()

InAppMessaging.isPresenting

inappmessaging

InAppMessagingManager#dismiss()

InAppMessaging.dismiss()

inappmessaging

InAppMessagingManager#suppress()

InAppMessaging.suppress()

inappmessaging

InAppMessagingManager#unsuppress()

InAppMessaging.unsuppress()

inappmessaging

InAppMessagingManager#setOnOpenURLListener()
InAppMessagingManager#removeOnOpenURLListener()

InAppMessaging.setDelegate

inappmessaging

InAppMessagingManager#registerPopupWindow()

InAppMessaging.registerPopupWindow()

inappmessaging

InAppMessagingManager#registerWindow()

InAppMessaging.registerWindow()

inappmessaging

MessageHandler.canHandleMessage()

namespaceと引数の変更

notifications

MessageHandler.handleMessage()

namespaceと引数の変更

notifications

MessageHandler.copyInfoToIntent()

namespaceの変更

notifications

Variables.getInstance()

廃止

variables

Variables.fetch()

namespaceの変更

variables

Variables.getVariable()

Variables.get()

variables

Variables.track()

Tracker.trackOpen()
Tracker.trackClick()

variables

Variable

namespaceの変更

variables

廃止された機能

複数アプリケーションキー対応

アプリケーションキー毎に Tracker インスタンスを管理する機能は廃止されました。

アップグレード手順

KARTE SDK v2 にアップグレードする際は、まず KARTE SDK v1 を最新版 にアップグレードした上で、SDK v2 にアップグレードすることをお勧めします。

v1 の最新版には v2 と互換性のあるインターフェースを用意しています。
また旧インターフェースは deprecated となっており、旧インターフェースを利用した状態でビルドを行うと警告が表示されるようになっています。

警告に従い新インターフェースに置き換えていただくことで、v2 アップグレード後はモジュール依存の修正のみを行えば良い状態となります。

Updated about a year ago

— SDK v1からv2のアップグレード方法


Usage

Suggested Edits are limited on API Reference Pages

You can only suggest edits to Markdown body content, but not to the API spec.