— 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 10 months ago