---
title: "Flutter SDK'da onboarding alma"
description: "Flutter için Adapty'de onboarding'lerin nasıl alınacağını öğrenin."
---

Adapty Kontrol Paneli'ndeki builder ile [onboarding'in görsel kısmını tasarladıktan](design-onboarding) sonra, bunu Flutter uygulamanızda gösterebilirsiniz. Bu sürecin ilk adımı, aşağıda açıklandığı gibi placement ile ilişkili onboarding'i ve görünüm yapılandırmasını almaktır.

Başlamadan önce şunları sağlayın:

1. [Adapty Flutter SDK](sdk-installation-flutter) sürüm 3.8.0 veya daha yüksek sürümü yüklemiş olun.
2. [Bir onboarding oluşturmuş](create-onboarding) olun.
3. Onboarding'i bir [placement](placements)'a eklemiş olun.

## Onboarding'i getirme \{#fetch-onboarding\}

No-code builder ile bir [onboarding](onboardings) oluşturduğunuzda, bu onboarding uygulamanızın getirip göstermesi gereken bir yapılandırma içeren container olarak saklanır. Bu container, tüm deneyimi yönetir; hangi içeriğin görüneceğini, nasıl sunulacağını ve kullanıcı etkileşimlerinin (sınav yanıtları veya form girişleri gibi) nasıl işleneceğini belirler. Container ayrıca analitik etkinliklerini otomatik olarak takip eder, dolayısıyla ayrı bir görüntüleme takibi uygulamanıza gerek kalmaz.

En iyi performans için, onboarding yapılandırmasını erken getirerek görsellerin kullanıcılara gösterilmeden önce indirilmesi için yeterli zaman tanıyın.

Bir onboarding almak için `getOnboarding` metodunu kullanın:

```dart showLineNumbers
try {
  final onboarding = await Adapty().getOnboarding(placementId: "YOUR_PLACEMENT_ID");
} on AdaptyError catch (e) {
    //handle error
} catch (e) { 
    //handle error
}
```

Ardından, göstereceğiniz görünümü almak için `createOnboardingView` metodunu çağırın.

:::warning
`createOnboardingView` metodunun sonucu yalnızca bir kez kullanılabilir. Tekrar kullanmanız gerekiyorsa `createOnboardingView` metodunu yeniden çağırın. Yeniden oluşturmadan iki kez çağırmak `AdaptyUIError.viewAlreadyPresented` hatasına yol açabilir.
:::

```dart showLineNumbers

try {
    final onboardingView = await Adapty().createOnboardingView(onboarding: onboarding);
} on AdaptyError catch (e) { 
    //handle error
} catch (e) { 
    //handle error
}
```

Parametreler:

| Parametre | Zorunluluk | Açıklama |
|---------|--------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| **placementId** | zorunlu | İstenen [Placement](placements)'ın tanımlayıcısı. Bu, Adapty Kontrol Paneli'nde placement oluştururken belirttiğiniz değerdir. |
| **locale** | <p>isteğe bağlı</p><p>varsayılan: `en`</p> | <p>Onboarding yerelleştirmesinin tanımlayıcısı. Bu parametrenin, eksi (**-**) karakteriyle ayrılmış bir veya iki alt etiket içeren bir dil kodu olması beklenir. İlk alt etiket dil için, ikincisi ise bölge içindir.</p><p></p><p>Örnek: `en` İngilizce anlamına gelir, `pt-br` ise Brezilya Portekizcesini temsil eder.</p> |
| **fetchPolicy** | varsayılan: `.reloadRevalidatingCacheData` | <p>SDK varsayılan olarak verileri sunucudan yüklemeye çalışır ve başarısızlık durumunda önbelleğe alınmış verileri döndürür. Kullanıcılarınızın her zaman en güncel verileri almasını sağladığından bu seçeneği öneririz.</p><p></p><p>Ancak kullanıcılarınızın kararsız bir internet bağlantısıyla uğraştığını düşünüyorsanız, önbelleğe alınmış veriler mevcutsa bunları döndürmek için `.returnCacheDataElseLoad` kullanmayı değerlendirin. Bu senaryoda kullanıcılar en güncel verileri alamayabilir, ancak internet bağlantıları ne kadar düzensiz olursa olsun daha hızlı yükleme süreleriyle karşılaşırlar. Önbellek düzenli olarak güncellenir, bu nedenle ağ isteklerinden kaçınmak için oturum sırasında güvenle kullanılabilir.</p><p></p><p>Önbelleğin uygulama yeniden başlatıldığında bozulmadan kaldığını ve yalnızca uygulama yeniden yüklendiğinde veya manuel temizleme yoluyla silindiğini unutmayın.</p><p></p><p>Adapty SDK, onboarding'leri yerel olarak iki katmanda saklar: yukarıda açıklanan düzenli olarak güncellenen önbellek ve yedek onboarding'ler. Onboarding'leri daha hızlı getirmek için CDN ve CDN'e erişilemediğinde kullanılan bağımsız bir yedek sunucu da kullanıyoruz. Bu sistem, internet bağlantısının yetersiz olduğu durumlarda bile güvenilirliği sağlarken her zaman onboarding'lerinizin en son sürümünü almanızı garanti edecek şekilde tasarlanmıştır.</p> |
| **loadTimeout** | varsayılan: 5 sn | <p>Bu değer, metodun zaman aşımını sınırlandırır. Zaman aşımına ulaşılırsa önbelleğe alınmış veriler veya yerel yedek döndürülür.</p><p>Nadir durumlarda bu metodun `loadTimeout`'ta belirtilenden biraz daha geç zaman aşımına uğrayabileceğini unutmayın; çünkü işlem arka planda farklı isteklerden oluşabilir.</p> |

Yanıt parametreleri:

| Parametre | Açıklama |
|:----------|:-----------------------------------------------------------------------------------------------------------------------------------------------------------|
| Onboarding | Onboarding tanımlayıcısı ve yapılandırması, remote config ve diğer çeşitli özelliklerle birlikte bir [`AdaptyOnboarding`](https://pub.dev/documentation/adapty_flutter/latest/adapty_flutter/AdaptyOnboarding-class.html) nesnesi. |

## Varsayılan kitle onboarding'iyle onboarding getirmeyi hızlandırma \{#speed-up-onboarding-fetching-with-default-audience-onboarding\}

Genellikle onboarding'ler neredeyse anında getirilir, bu yüzden bu süreci hızlandırma konusunda endişelenmenize gerek yoktur. Ancak çok sayıda kitleniz ve onboarding'iniz varsa ve kullanıcılarınızın internet bağlantısı zayıfsa, bir onboarding getirmek istediğinizden daha uzun sürebilir. Bu gibi durumlarda, hiç onboarding göstermemek yerine sorunsuz bir kullanıcı deneyimi sağlamak için varsayılan bir onboarding görüntülemek isteyebilirsiniz.

Bu sorunu çözmek için `getOnboardingForDefaultAudience` metodunu kullanabilirsiniz; bu metot, belirtilen placement'ın **All Users** kitlesi için onboarding'i getirir. Ancak önerilen yaklaşımın, yukarıdaki [Onboarding'i Getirme](#fetch-onboarding) bölümünde ayrıntılı olarak açıklandığı gibi `getOnboarding` metoduyla onboarding'i getirmek olduğunu anlamak son derece önemlidir.

:::warning
`getOnboardingForDefaultAudience` yerine `getOnboarding` kullanmayı değerlendirin; çünkü ikincisinin önemli sınırlamaları vardır:

- **Uyumluluk sorunları**: Birden fazla uygulama sürümünü desteklerken sorunlara yol açabilir; ya geriye dönük uyumlu tasarımlar gerektirir ya da eski sürümlerin yanlış görüntülenebileceğini kabul etmek zorunda kalırsınız.
- **Kişiselleştirme yok**: Yalnızca "All Users" kitlesi için içerik gösterir; ülke, attribution veya özel niteliklere dayalı hedeflemeyi kaldırır.

Kullanım durumunuz için daha hızlı getirme bu dezavantajlardan daha önemliyse, aşağıda gösterildiği gibi `getOnboardingForDefaultAudience` kullanın. Aksi takdirde [yukarıda](#fetch-onboarding) açıklandığı gibi `getOnboarding` kullanın.
:::

```dart showLineNumbers
try {
    final onboarding = await Adapty().getOnboardingForDefaultAudience(placementId: 'YOUR_PLACEMENT_ID');
} on AdaptyError catch (adaptyError) {
    // handle error
} catch (e) {
    // handle unknown error
}
```

Parametreler:

| Parametre | Zorunluluk | Açıklama |
|-----------------|-----------------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| **placementId** | zorunlu | İstenen [Placement](placements)'ın tanımlayıcısı. Bu, Adapty Kontrol Paneli'nde placement oluştururken belirttiğiniz değerdir. |
| **locale** | <p>isteğe bağlı</p><p>varsayılan: `en`</p> | <p>Onboarding yerelleştirmesinin tanımlayıcısı. Bu parametrenin, eksi (**-**) karakteriyle ayrılmış bir veya iki alt etiket içeren bir dil kodu olması beklenir. İlk alt etiket dil için, ikincisi ise bölge içindir.</p><p></p><p>Örnek: `en` İngilizce anlamına gelir, `pt-br` ise Brezilya Portekizcesini temsil eder.</p> |
| **fetchPolicy** | varsayılan: `.reloadRevalidatingCacheData` | <p>SDK varsayılan olarak verileri sunucudan yüklemeye çalışır ve başarısızlık durumunda önbelleğe alınmış verileri döndürür. Kullanıcılarınızın her zaman en güncel verileri almasını sağladığından bu seçeneği öneririz.</p><p></p><p>Ancak kullanıcılarınızın kararsız bir internet bağlantısıyla uğraştığını düşünüyorsanız, önbelleğe alınmış veriler mevcutsa bunları döndürmek için `.returnCacheDataElseLoad` kullanmayı değerlendirin. Bu senaryoda kullanıcılar en güncel verileri alamayabilir, ancak internet bağlantıları ne kadar düzensiz olursa olsun daha hızlı yükleme süreleriyle karşılaşırlar. Önbellek düzenli olarak güncellenir, bu nedenle ağ isteklerinden kaçınmak için oturum sırasında güvenle kullanılabilir.</p><p></p><p>Önbelleğin uygulama yeniden başlatıldığında bozulmadan kaldığını ve yalnızca uygulama yeniden yüklendiğinde veya manuel temizleme yoluyla silindiğini unutmayın.</p><p></p><p>Adapty SDK, onboarding'leri yerel olarak iki katmanda saklar: yukarıda açıklanan düzenli olarak güncellenen önbellek ve yedek onboarding'ler. Onboarding'leri daha hızlı getirmek için CDN ve CDN'e erişilemediğinde kullanılan bağımsız bir yedek sunucu da kullanıyoruz. Bu sistem, internet bağlantısının yetersiz olduğu durumlarda bile güvenilirliği sağlarken her zaman onboarding'lerinizin en son sürümünü almanızı garanti edecek şekilde tasarlanmıştır.</p> |