Kotlin Multiplatform SDK'da onboarding'leri sunma

Onboardinglar SDK v4’te kullanımdan kaldırılmıştır ve gelecekteki bir sürümde kaldırılacaktır. Artık hata düzeltmesi veya iyileştirme almamaktadır. Bunun yerine flow’ları kullanın: WebView içinde çalışan onboardingların aksine, flow’lar cihazda native olarak render edilir; bu sayede daha akıcı animasyonlar, tutarlı bir native görünüm, daha hızlı yükleme süreleri ve WebView bağımlılığı ortadan kalkar. Başlamak için Flow’ları ve paywallları alma ve Flow’ları ve paywallları gösterme konularına bakın.

Builder ile bir onboarding oluşturduysanız, Kotlin Multiplatform uygulamanızda onu kullanıcıya göstermek için ekstra kod yazmanıza gerek yok. Böyle bir onboarding, hem neyin gösterileceğini hem de nasıl gösterileceğini kendi içinde barındırır.

Başlamadan önce şunları tamamladığınızdan emin olun:

  1. Adapty Kotlin Multiplatform SDK 3.16.1 veya daha yeni bir sürümünü yüklemiş olun.
  2. Bir onboarding oluşturmuş olun.
  3. Onboarding’i bir placement’a eklemiş olun.

Adapty Kotlin Multiplatform SDK, onboarding’leri sunmak için iki yöntem sağlar:

  • Compose Multiplatform ile
  • Compose Multiplatform olmadan

Compose Multiplatform ile

Bir onboarding göstermek için createOnboardingView metoduyla oluşturulan view üzerinde view.present() metodunu kullanın. Her view yalnızca bir kez kullanılabilir. Onboarding’i tekrar göstermeniz gerekiyorsa yeni bir view örneği oluşturmak için createOnboardingView metodunu bir kez daha çağırın.

Aynı view’ı yeniden oluşturmadan tekrar kullanmak hataya yol açabilir.


viewModelScope.launch {
    AdaptyUI.createOnboardingView(onboarding = onboarding).onSuccess { view ->
        view.present()
    }.onError { error ->
        // handle the error
    }
}

iOS sunum stilini yapılandırma

present() metoduna iosPresentationStyle parametresini geçerek onboarding’in iOS’ta nasıl sunulacağını yapılandırın. Parametre AdaptyUIIOSPresentationStyle.FULLSCREEN (varsayılan) veya AdaptyUIIOSPresentationStyle.PAGESHEET değerlerini kabul eder.


viewModelScope.launch {
    val view = AdaptyUI.createOnboardingView(onboarding = onboarding).getOrNull()
    view?.present(iosPresentationStyle = AdaptyUIIOSPresentationStyle.PAGESHEET)
}

Varsayılan olarak, onboarding’lerdeki linkler uygulama içi tarayıcıda açılır. Bu, web sayfalarını uygulamanızın içinde görüntüleyerek kullanıcıların uygulamalar arasında geçiş yapmadan içerikleri incelemesini sağlar ve kesintisiz bir kullanıcı deneyimi sunar.

Linklerin harici tarayıcıda açılmasını tercih ederseniz, externalUrlsPresentation parametresini AdaptyWebPresentation.EXTERNAL_BROWSER olarak ayarlayarak bu davranışı özelleştirebilirsiniz:


viewModelScope.launch {
    AdaptyUI.createOnboardingView(
        onboarding = onboarding,
        externalUrlsPresentation = AdaptyWebPresentation.EXTERNAL_BROWSER // default – IN_APP_BROWSER
    ).onSuccess { view ->
        view.present()
    }.onError { error ->
        // handle the error
    }
}

Compose Multiplatform Olmadan

createNativeOnboardingView, io.adapty:adapty-kmp çekirdek modülünün bir parçasıdır. Projeniz Compose Multiplatform kullanmıyorsa io.adapty:adapty-kmp-ui bağımlılığına ihtiyaç duymazsınız.

Compose Multiplatform olmadan bir onboarding eklemek için createNativeOnboardingView çağrısını yapın. Bu çağrı, layout’unuza eklediğiniz bir AdaptyNativeOnboardingView döndürür:

View’u imha edin

View’u layout’unuzdan kaldırırken dispose()’u çağırın. Bu işlem, olay dinleyicisinin kaydını siler ve dahili kaynakları serbest bırakır.

nativeView.dispose()