İsteğe bağlı modüller olarak iyi çalışan işlevler, yükleme sırasında kullanıcılarınızın çoğunun ihtiyaç duymadığı işlevlerdir. Aşağıda, isteğe bağlı modüllere uygun uygulama özelliklerine birkaç örnek verilmiştir:
- Kullanıcıların büyük çoğunluğunun sadece video izlediği bir uygulamada video düzenlemek ve yüklemek
- Çoğu kullanıcının sadece başkalarının yemek tariflerine göz atıp takip ettiği bir uygulamaya yemek tarifi ekleme
- Çoğu kullanıcı uygulama içinde yardım aramadığında veya yardım aramadığında yardım ve destek işlevi
- Ayrıntılı hata yakalama ve raporlama gibi daha az kullanılan işlevler için büyük kitaplıklar
- Belirli ödeme özellikleri
- Çok yüksek çözünürlüklü medya deneyimleri veya VR/AR özellikleri
Bu modüllerin nispeten küçük olduğu (10 MB'tan küçük) ve ağ bağlantısı veya başka arızaların olmadığı tipik bir durumda, kullanıcılar isteğe bağlı bir modülü çok hızlı bir şekilde indirip kullanabilir. Yani deneyim, genellikle modülün uygulama yüklendiği sırada mevcut olmasından farklı değildir.
Bu sayfada, aşağıdakileri yapmanıza yardımcı olacak en iyi uygulamalar açıklanmaktadır:
- Kullanıcılarınızın anında yüklenmeyen nispeten büyük modül indirmelerinin veya modül yükleme hatalarının farkında olduğundan ve bunları kontrolünde hissettiğinden emin olun.
- Özellikle kullanıcının belirli bir modüle ihtiyaç duyacağını tahmin edebileceğiniz durumlarda, modül yayınlama deneyimini daha da optimize edin.
Bu kılavuzu okuduktan sonra Play Core API örnek uygulamasını deneyerek bu en iyi uygulamaların nasıl çalıştığını görün.
Kullanıcıyı bilgilendirin
Bir özellik hemen kullanılabilir olmadığında kullanıcıyı bilgilendirmelisiniz. Bir kullanıcı özelliği Google Play'den indirmeye karar verirse indirme işleminin ilerleme durumunu görüntüleyin.
İndirme ilerleme durumunu ve yükleme durumunu görüntülemek için istek durumunu izleyebilirsiniz. Ancak, görüntülemek istediğiniz kullanıcı arayüzünün türü, indirilen öğenin boyutuna bağlı olabilir:
- Hızlı bir şekilde yüklenebilen daha küçük modüller (yaklaşık 10 MB veya daha az) için, döner simge veya kısa bir "içerik indiriliyor" mesajı gibi göstergeleri kullanabilirsiniz.
- İndirilip yüklenmesi birkaç saniye veya daha uzun sürebilen daha büyük modüller için Şekil 1'de gösterilene benzer bir indirme ve yükleme ilerleme çubuğu gösterebilirsiniz.
Şekil 1. İsteğe bağlı bir özelliği indirirken ve yüklerken bir mesaj ve ilerleme çubuğu görüntüleme
Yükleme gecikmelerini ve hatalarını sorunsuz bir şekilde bildirin
İndirme işlemi başarısız olursa veya beklenenden daha yavaş ilerlerse, 2. ve 3. şekillerde gösterildiği gibi kullanıcıya neler olduğunu ve varsa ne yapabileceklerini açık ve şeffaf bir şekilde iletin. Örneğin, indirme isteğinin durumunu izliyorsanız ve uygulamanızda API_NOT_AVAILABLE
hatası alırsanız kullanıcıya cihazının isteğe bağlı indirmeleri desteklemediğini bildirin.
![](https://developer.android.com/static/studio/images/projects/dynamic-delivery/failed_download.png?authuser=6&hl=tr)
Şekil 2. Bir özelliğin şu anda neden yüklenemediğini kullanıcıya bildirin
![](https://developer.android.com/static/studio/images/projects/dynamic-delivery/large_download.png?authuser=6&hl=tr)
3. Şekil. Kullanıcıya bir özelliğin indirilmesinin neden beklenenden uzun sürebileceğini açıklayın
Büyük indirmeler için izin istenmeden önce değeri göster
İsteğe bağlı modül büyükse (> 150 MB) Google Play, modülü indirmeden önce kullanıcının iznini gerektirir.
Modülü talep etmeden önce kullanıcılarınıza modülün değerini açıklayın. Tıpkı uygulama izinleri isterken olduğu gibi, neden kendilerinden böyle bir istekte bulunduğunuzu anlamalarına yardımcı olun. Kullanıcılarla açık bir şekilde iletişim kurmak, indirmeyi kabul etme olasılıklarını artırır.
Örneğin, bir e-ticaret uygulaması oluşturduğunuzu ve bu özelliklerden birinin, kullanıcıların Artırılmış Gerçeklik (AR) kullanarak mobilyaları doğrudan dairelere yerleştirmelerine olanak tanıdığını düşünün. Örneğin, “Yeni koltuğunuzu oturma odanızda görmek ister misiniz? Artırılmış gerçeklik görüntüleyiciyi şimdi yükleyin."
Arka planda indirme ve yükleme işlemi gerçekleştir
Modül indirme ve yükleme her zaman arka planda gerçekleşmelidir. Yani, kullanıcı bir özelliğin kullanılabilir olmasını beklerken, uygulamanızın diğer bölümlerini kullanmaya devam etmesine izin vermelisiniz. Ayrıca, özellik kullanılabilir olduğunda kullanıcının tercihine bağlı olarak bu özelliği kullanmaya geçmesine olanak tanıyan bir bildirim sağlamanız gerekir.
Şekil 5'te gösterildiği gibi, kullanıcı uygulamayı kullanmaya devam eder ve isteğe bağlı bir özelliğin yüklenmesi tamamlandığında bir bildirim alır.
5. Şekil. Bir modül kurulumu tamamlandığında kullanıcının bağlamını aniden değiştirmek yerine, istenen özelliğin kendisi için hazır olduğunu kullanıcıya bildirin.
Modül kullanıma hazır olduğunda, kullanıcıyı bilgilendirin ve özelliği kullanıma sunma seçeneği sunun. Bu kalıp, kullanıcıya satın alma deneyimiyle ilgili bağlam ve kontrol sağlar.
Bazı durumlarda, özelliği hazır olur olmaz başlatabilirsiniz. Ancak, kullanıcı deneyimini kesintiye uğratabileceğinden bu davranışın beklenen ve uygun olup olmadığını dikkatlice düşünün.
Artık modüle ihtiyaç kalmadığında cihazın depolama alanında yer açma
Tüm özellik modüllerinin faydalı bir özelliği, bunları tek tek kaldırabilmektir. Bir özellik modülü artık kullanılmıyorsa Google Play'den söz konusu modülü kaldırmasını isteyerek kullanıcının cihazındaki uygulamanızın boyutunu azaltabilirsiniz.
Örneğin, uygulamanızın zengin medya içeren güçlü bir ilk katılım akışı olabilir. Kullanıcılar ilk katılım akışını tamamladıktan sonra veya belirli bir süre etkin olduktan sonra Play Feature Delivery API'sini kullanarak Google Play'den uygulamanızın yalnızca bu bileşeninin kaldırılmasını isteyebilirsiniz.
Ancak daha sonra, ilk uygulama yükleme işlemi sırasında eklediğiniz modülleri kaldırabileceğinizi unutmayın. Örneğin, uygulamanızı nasıl kullanacakları konusunda yeni kullanıcıları eğiten bir modül, kullanıcılar uygulamanızı ilk kez kullandıklarında değerlidir. Ancak, uygulama boyutunu küçültmek için, eğitimi tamamladıktan sonra uygulamayı kaldırabilirsiniz.
İleri düzey ipuçları
Genellikle, kullanıcının isteğe bağlı özellik modüllerinizin işlevselliğini kullanma niyetini açıkça belirttiği durumları ele almanız gerekir.
Ancak bir kullanıcının bir özelliği kullanmak istediğini size belirtmeden önce bu özellikle etkileşim kurma olasılığının yüksek olduğu zamanları tahmin etmek isteyebilirsiniz. Örnek olarak yemek tarifleri indirip oluşturmanıza olanak tanıyan bir uygulama kullanıldığında, aşağıdaki kurallarda kullanıcı ihtiyaçlarını öngörerek modül sunma deneyiminin nasıl optimize edileceği açıklanmaktadır.
Mevcut oturumda kullanıcının bir özelliğe olan ihtiyacını tahmin edin. Kullanıcıların sadece kendi tariflerini oluşturmak ve toplulukla paylaşmak istediklerinde yemek tarifi uygulaması için hesap oluşturmaları gerekip gerekmediğini düşünün. Hesap oluşturma işlemini, kullanıcının "yemek tarifi ekle"ye dokunmadan özellik modülünü indirmeye başlaması gerektiğini gösteren bir sinyal olarak kullanabilirsiniz. Özellik indirme işlemini daha sorunsuz hale getirmek için bu yaklaşımı uygulamadaki diğer kullanıcı yolculuklarına uygulayabilirsiniz.
Yaklaşan bir oturumda kullanıcının bu özelliğe olan ihtiyacını tahmin edin. Uygulamanızın isteğe bağlı bir modülü hemen indirip yüklemesi gerekmiyorsa yüklemeyi, uygulama arka plandayken gerçekleştirilecek şekilde erteleyebilirsiniz. İndirme ve yükleme işlemlerini Google Play gerçekleştirir. Örneğin, yemek pişirme uygulaması için kullanıcının mevcut oturumu için yüksek öncelikli olmayan mevsimlik yeni tarifler yayınlamak istediğinizi düşünün. Uygulama arka plandayken Play'den bu yemek tariflerini indirip yüklemesini isteyebilirsiniz. Bu, özellikle şu anda ihtiyaç duyulmayan ancak gelecekte ihtiyaç duyulabilecek daha büyük özellikler (10 MB'tan büyük) için faydalıdır.
Uygulamayı yüklemeden önce kullanıcıların bir özellik ihtiyacını tahmin edin. Özelliğinizi kullanıcının ülkesi, cihaz donanım özelliği ve API düzeyine bağlı olarak yükleme sırasında dahil etmek için koşullu yayın için destek ekleyebilirsiniz. Örneğin, koşullu modüllerde domuz eti kullanılan tarifler eklemek ve bu modülü, genel olarak domuz etli yemeklerden kaçınan bölgelerde uygulama yüklemesinden hariç tutmak isteyebilirsiniz.