Widget'lar, ana ekran özelleştirmenin temel unsurlarından biridir. Bunları, uygulamadaki en önemli verilerin ve işlevlerin doğrudan 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ırabilirler.
Bu dokümanda, oluşturabileceğiniz farklı widget türleri ve uygulamanız gereken tasarım ilkeleri açıklanmaktadır. Kaldırma Görünümü API'lerini ve XML düzenlerini kullanarak bir uygulama widget'ı oluşturmak için Basit bir widget oluşturma bölümüne bakın. Kotlin ve Compose stili API'leri kullanarak widget oluşturmak için Jetpack Glance'ı inceleyin.
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ı
Bilgi widget'ları genellikle önemli bilgi öğelerini görüntüler 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 maç skoru takip widget'ları verilebilir. Bilgi widget'larına dokunmak genellikle ilişkili uygulamayı başlatır ve widget bilgilerinin ayrıntılı bir görünümünü açar.
Koleksiyon widget'ları
Koleksiyon widget'ları, bir galeri uygulamasından resim koleksiyonu, bir haber uygulamasından makale koleksiyonu veya bir iletişim uygulamasından e-posta ya da mesaj koleksiyonu gibi aynı türden birden çok öğeyi görüntüleme konusunda uzmandır. Koleksiyon widget'ları dikey olarak kaydırılabilir.
Koleksiyon widget'ları genellikle aşağıdaki kullanım alanlarına odaklanır:
- Koleksiyona göz atılıyor.
- Koleksiyonun bir öğesini, ilişkilendirilen uygulamada ayrıntılı görünümde açma.
- Android 12'de (API düzeyi 31) bileşik düğmeler desteğiyle etkileşimde bulunma (ör. tamamlandı olarak işaretleme).
Widget'ları kontrol etme
Kontrol widget'ının ana amacı, sık kullanılan işlevleri görüntülemektir. Böylece, kullanıcı bunları uygulamayı açmak zorunda kalmadan ana ekrandan tetikleyebilir. Bunları, bir uygulamanın uzaktan kumandası gibi düşünebilirsiniz. Kontrol widget'ına örnek olarak, kullanıcıların evdeki ışıkları açıp kapatmalarına olanak tanıyan bir ev kontrolü widget'ı verilebilir.
Bir kontrol widget'ıyla etkileşimde bulunulduğunda, uygulamada ilişkili bir ayrıntı görünümü açılabilir. Bu durum, kontrol widget'ının işlevinin herhangi bir veri (ör. arama widget'ında olduğu gibi) verip vermediğine bağlıdır.
Karma widget'lar
Bazı widget'lar, önceki bölümlerde (bilgi, toplama veya kontrol) yer alan türlerden birini temsil eder. Ancak birçok widget, farklı türden öğeleri birleştiren karmadır. Örneğin, bir müzik çalar widget'ı esasen bir kontrol widget'ıdır, ancak aynı zamanda bir bilgi widget'ı gibi, kullanıcıya o anda çalan parçayı da gösterir.
Widget'ınızı planlarken temel türlerden birini tasarlayın ve gerektiğinde diğer türlerden öğeler ekleyin.
Widget'ları Google Asistan'la entegre etme
Google Asistan, kullanıcının sesli komutlarına yanıt olarak her türlü widget'ı gösterebilir. Widget'larınızı Uygulama İşlemleri'ni gerçekleştirecek şekilde yapılandırarak kullanıcıların Android ve Android Auto gibi Asistan yüzeylerinde hızlı yanıtlar ve etkileşimli uygulama deneyimleri almalarını sağlayabilirsiniz. Asistan için widget karşılama hakkında daha fazla bilgi edinmek isterseniz Uygulama İşlemleri'ni Android widget'larıyla entegre etme bölümüne bakın.
Widget sınırlamaları
Widget'lar "mini uygulamalar" olarak anlaşılabilse de, widget'ınızı tasarlamadan önce anlaşılması gereken bazı sınırlamalar vardır.
Hareketler
Widget'lar ana ekranda bulunduğundan, ana ekranda kurulan gezinme ile bir arada bulunması gerekir. Bu, tam ekran uygulamaya 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 zaten ana ekranda alınır.
Widget'lar için kullanılabilen hareketler yalnızca dokunma ve dikey kaydırma hareketlerdir.
Elementler
Widget'larda kullanılabilen hareketlerle ilgili sınırlamalar nedeniyle, kısıtlanmış hareketlere dayanan 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 konularına bakın.
Tasarım yönergeleri
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.
Tıpkı bir gazetenin ön sayfasındaki fragmanlar gibi, widget'lar uygulamanın bilgilerini birleştirip yoğunlaştırır ve uygulama içinde daha zengin ayrıntılara bağlantı sağlar. Widget'ın "atıştırmalık" bilgi olduğunu, uygulamayı ise "yemek" olduğunu söyleyebilirsiniz. Uygulamanızın bir bilgi öğesi hakkında, widget'ın görüntülediğinden daha fazla ayrıntı gösterdiğinden emin olun.
Widget ile gezinme
Salt bilgi içeriğine ek olarak, widget'ınızı uygulamanızın sık kullanılan alanlarına yönelik gezinme bağlantıları sağlayacak şekilde ayarlamayı düşünün. Bu, kullanıcıların görevleri daha hızlı tamamlamasına olanak tanır ve uygulamanın işlevsel erişimini ana ekrana genişletir.
Widget'lardaki gezinme bağlantıları için en uygun adaylar şunlardır:
Üretken işlevler: Kullanıcının bir uygulama için yeni içerik oluşturmasını sağlayan işlevlerdir (ör. yeni bir doküman veya mesaj oluşturmak).
Uygulamayı en üst düzeyde açma: Bir bilgi öğesine dokunulduğunda genellikle kullanıcı daha düşük seviyedeki 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 normalde ana ekrandan uygulamaya gitmek için kullandıkları özel bir uygulama kısayolunun yerini alabilir. Gösterdiğiniz veriler belirsizse bu işlev için uygulama simgenizi kullanmak, widget'ınıza net bir kimlik de sağlayabilir.
Widget yeniden boyutlandırma
Yeniden boyutlandırılabilir bir widget'a dokunup basılı tutmak ve ardından serbest bırakmak, widget'ı yeniden boyutlandırma moduna geçirir. Kullanıcılar tercih ettikleri boyutu ayarlamak için sürükleme tutma yerlerini veya widget köşelerini kullanabilir.
Yeniden boyutlandırma, kullanıcıların bir widget'ın yüksekliğini ve genişliğini ana ekran yerleşim ızgarasının sınırları içinde ayarlamasına olanak tanır. Widget'ınızın serbest bir şekilde yeniden boyutlandırılıp boyutlandırılmayacağına ya da yatay veya dikey boyut değişiklikleriyle sınırlandırılıp kısıtlanmayacağına karar verebilirsiniz. Widget'ınız yapısı gereği sabit boyutluysa yeniden boyutlandırmayı desteklemeniz gerekmez.
Kullanıcıların widget'ları yeniden boyutlandırmasına izin vermenin önemli yararları vardır:
- Her widget'ta görmek istedikleri bilgi miktarına ince ayar yapabilirler.
- Ana sayfa panellerindeki widget'ların ve kısayolların düzenini daha iyi etkileyebilirler.
Oluşturduğunuz widget'ın türüne göre widget'ınız için bir yeniden boyutlandırma stratejisi planlayın. Widget'ın yeniden boyutlandırılması dikey kaydırma alanını genişlettiği veya daralttığı için liste veya ızgara tabanlı koleksiyon widget'ları genellikle basittir. Widget'ın boyutundan bağımsız olarak kullanıcı tüm bilgi öğelerini görünüme kaydırabilir.
Bilgi widget'ları kaydırılamadıkları ve tüm içeriklerin belirli bir boyuta sığması gerektiği için daha fazla 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 ve böylece, widget büyüdükçe geçerli konumdaki hava durumuyla ilgili daha zengin bilgiler elde edebilir.
Her widget boyutu için uygulama bilgilerinizin ne kadarının gösterileceğini belirleyin. Küçük boyutlar için temel bilgilere odaklanın ve widget yatay ve dikey olarak büyüdükçe bağlamsal bilgiler ekleyin.
Düzen konusunda dikkat edilmesi gereken noktalar
Widget'larınızı, birlikte geliştirirken kullandığınız cihazın yerleşim ızgarasının boyutlarına göre yerleştirmek cazip bir fikir olabilir. Bu, başlangıç için yaklaşık tahmin olabilir ancak şu noktaları aklınızda bulundurun:
- Widget yeniden boyutlandırma stratejinizi değişken ızgara boyutları yerine "boyut grupları"na göre planlamak size en güvenilir sonuçları sağlar.
- Hücrelerin sayısı, boyutu ve aralıkları cihazdan cihaza büyük ölçüde farklılık gösterebilir. Bu nedenle widget'ınızın esnek olması ve beklenenden daha fazla veya daha az alan barındırabilmesi çok önemlidir.
- Kullanıcı bir widget'ı yeniden boyutlandırdığında sistem, widget'ınızın kendini 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. Buna aşağıdakiler dahildir:
- Widget boyutu kısıtlamalarını belirtme. Örneğin, widget'ınız için hedef boyutu (ızgara hücreleri) ve mümkün olan maksimum boyutu belirtebilirsiniz.
- Widget'ın boyutuna göre değişen duyarlı düzenler sağlar.
- Başlatıcının, dikey ve yatay modlar için boyut seçenekleriyle, telefonlar için ise katlanabilir cihazlar için dört boyut seçenekleriyle yanıt vermesine olanak tanıyan tam boyutlu düzenler sağlama.
- Widget'ınız için uygun boyutları belirlemek amacıyla güncellenmiş kılavuzu ve yeni API'leri kullanma.
Kullanıcılara göre widget yapılandırması
Bazen, widget'ın kullanışlı hale gelmesi için kullanıcının widget'ı ayarlaması gerekir. Gelen kutusunun görüntülenebilmesi için kullanıcının e-posta klasörünü seçmesi gereken bir e-posta widget'ı veya görüntülenmek için kullanıcının galeriden resim ataması gereken statik bir fotoğraf widget'ı düşünün. Android widget'ları, kullanıcı widget'ı ana ekrana bıraktıktan hemen sonra yapılandırma seçeneklerini görüntüler.
Widget tasarımı kontrol listesi
- Widget'ınızda, bir bakışta anlaşılabilir bilgilerin küçük bölümlerine odaklanın. Uygulamanızdaki bilgilere dayalı olun.
- Amacınız için doğru widget türünü seçin.
- Widget'ınızın içeriğinin farklı boyutlara nasıl uyum sağlayacağını planlayın.
- Düzenin genişleyip daralabileceğinden emin olarak widget düzeninizi yönden ve cihazdan bağımsız hale getirin.
- Widget'ınız için ek yapılandırma gerekip gerekmediğini değerlendirin.