On this page
Steps to upgrade sdk from 3.0 to 4.0
Step 1: Replace SDK
-
Remove debug and release versions in sdk 3.0
debugImplementation("com.ikame.android-sdk:ikm-android-sdk-debug:x.xx.xx")
releaseImplementation("com.ikame.android-sdk:pub-sdk-release:x.xx.xx")
-
Add debug and release version in sdk 4.0
def debugSdk = "com.ikameglobal:android-adapter-default-debug:1.4.31-rc"
def releaseSdk = "com.ikameglobal:android-pub-sdk-release:x.xx.xx"
dependencies {
// If your app uses BaseIkFirebaseMessagingService
implementation("com.google.firebase:firebase-messaging-ktx:24.1.0")
implementation("com.ikameglobal:android-sdk-ads:4.2.61-rc")
debugImplementation("$debugSdk")
releaseImplementation("$releaseLink")
}
Step 2: Replace IKBaseApplication with Application in application class
- Remove
override fun enableRewardAd()
- Remove
override fun configIAPData()
class MyApp : Application() {
override fun onCreate() {
super.onCreate()
// Your code
}
}
Step 3: Change splashAd display
-
Remove
andIKSdkController.loadSplashScreenAd
IKSdkController.showSplashScreenAd
-
Replace with:
class SplashActivity : AppCompatActivity() {
private val splashAd by lazy(LazyThreadSafetyMode.NONE) {
IKSplashAd()
}
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_splash)
lifecycleScope.launch {
splashAd.loadAndShowSplashScreenAd(
activity = this@SplashActivity,
listener = object : IKShowAdListener {
override fun onAdsDismiss() {
// Do something
}
override fun onAdsShowFail(error: IKAdError) {
// Do something
}
override fun onAdsShowTimeout() {
// Do something
}
}
)
}
}
}
Step 4: Replace some functions if used
–>IkmWidgetAdView.isAdLoaded
IkmWidgetAdView.getIsAdLoaded()
–>IkmWidgetAdView.enableShimmer
IkmWidgetAdView.setEnableShimmer(Boolean)
Step 5: Remove preload native, banner
IKSdkController.preloadNativeAd
IKSdkController.preloadBannerAd
IKSdkController.preloadBnBAd
IKSdkController.preloadNativeAdFullScreen
Step 6: Change if your app has IAP
Deprecated com.ikame.android.sdk.billing.IKBillingControlle
ReplaceWith com.ikame.android.sdk.billing.IKBilling
Step 7: Update Firebase Remote Config
Change: getRemoteConfigData()
transitioned from synchronous to asynchronous, using Kotlin’s suspend
functions.
Details:
Feature | SDK 3.0 | SDK 4.0 |
---|---|---|
Function Signature | fun getRemoteConfigData(): HashMap<String, IKRemoteConfigValue> |
suspend fun getRemoteConfigData(): HashMap<String, IKRemoteConfigValue> |
Execution | Synchronous (Blocking) | Asynchronous (Non-Blocking) |
lifecycleScope.launch {
val keyTest: String? = IKSdkController.getRemoteConfigData()["key_test"]?.getString()
}