DFX Operasyon Yöneticisi
Android ekosistemi akıllı saatler, oturma odaları, araçlar ve XR'a yayıldıkça kullanıcılarla yeni ekranlarda etkileşim kurma fırsatı da artıyor. Ancak Wear OS, Android TV, Android Auto, Android Automotive OS veya Android XR'da dağıtım yapmak; test, mağaza girişleri ve uygulama incelemeleriyle ilgili farklı konuları dikkate almayı gerektirir.
Bu oturumda, mobil olmayan form faktörleri için Google Play Console'u etkili bir şekilde kullanarak öngörülebilir bir çoklu cihaz lansmanını nasıl kolaylaştıracağınız ele alınmaktadır. Sürüm stratejilerini ve paket adlarını yapılandırma, hedeflenen test kanallarını ayarlama ve mağaza girişlerini özelleştirme gibi önemli dağıtım kararlarını ele alacağız. Form faktörü uygulama kalitesi yönergeleriyle ilgili pratik bir rehberlik alarak inceleme sürecinde sık karşılaşılan sorunlardan kaçınabilir ve Google Play'de daha güvenle yayınlayabilirsiniz.
Transkript
Herkese merhaba.
Çeşitli cihazlarda uygulama kalitesini yönetme ve mobil dışındaki form faktörleri için Google Play'de yayınlama konulu bu oturuma katıldığınız için çok teşekkür ederiz.
Ben Jan Kleinert, Arabalar için Android ekibinde Geliştirici İlişkileri Mühendisi olarak çalışıyorum.
Ben de Faustine Liao. Play Politika Değerlendirme Ekibi'nde operasyon yöneticisiyim.
Bugün hepinizi burada görmekten çok mutluyuz.
Yıllar boyunca Android geliştirme dendiğinde çoğumuzun aklına yalnızca mobil cihazlar geldi. Ancak Android ekosistemi akıllı telefonların çok ötesine geçti.
Kullanıcılarınız artık oturma odalarında Android TV'de, arabada giderken veya arabalarını şarj ederken Android Auto ya da Automotive OS'te, bileklerinde Wear OS'te ve giderek daha fazla Android XR ile etkileyici 3D alanlarda uygulamalarla etkileşim kuruyor.
Bu, büyüme için büyük bir fırsattır ancak bu form faktörlerine genişlemek, yayınlama stratejiniz için dikkate almanız gereken birkaç küçük husus olduğu anlamına gelir.
Uygulamanızı oluşturmaktan Google Play'de yayınlamaya ve kullanıma sunmaya kadar olan genel süreç, mobil sürümler için alışık olduğunuz şekilde devam eder.
Uygulamanızı oluşturup hazırlayın, ardından Google Play Console'da girişinizi oluşturun, uygulamanızı test edin, üretim sürümünüzü yükleyip gönderin ve inceleme ile onay sürecini bekleyin.
Ancak mobil dışındaki form faktörleri için uygulama yayınlarken dikkat edilmesi gereken bazı noktalar vardır.
Bugün, daha sorunsuz ve öngörülebilir bir çeşitli cihazlar sürüm sürecine hazırlanmanıza yardımcı olacak net bir çerçeve sunacağız.
Temel konularla başlayalım: Uygulamanızı nasıl tasarlayacağınız ve paketleyeceğiniz.
Bu nedenle, Google Play Console'u kullanmaya başlamadan önce önemli bir mimari karar vermeniz gerekir.
Desteklediğiniz tüm form faktörleri için her şeyi içeren tek ve birleşik bir uygulama paketi mi oluşturuyorsunuz yoksa uygulamanızı form faktörüne özel modüllere ayırıp her biri için Android App Bundle (AAB) mı oluşturuyorsunuz?
Modül veya modülerleştirme derken, kod tabanınızı sürdürülebilirliği artıracak şekilde yapılandırmanın bir yolundan bahsediyorum.
Modülerleştirme için birçok yaklaşım vardır ancak genel olarak yaptığınız şey, kod tabanınızı gevşek bağlı, bağımsız parçalar halinde düzenlemektir. Her parça bir modüldür.
Birleştirilmiş bir Android App Bundle yaklaşımını yönetmek daha kolay gibi görünse de aslında modüler yaklaşımı öneririz.
Bu modüler yaklaşımı neden önerdiğimizi gösteren bir örneği aşağıda bulabilirsiniz.
Hem mobil cihazları hem de Android TV'yi destekleyen bir uygulamanız olduğunu varsayalım.
Standart mobil sürüm kanalında tek bir Android App Bundle gönderirseniz ve Android TV uygulamanız inceleme kontrolünden geçemezse tüm sürüm durdurulur.
Bu nedenle, hem Android TV uygulamanızın hem de mobil uygulamanızın yayınlanmasını etkiler.
Dolayısıyla, mobil uygulamanızla ilgili herhangi bir sorun olmasa bile Android TV incelemesinin başarısız olmasına neden olan sorunları gidermeniz ve sürümün kullanıcılarınıza sunulabilmesi için uygulamanızı incelemeye yeniden göndermeniz gerekir.
Öte yandan, her form faktörü için modüler Android App Bundle'lar daha ayrıntılı kontrol imkanı sunar ve bu form faktörü sürümlerini mobil sürümlerinizden ayırmanıza yardımcı olur.
Bunun yerine, mobil uygulamanız ve TV uygulamanız için ayrı uygulama modülleriniz varsa her biri için ayrı Android App Bundle'lar oluşturabilirsiniz.
TV uygulamanızın incelemesiyle ilgili bir sorun varsa siz sorunu çözene kadar yalnızca bu uygulamanın sürümü engellenir.
Mobil uygulamanın sürümü, planlandığı şekilde yayınlanır.
Daha önce de belirttiğim gibi, modülerleştirme için birçok yaklaşım vardır.
Mobil deneyim ve Android Automotive OS deneyimi sunan bir sesli kitap uygulamasını modüler hale getirme yaklaşımına dair bir örneği aşağıda bulabilirsiniz.
Üst kısımda, yeşil renkle gösterilen her form faktörü için bir uygulama modülü bulunur. Bu modül, platforma özgü bağımlılıkları ayırmaya yardımcı olur.
Sarı renkte ise özellik modülleri var. Bunlar, uygulamanın işlevlerinin izole edilmiş kısımlarına karşılık gelir.
Veri modülleri mavi renkte gösterilir. En altta ise diğer modüllerin sıkça kullandığı kodları içeren, genellikle kullanılan temel veya ortak modüller bulunur.
Ardından, projenizin Gradle ayar dosyalarında bu tür modülerleştirmeyi desteklemek için bu çok modüllü Gradle yapılandırmasını ekleyip ayarlayabilirsiniz.
...
rootProject.name = "MultiFormFactorApp"
// Define modules for each form factor
include(":app:automotive")
include(":app:mobile")
include(":core:network")
include(":data:books")
include(":data:reviews")
include(":feature:home")
include(":feature:player")
include(":feature:reviews")Bu nedenle, her uygulama modülü ve paketi için aynı paket adını veya uygulama kimliğini kullanmaya devam edersiniz.
Bu modüler yaklaşım, Google Play Console'daki kanal stratejinizle doğrudan bağlantılıdır.
Yayınladığınızda standart mobil kanalınız olur ancak özel form faktörü kanalları da sunarız.
Android TV, Android XR ve Android Automotive OS için seçim yapabilirsiniz.
Mobil sürümle birlikte yayınlayabilir veya özel form faktörü kanallarını kullanabilirsiniz.
Ancak iki istisna vardır.
Wear OS için özel Wear OS kanalını kullanmanız gerekir.
Android Auto ise temel olarak mobil uygulamanızın araç ekranına yansıtılan bir uzantısı olduğundan tek seçenek standart mobil kanaldır.
Birden fazla takip sürecini yönetiyorsanız sürüm oluşturma çok önemlidir.
Yaklaşımlardan biri, sürüm kodunuzun ilk birkaç hanesini form faktörüne atamaktır.
Örneğin, mobil için 01, Wear OS için 02, Android Automotive OS için 03 vb.
Genellikle sürüm kodlarını en az yedi basamaklı yapmanızı öneririz. Böylece kalan basamaklar uygulama sürümü için kullanılabilir.
Bu sayede Google Play Console'da sürüm kodu çakışmaları önlenir.
Uygulamanız paketlendikten sonra test etme zamanı gelmiştir.
Form faktörü geliştirme, kapsamlı testler gerektirir. Google Play, üretime geçmeden önce bunu yapmanız için üç farklı kanal sunar: dahili test, kapalı test ve açık test.
Özel form faktörü kanalları kullanıyorsanız bu test kanallarını form faktörlerinizle birleştirerek süreç üzerinde daha ayrıntılı kontrol sahibi olabilirsiniz.
Örneğin, mobil uygulamanız için standart kanalda kapalı test sürümü, Android TV uygulamanız için ise özel Android TV form faktörü kanalında ayrı bir kapalı test sürümü oluşturabilirsiniz. Bu şekilde ayarlamak isterseniz farklı test kullanıcısı grupları kullanabilirsiniz.
Bu nedenle, dahili test iyi bir başlangıç noktasıdır.
Uygulamanızı 100'e kadar test kullanıcısına hızlıca dağıtmanıza olanak tanır ve en önemlisi, Google Play incelemesini tetiklemez.
Bu sayede siz ve test kullanıcılarınız, uygulamanızı cihazlara hızlıca yükleyebilir ve emülatörlerde ya da gerçek bir TV, kol saati veya başka bir cihazda deneyimi doğrulayabilirsiniz.
Dahili testlerde ise test kullanıcılarıyla paylaşabileceğiniz benzersiz bir URL alırsınız.
Dahili testinizin sonuçlarından memnun kaldığınızda kapalı test ve açık test aşamalarına geçebilirsiniz.
Kapalı test sürümüyle dahili testin ötesine geçebilirsiniz. Bu sayede, uygulamanızın yayın öncesi sürümlerini daha büyük bir test kullanıcısı grubuyla test ederek hedeflenen geri bildirimler alabilirsiniz.
Kapalı test gruplarınızı e-posta adresi listeleri olarak veya Google Gruplar üzerinden yönetebilirsiniz.
Açık test ise Google Play'de daha büyük bir grupla test yapmanıza olanak tanır.
Google Play'de görünür olursunuz ve herkes açık test programına katılabilir.
Davetiyeye gerek yoktur ve bu kullanıcılar uygulamayla ilgili geri bildirimlerini ve gizli geri bildirimlerini sizinle paylaşabilir.
Bu açık ve kapalı test kanalları incelemeleri tetikler.
Bu aslında çok büyük bir avantajdır.
Bu sayede, inceleme sürecini test edebilir ve merakla beklenen lansman gününden çok önce tüm engelleri ortadan kaldırabilirsiniz.
İnceleme sürecinden bahsetmişken, sürecin neleri kapsadığı ve neden önemli olduğu hakkında biraz konuşalım.
Bu politika ve yönergelerin temel amacı, uygulama kalitesini artırmaktır.
Yüksek kaliteli uygulama ve oyunlar kullanıcılara değer sunar, kullanması keyiflidir, premium cihazlarda en iyi performansı gösterir ve güvenlik düşünülerek tasarlanmıştır.
Şimdi, uygulamanızı incelemelerden mümkün olduğunca kolay geçecek şekilde nasıl hazırlayabileceğinize bakalım.
Başlamak için en iyi yerin, mükemmel bir kullanıcı deneyiminin nasıl olması gerektiğine odaklanan Uygulama Kalitesi yönergeleri olduğunu düşünüyorum.
Tüm uygulamalar için geçerli olan ve tüm uygulamaların karşılaması gereken minimum kaliteyi tanımlayan Temel Uygulama Kalitesi yönergelerinin yanı sıra uyarlanabilir Uygulama Kalitesi yönergeleri yayınlıyoruz. Bu yönergeler, cihazın form faktörü, ekran boyutu veya görüntüleme modu ne olursa olsun uygulamanızın mükemmel bir deneyim sunmasını sağlamanıza yardımcı olur.
Bu iki kural dizisi, başlamak için gerçekten iyi bir yerdir.
Ancak her form faktörü için özel uygulama kalitesi yönergelerimiz de vardır.
İnceleme ekibimiz, uygulamalarınızı gerçek cihazlarda ve emülatörlerde bu yönergelere göre test eder.
Bu nedenle, uygulamanızın bu politikalara uyduğundan emin olmanız çok önemlidir.
Şimdi, uygulamaların her form faktörü için reddedilmesinin en yaygın nedenlerine kısaca göz atalım.
Ancak bu soruların, Uygulama Kalitesi Yönergeleri'nin tamamını kapsamadığını unutmayın.
Bu nedenle, daha kapsamlı bir ölçüt grubu için çalıştığınız her form faktörüne yönelik kalite yönergelerini ayrıntılı olarak incelediğinizden emin olun.
Android TV ile başlayalım.
Bu nedenle, bu bölüm slaytlarının alt kısmında, sizi ilgili form faktörü için Uygulama Kalitesi yönergelerinin tam listesine götürecek kısa bir bağlantı göreceksiniz.
Android TV uygulamalarının reddedilmesinin yaygın nedenlerinden biri, uygulamanın desteklediği her dil için ana ekran banner resminin eksik olmasıdır.
Bu nedenle, uygulamanızı tanımlayan yerelleştirilmiş metin içeren 320 x 180 piksellik bir resim sağlamanız gerekir.
Bu slayttaki resimde, bu ölçütlere uyan bir ana ekran banner'ı örneği gösterilmektedir.
İkinci olarak, çoğu TV'de kullanıcılar cihazla etkileşim kurmak için d-pad uzaktan kumanda kullanır.
Bu nedenle, d-pad gezinmesini ve odaklanmayı doğru şekilde desteklemeniz çok önemlidir.
Bu ölçütlere göre ret almamak için en azından minimum d-pad kontrollerini desteklediğinizden emin olun.
Android TV uygulamalarının reddedilmesinin üçüncü yaygın nedeni ise Android manifest dosyanızda CATEGORY_LEANBACK_LAUNCHER intent filtresinin eksik olmasıdır.
<application ...>
...
<activity
android:name="com.example.TvActivity"
android:label="@string/app_name"
android:theme="@style/Theme.Leanback">
<intent-filter>
<action android:name=
"android.intent.action.MAIN" />
<category android:name=
"Android.intent.category.
LEANBACK_LAUNCHER" />
</intent-filter>
</activity>
</application>Bu filtre, uygulamanızı TV için etkinleştirilmiş olarak tanımlar ve Google Play'in de uygulamanızı kullanıcılara TV uygulaması olarak tanımlamasını sağlar.
Kullanıcı, TV ana ekranında uygulamanızı seçtiğinde hangi etkinliğin başlatılacağını bu intent belirler.
Bu nedenle, manifest dosyanıza eklediğinizden emin olun.
Sırada Android XR var.
Android XR destekli XR kulaklığı veya XR gözlükleri için uygulama geliştirirken uygulamalarınızın performansına, oluşturma işlemine ve kararlılığına özellikle dikkat edin.
Jetpack XR SDK ile geliştirilen uygulamaların performansını profillemek için Perfetto'yu kullanabilirsiniz. Böylece minimum kare hızı koşullarına uyduğunuzdan emin olabilirsiniz.
Unity gibi gerçek zamanlı bir motor kullanıyorsanız motorun yerleşik profil oluşturma araçlarını kullanarak oluşturma gereksinimlerine uyduğunuzdan emin olabilirsiniz.
Sırada Android Auto ve Android Automotive OS'ten oluşan arabalar var.
Android Auto ve Android Automotive OS'te, bu form faktörüne özgü kategoriler vardır.
Ayrıca yalnızca belirli uygulama kategorilerinin arabalarda yayınlanmasına izin verilir.
Dolayısıyla, desteklediğimiz kategorilerden biriyle uyumlu olmayan bir kategoriye uygulama gönderirseniz veya yalnızca beta sürümünde olan bir kategori için açık test ya da üretim kanalına uygulama gönderirseniz bu durum reddedilmeye neden olur.
Ne demek istediğimi daha ayrıntılı olarak göstereyim.
Burada, her platform için arabalarda desteklenen uygulama kategorilerine ve kullanılabilirlik durumlarına genel bir bakış sunulmaktadır.
Yani beta sürümünde mi, açık mı (genel kullanıma sunulduğu anlamına gelir) yoksa henüz desteklenmiyor mu (burada "yakında" ifadesiyle belirtilir) görebilirsiniz.
Navigasyon veya önemli yer uygulamaları gibi bazı kategoriler genel kullanıma sunulmuştur. Bu, herkesin bu kategorilerden birinde arabalar için üretim kanalına uygulama yayınlayabileceği anlamına gelir.
Ancak Android Auto için iletişim arama uygulamaları gibi diğer kategoriler beta sürümündedir.
Bu nedenle, söz konusu kategorilerde dahili test veya kapalı test kanalında yayınlayabilirsiniz ancak ilgili kategori için erken erişim programlarımızdan birine kabul edilmediğiniz sürece üretim kanalında yayınlayamazsınız.
Bu konu ve daha fazlası hakkında ayrıntılı bilgiyi Arabalar için Android geliştirici kılavuzlarımızda bulabilirsiniz.
Bu erken erişim programlarına aday olmak için kullanabileceğiniz bağlantıları burada bulabilirsiniz.
Uygulamaların reddedilmesinin bir diğer yaygın nedeni de Android Automotive OS ekran görüntülerinin eksik veya yanlış olmasıdır.
Bu nedenle, Android Automotive OS ekran görüntüleri gönderirken en az iki dikey ve en az iki yatay ekran görüntüsü eklediğinizden emin olmanız gerekir. Bu ekran görüntülerinin boyutları burada listelenen boyutlarda olmalıdır.
Bunları yakalamak için Android Automotive OS emülatörünü kullanabilirsiniz.
Bu araç, tam olarak ihtiyacınız olan boyutta ekran görüntüleri yakalayacak şekilde ayarlanmıştır.
Son olarak, arabalar için uygulamalarda güvenlik çok önemlidir.
Bu nedenle, sürücünün dikkatinin dağılmasıyla ilgili yönergelerimize uymayan uygulamalar reddedilir.
Örneğin, bir video uygulaması oynatmayı duraklatmalı ve araç hareket halindeyken görünür olmamalıdır.
Son olarak Wear OS'ten bahsedelim.
Bu nedenle, küçük ve yuvarlak ekranlar için optimize edilip biçimlendirilmemiş Wear OS uygulamaları reddedilebilir.
Bu nedenle, içeriğin farklı boyutlardaki cihazlarda kenarlardan kesilmemesi veya kaydırılabilir içerik olduğunda kaydırma çubuğunun görünmesi için Wear OS için Compose'un en son kararlı sürümünü kullanmanızı öneririz.
@Composable
fun MyText() {
Text(
text = stringResource(R.string.compose_for_wear_os),
modifier = Modifier.fillMaxWidth(),
textAlign = TextAlign.Center,
style = MaterialTheme.typography.titleLarge
)
}Android Automotive OS için bahsettiğimiz gibi, Wear OS uygulamaları da eksik veya yanlış Wear OS ekran görüntüleri nedeniyle reddedilebilir.
Androidify örnek uygulamasının Google Play Store girişinden alınan bu ekran görüntüsü, şartları karşılayan iyi bir örnektir.
Bu nedenle, uygulamanızın Wear OS cihazda çalıştığını gösteren en az bir ekran görüntüsü gönderdiğinizden emin olun.
Peki, buradan çıkarılacak sonuç ne?
Belirli form faktörünüzle ilgili uygulama kalitesi yönergelerini okuyun ve göndermeden önce bu yönergelere göre test edin.
Ayrıca birkaç önemli ipucu da vereceğiz.
Uygulamanızda giriş yapılması gerekiyorsa Google Play Console'un uygulama erişimi bölümünde etkin bir demo hesabı ve geçerli kimlik bilgileri sağlamanız gerekir.
İnceleme ekibimiz giriş yapamazsa uygulamanızı test edemeyiz ve uygulamanız otomatik olarak reddedilir.
Ayrıca, vaatlerinizi yerine getirdiğinizden emin olun.
Yalnızca mobil ekran görüntüleri kullanmayın.
Uygulamanız Wear OS ve Android TV'de kullanılabiliyorsa Google Play Console'da bu form faktörleri için yüksek kaliteli ekran görüntüleri yüklediğinizden emin olun.
Son olarak, açıklayıcı olun.
Kullanıcılara uygulamanın tam olarak ne işe yaradığını, neden değerli olduğunu ve her cihaz türüne yüklediklerinde neler bekleyebileceklerini açıklayın.
Özetlemek gerekirse, kullanıcılara neredeyse her yerde ulaşmak inanılmaz bir fırsat. Modüler mimari, hızlı iterasyon için dahili test, form faktörü kalite yönergelerine uygun tasarım ve mağaza girişlerinizi optimize etme gibi yöntemler, uygulamanızı daha sorunsuz bir lansman ve inceleme sürecine hazırlamanıza yardımcı olur.
Bugün zaman ayırdığınız için hepinize çok teşekkürler.
Google Play'e getireceğiniz muhteşem çeşitli cihaz deneyimlerini görmek için sabırsızlanıyoruz.
...
rootProject.name = "MultiFormFactorApp"
// Define modules for each form factor
include(":app:automotive")
include(":app:mobile")
include(":core:network")
include(":data:books")
include(":data:reviews")
include(":feature:home")
include(":feature:player")
include(":feature:reviews")<application ...>
...
<activity
android:name="com.example.TvActivity"
android:label="@string/app_name"
android:theme="@style/Theme.Leanback">
<intent-filter>
<action android:name=
"android.intent.action.MAIN" />
<category android:name=
"Android.intent.category.
LEANBACK_LAUNCHER" />
</intent-filter>
</activity>
</application>@Composable
fun MyText() {
Text(
text = stringResource(R.string.compose_for_wear_os),
modifier = Modifier.fillMaxWidth(),
textAlign = TextAlign.Center,
style = MaterialTheme.typography.titleLarge
)
}