Flutter SDK'da onboarding sunma

Builder ile özelleştirilmiş bir onboarding oluşturduysanız, bunu kullanıcıya göstermek için Flutter uygulama kodunuzda ayrıca render etmenize gerek yoktur. Bu tür bir onboarding, hem ne gösterileceğini hem de nasıl gösterileceğini içerir.

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

  1. Adapty Flutter SDK 3.8.0 veya sonrasını yüklemiş olun.
  2. Bir onboarding oluşturmuş olun.
  3. Onboarding’i bir placement’a eklemiş olun.

Adapty Flutter SDK, onboarding’leri sunmak için iki yol sunar:

  • Bağımsız ekran

  • Gömülü widget

Bağımsız ekran olarak göster

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

Aynı onboardingView’ı yeniden oluşturmadan tekrar kullanmak AdaptyUIError.viewAlreadyPresented hatasına yol açabilir.

try {
  await onboardingView.present();
} on AdaptyError catch (e) {
  // handle the error
} catch (e) {
  // handle the error
}

Onboarding’i kapatma

Onboarding’i programatik olarak kapatmanız gerektiğinde dismiss() metodunu kullanın:

try {
  await onboardingView.dismiss();
} on AdaptyError catch (e) {
  // handle the error
} catch (e) {
  // handle the error
}

iOS sunum stilini yapılandırma

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

try {
  await onboardingView.present(iosPresentationStyle: AdaptyUIIOSPresentationStyle.pageSheet);
} on AdaptyError catch (e) {
  // handle the error
} catch (e) {
  // handle the error
}

Widget hiyerarşisine yerleştirme

Bir onboarding’i mevcut widget ağacınıza gömmek için AdaptyUIOnboardingPlatformView widget’ını doğrudan Flutter widget hiyerarşinizde kullanın.

AdaptyUIOnboardingPlatformView(
  onboarding: onboarding, // The onboarding object you fetched
  onDidFinishLoading: (meta) {
  },
  onDidFailWithError: (error) {
  },
  onCloseAction: (meta, actionId) {
  },
  onPaywallAction: (meta, actionId) {
  },
  onCustomAction: (meta, actionId) {
  },
  onStateUpdatedAction: (meta, elementId, params) {
  },
  onAnalyticsEvent: (meta, event) {
  },
)

Android platform view’ın çalışması için MainActivity dosyanızın FlutterFragmentActivity’yi extend ettiğinden emin olun:

class MainActivity : FlutterFragmentActivity() {
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
    }
}

Onboarding sırasında yükleme ekranı

Bir onboarding sunarken, splash ekranınız ile onboarding arasında, arka plandaki görünüm başlatılırken kısa bir yükleme ekranı fark edebilirsiniz. Bunu ihtiyaçlarınıza göre farklı şekillerde ele alabilirsiniz.

onDidFinishLoading kullanarak splash ekranını kontrol etme

Bu yaklaşım yalnızca onboarding’i bir widget olarak gömdüğünüzde kullanılabilir. Bağımsız ekran sunumunda kullanılamaz.

Önerilen platformlar arası yaklaşım, onboarding tam yüklenene kadar splash ekranınızı veya özel katmanınızı görünür tutmak, ardından bunu elle gizlemektir.

Gömülü widget kullanırken, üzerine kendi widget’ınızı yerleştirin ve onDidFinishLoading tetiklendiğinde katmanı gizleyin:

AdaptyUIOnboardingPlatformView(
  onboarding: onboarding,
  onDidFinishLoading: (meta) {
    // Hide your custom splash screen or overlay here
  },
  // ... other callbacks
)

Yerel yükleyiciyi özelleştirme

Bu yaklaşım platforma özgüdür ve yerel UI kodunun bakımını gerektirir. Uygulamanızda zaten ayrı yerel katmanlar kullanmıyorsanız önerilmez.

Varsayılan yükleyiciyi özelleştirmeniz gerekiyorsa platforma özgü layout’larla değiştirebilirsiniz. Bu yaklaşım Android ve iOS için ayrı uygulamalar gerektirir:

  • iOS: Xcode projenize AdaptyOnboardingPlaceholderView.xib ekleyin
  • Android: res/layout klasöründe adapty_onboarding_placeholder_view.xml oluşturun ve burada bir yer tutucu tanımlayın

Onboardinglerde linklerin nasıl açılacağını özelleştirme, Adapty SDK v3.15.1 sürümünden itibaren desteklenmektedir.

Varsayılan olarak, onboardinglerdeki linkler uygulama içi bir tarayıcıda açılır. Bu, web sayfalarını uygulamanız içinde göstererek kullanıcıların uygulama değiştirmeden görüntülemesine olanak tanır ve sorunsuz bir kullanıcı deneyimi sağlar.

Linkleri bunun yerine harici bir tarayıcıda açmayı tercih ediyorsanız, externalUrlsPresentation parametresini AdaptyWebPresentation.externalBrowser olarak ayarlayarak bu davranışı özelleştirebilirsiniz:

Güvenli alan doldurmalarını devre dışı bırakma (Android)

Varsayılan olarak, Android cihazlarda onboarding görünümü; durum çubuğu ve gezinme çubuğu gibi sistem UI öğelerinden kaçınmak için güvenli alan dolgularını otomatik olarak uygular. Ancak bu davranışı devre dışı bırakmak ve düzen üzerinde tam kontrol sahibi olmak istiyorsanız, uygulamanıza bir boolean kaynağı ekleyerek bunu yapabilirsiniz:

  1. android/app/src/main/res/values dizinine gidin. Eğer bools.xml dosyası yoksa, oluşturun.

  2. Aşağıdaki kaynağı ekleyin:

<resources>
    <bool name="adapty_onboarding_enable_safe_area_paddings">false</bool>
</resources>

Değişikliklerin uygulamanızdaki tüm onboarding’ler için geçerli olduğunu unutmayın.