Uygulama widget'larına genel bakış

Compose yöntemini deneyin
Jetpack Compose, Android için önerilen kullanıcı arayüzü araç setidir. Compose tarzı API'leri kullanarak widget oluşturmayı öğrenin.

Widget'lar, ana ekran özelleştirmenin önemli bir parçasıdır. Bunları, bir uygulamanın en önemli verilerinin ve işlevlerinin, kullanıcının ana ekranından erişilebilen "bir bakışta" görünümleri olarak düşünebilirsiniz. Kullanıcılar, widget'ları ana ekran panelleri arasında taşıyabilir ve destekleniyorsa widget'taki bilgi miktarını tercihlerine göre ayarlamak için yeniden boyutlandırabilir.

Bu dokümanda, oluşturabileceğiniz farklı widget türleri ve uyulması gereken tasarım ilkeleri açıklanmaktadır. Remote View API'lerini ve XML düzenlerini kullanarak uygulama widget'ı oluşturmak için Temel widget oluşturma başlıklı makaleyi inceleyin. Kotlin ve Compose tarzı API'leri kullanarak widget oluşturmak için Jetpack Glance'e bakın.

Widget türleri

Widget'ınızı planlarken ne tür bir widget oluşturmak istediğinizi düşünün. Widget'lar genellikle aşağıdaki kategorilerden birine girer:

Bilgi widget'ları

Tokyo'da havanın çoğunlukla bulutlu, 14 derece olduğunu ve saat 16:00 ile 19:00 arasında beklenen sıcaklığı gösteren örnek hava durumu widget'ı
Şekil 1. Hava durumu uygulamasından bir bilgi widget'ı.

Bilgi widget'ları genellikle önemli bilgi öğelerini gösterir ve bu bilgilerin zaman içinde nasıl değiştiğini izler. Bilgi widget'larına örnek olarak hava durumu widget'ları, saat widget'ları veya spor skorlarını takip eden widget'lar verilebilir. Bilgi widget'larına dokunduğunuzda genellikle ilgili uygulama başlatılır ve widget bilgilerinin ayrıntılı görünümü açılır.

Koleksiyon widget'ları

Koleksiyon widget'ları, aynı türden birden fazla öğeyi görüntüleme konusunda uzmanlaşmıştır. Örneğin, bir galeri uygulamasındaki resim koleksiyonu, bir haber uygulamasındaki makale koleksiyonu veya bir iletişim uygulamasındaki e-posta ya da mesaj koleksiyonu. Koleksiyon widget'ları dikey olarak kaydırılabilir.

Koleksiyon widget'ları genellikle aşağıdaki kullanım alanlarına odaklanır:

  • Koleksiyona göz atma
  • Koleksiyondaki bir öğeyi ilgili uygulamada ayrıntılı görünümünde açma.
  • Öğelerle etkileşim kurma (ör. öğeleri tamamlandı olarak işaretleme). Android 12'de (API düzeyi 31) bileşik düğmeler desteklenir.

Kontrol widget'ları

"Işık listesi" adlı bir uygulamanın widget'ı. "Yatak odası", "Mutfak" ve "Oturma odası" etiketli açma/kapatma anahtarları gösteriliyor. İlk iki anahtar kapalı.
Şekil 4. Kontrol widget'ı örneği.

Kontrol widget'ının temel amacı, sık kullanılan işlevleri görüntüleyerek kullanıcının uygulamayı açmak zorunda kalmadan bu işlevleri ana ekrandan tetiklemesini sağlamaktır. Bunları bir uygulamanın uzaktan kumandası olarak düşünebilirsiniz. Kontrol widget'ına örnek olarak, kullanıcıların evdeki ışıkları açıp kapatmasına olanak tanıyan bir ev kontrol widget'ı verilebilir.

Bir kontrol widget'ıyla etkileşimde bulunmak, uygulamada ilişkili bir ayrıntı görünümünü açabilir. Bu, kontrol widget'ının işlevinin herhangi bir veri çıkışı yapıp yapmadığına bağlıdır (ör. arama widget'ı).

Karma widget'lar

"Beğenmeme", geri, oynat/duraklat, ileri ve "beğenme" düğmelerini gösteren genel bir müzik uygulaması. Sanatçı ve parça, sırasıyla "Sanatçı" ve "Örnek müzik" olarak listelenir.
Şekil 5. Müzik uygulaması widget'ı örneği.

Bazı widget'lar önceki bölümlerdeki türlerden birini (bilgi, koleksiyon veya kontrol) temsil ederken, birçok widget farklı türlerin öğelerini birleştiren hibritlerdir. Örneğin, müzik çalar widget'ı öncelikle bir kontrol widget'ıdır ancak bilgi widget'ı gibi, kullanıcıya o anda çalmakta olan parçayı da gösterir.

Widget'ınızı planlarken temel türlerden birini temel alarak tasarlayın ve gerektiğinde diğer türlerin öğelerini ekleyin.

Widget'ları Google Asistan ile entegre etme

Google Asistan, kullanıcının sesli komutlarına yanıt olarak her tür widget'ı gösterebilir. Widget'larınızı Uygulama İşlemleri'ni yerine getirecek şekilde yapılandırarak kullanıcıların Android ve Android Auto gibi Asistan platformlarında hızlı yanıtlar ve etkileşimli uygulama deneyimleri elde etmesini sağlayabilirsiniz. Asistan için widget karşılama hakkında daha fazla bilgi edinmek isterseniz Uygulama İşlemleri'ni Android widget'larıyla entegre etme başlıklı makaleyi inceleyin.

Widget sınırlamaları

Widget'lar "mini uygulamalar" olarak anlaşılsa da widget'ınızı tasarlamadan önce anlamanız gereken bazı sınırlamalar vardır.

Hareketler

Widget'lar ana ekranda yer aldığından, orada bulunan gezinme öğeleriyle birlikte var olmaları gerekir. Bu durum, tam ekran uygulamalara kıyasla widget'larda kullanılabilen hareket desteğini sınırlar. Uygulamalar, kullanıcıların ekranlar arasında yatay olarak gezinmesine izin verebilir ancak bu hareket, ana ekranlar arasında gezinmek için ana ekranda zaten kullanılmaktadır.

Widget'lar için kullanılabilen tek hareketler dokunma ve dikey kaydırma'dır.

Öğeler

Widget'lar için kullanılabilen hareketlerle ilgili sınırlamalar nedeniyle, kısıtlanmış hareketleri kullanan bazı kullanıcı arayüzü yapı taşları widget'larda kullanılamaz. Desteklenen yapı taşlarının tam listesi ve düzen kısıtlamaları hakkında daha fazla bilgi için Widget düzenini oluşturma ve Esnek widget düzenleri sağlama başlıklı makaleleri inceleyin.

Tasarım yönergeleri

Ana ekranda ilgi çekici, esnek ve tutarlı bir widget deneyimi oluşturmak için bu tasarım yönergelerini uygulayın.

Widget içeriği

Widget'lar, uygulamanızdaki yeni ve ilgi çekici içeriklerin "reklamını yaparak" kullanıcıları uygulamanıza çekmenin harika bir yoludur.

Gazetelerin ön sayfasındaki tanıtımlar gibi widget'lar da bir uygulamanın bilgilerini birleştirip yoğunlaştırır ve uygulama içindeki daha zengin ayrıntılara bağlantı sağlar. Widget'ın bilgi "atıştırmalığı", uygulamanın ise "yemek" olduğunu söyleyebilirsiniz. Uygulamanızın, bilgi öğeleri hakkında widget'ta gösterilenden daha fazla ayrıntı sunduğundan emin olun.

Widget'ınızın yalnızca bilgi içeriği sağlamakla kalmayıp uygulamanızın sık kullanılan alanlarına gezinme bağlantıları da sunmasını sağlayabilirsiniz. Bu sayede kullanıcılar görevleri daha hızlı tamamlayabilir ve uygulamanın işlevsel erişimi ana ekrana kadar genişletilir.

Widget'lardaki gezinme bağlantıları için iyi örnekler şunlardır:

  • Üretken işlevler: Kullanıcının bir uygulama için yeni içerik (ör. yeni bir doküman veya yeni bir mesaj) oluşturmasına olanak tanıyan işlevlerdir.

  • Uygulamayı üst düzeyde açma: Bir bilgi öğesine dokunulduğunda genellikle kullanıcı daha alt düzeydeki bir ayrıntı ekranına yönlendirilir. Uygulamanızın en üst düzeyine erişim sağlamak, daha fazla gezinme esnekliği sunar ve kullanıcıların ana ekrandan uygulamaya gitmek için kullandığı özel bir uygulama kısayolunun yerini alabilir. Bu işlev için uygulama simgenizi kullanmak, gösterdiğiniz veriler belirsizse widget'ınıza net bir kimlik de sağlayabilir.

Widget'ı yeniden boyutlandırma

Standart Google Saat widget'ı
Şekil 6. Standart Google Saat widget'ı.

Yeniden boyutlandırılabilir bir widget'a dokunup basılı tuttuğunuzda ve ardından bıraktığınızda widget, yeniden boyutlandırma moduna geçer. Kullanıcılar, sürükleme tutamaçlarını veya widget köşelerini kullanarak tercih ettikleri boyutu ayarlayabilir.

Yeniden boyutlandırma, kullanıcıların ana ekran yerleşim ızgarasının kısıtlamaları dahilinde bir widget'ın yüksekliğini ve genişliğini ayarlamasına olanak tanır. Widget'ınızın serbestçe yeniden boyutlandırılıp boyutlandırılamayacağına veya yatay ya da dikey boyut değişiklikleriyle sınırlandırılıp sınırlandırılmayacağına karar verebilirsiniz. Widget'ınız doğası gereği sabit boyutluysa yeniden boyutlandırmayı desteklemeniz gerekmez.

Kullanıcıların widget'ları yeniden boyutlandırmasına izin vermenin önemli avantajları vardır:

  • Her widget'ta ne kadar bilgi görmek istediklerini hassas bir şekilde ayarlayabilirler.
  • Ev panellerindeki widget'ların ve kısayolların düzenini daha iyi etkileyebilirler.

Oluşturduğunuz widget türüne göre widget'ınız için bir yeniden boyutlandırma stratejisi planlayın. Liste veya tablo tabanlı koleksiyon widget'ları genellikle basittir. Widget'ı yeniden boyutlandırmak, dikey kaydırma alanını genişletir veya daraltır. Widget'ın boyutundan bağımsız olarak kullanıcı, tüm bilgi öğelerini kaydırarak görüntüleyebilir.

Bilgi widget'ları kaydırılabilir olmadığından ve tüm içeriğin belirli bir boyuta sığması gerektiğinden daha hassas bir planlama gerektirir. Widget'ınızın içeriğini ve düzenini, kullanıcının yeniden boyutlandırma işlemiyle tanımladığı boyuta göre dinamik olarak ayarlamanız gerekir.

Aşağıdaki örnekte, kullanıcı bir hava durumu widget'ını üç adımda yeniden boyutlandırabilir. Widget büyüdükçe mevcut konumdaki hava durumu hakkında daha ayrıntılı bilgiler gösterilir.

En küçük 3x2 ızgara boyutunda, konum adını (Tokyo), sıcaklığı (14°) ve parçalı bulutlu havayı gösteren simgeyi listeleyen örnek hava durumu widget'ı
Şekil 7. 3x2 boyutunda "küçük" bir hava durumu widget'ı örneği.


5x2 "orta" boyutta örnek hava durumu widget'ı. 3x2 boyutundaki ızgaranın tüm kullanıcı arayüzü öğelerinin yanı sıra "çoğunlukla bulutlu" etiketi ve 16:00-19:00 saatleri arasındaki sıcaklık tahminleri gösteriliyor.
Şekil 8. 5x2 ızgara "orta" boyutunda örnek hava durumu widget'ı.


5x4 "büyük" boyutta örnek hava durumu widget'ı. 3x2 ve 5x2 ızgara boyutlarındaki tüm kullanıcı arayüzünün yanı sıra salıdan cumaya hava durumu tahminini içerir.
Şekil 9. 5x4 ızgara "büyük" boyutunda örnek hava durumu widget'ı.

Her widget boyutu için uygulamanızdaki bilgilerin ne kadarının gösterileceğini belirleyin. Daha küçük boyutlarda temel bilgilere odaklanın, ardından widget yatay ve dikey olarak büyüdükçe bağlamsal bilgiler ekleyin.

Düzenle ilgili dikkat edilmesi gerekenler

Widget'larınızı, geliştirme yaptığınız cihazın yerleşim ızgarasının boyutlarına göre düzenlemek cazip gelebilir. Bu, ilk aşamada faydalı bir yaklaşım olabilir ancak aşağıdaki noktaları göz önünde bulundurun:

  • Widget yeniden boyutlandırma stratejinizi değişken ızgara boyutları yerine "boyut grupları" üzerinden planlamak en güvenilir sonuçları verir.
  • Hücrelerin sayısı, boyutu ve aralığı cihazdan cihaza büyük farklılıklar gösterebilir. Bu nedenle, widget'ınızın esnek olması ve beklenenden daha fazla veya daha az alan kaplayabilmesi çok önemlidir.
  • Kullanıcı bir widget'ı yeniden boyutlandırdığında sistem, widget'ınızın kendisini yeniden çizebileceği bir dp boyut aralığıyla yanıt verir.
  • Android 12'den itibaren daha hassas boyut özellikleri ve daha esnek düzenler sağlayabilirsiniz. Bu türdeki bilgilere şunlar dahildir:

Kullanıcılar tarafından widget yapılandırması

Bazen kullanıcının widget'ı kullanabilmesi için önce ayarlaması gerekir. Gelen kutusunun gösterilebilmesi için kullanıcının posta klasörünü seçmesi gereken bir e-posta widget'ını veya kullanıcının galeriden gösterilecek bir resim ataması gereken statik bir fotoğraf widget'ını düşünün. Android widget'ları, kullanıcı widget'ı ana ekrana bıraktıktan hemen sonra yapılandırma seçeneklerini gösterir.

Widget tasarımı yapılacaklar listesi

  • Widget'ınızda, göz atılabilir bilgilerin küçük bölümlerine odaklanın. Uygulamanızdaki bilgileri genişletin.
  • Amacınıza uygun widget türünü seçin.
  • Widget'ınızdaki içeriğin farklı boyutlara nasıl uyum sağlayacağını planlayın.
  • Düzenin esneyip daralabildiğinden emin olarak widget düzeninizi yön ve cihazdan bağımsız hale getirin.
  • Widget'ınızın ek yapılandırmaya ihtiyacı olup olmadığını değerlendirin.