— 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 IFSDK v2 IFRequired 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#addTrackerListenerTracker.setDelegatecore
TrackerConfigConfigcore
TrackerConfig#setEnabledTrackingAaidConfig#enabledTrackingAaidcore
TrackerConfig#setEnableTrackingCrashError廃止(常にtrue)core
TrackerConfig#setEnableFCMTokenResendNotifications.Config#enabledFCMTokenResendnotifications
TrackerConfig#setAutoControlSoftInputAdjust廃止core
TrackerConfig#setEnableTrackerOptOutConfig#isOptOutcore
TrackerConfig#setEnableWebViewCacheInaAppMessaging.Config#enabledWebViewCacheinappmessaging
TrackerConfig#setDryRunConfig#isDryRuncore
TrackerConfig.BuilderConfig.Buildercore
TrackerJsUtil.appendUserSyncQueryParameter()UserSync.appendUserSyncQueryParameter()core
TrackerJsUtil.
setUserSyncScript()
UserSync.setUserSyncScript(_:)core
KRLogLoggercore
KRLog.setLevel()KarteApp.setLogLevel()
Logger.setLevel
core
KRLog.d()等Logger.d()等core
InAppMessagingManagerInAppMessaginginappmessaging
InAppMessagingManager.OnOpenURLListenerInAppMEssagingDelegateinappmessaging
InAppMessagingManager#isPresenting()InAppMessaging.isPresentinginappmessaging
InAppMessagingManager#dismiss()InAppMessaging.dismiss()inappmessaging
InAppMessagingManager#suppress()InAppMessaging.suppress()inappmessaging
InAppMessagingManager#unsuppress()InAppMessaging.unsuppress()inappmessaging
InAppMessagingManager#setOnOpenURLListener()
InAppMessagingManager#removeOnOpenURLListener()
InAppMessaging.setDelegateinappmessaging
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
Variablenamespaceの変更variables

廃止された機能

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

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

アップグレード手順

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

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

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