Widget'lar, ana ekran özelleştirmesinin ö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'daki bilgi miktarını tercihlerine göre ayarlamak için widget'ları yeniden boyutlandırabilir.
Bu dokümanda, oluşturabileceğiniz farklı widget türleri ve uyulması gereken tasarım ilkeleri tanıtılmaktadır. Uzak Görüntüleme API'lerini ve XML düzenlerini kullanarak uygulama widget'ı oluşturmak için Basit bir widget oluşturma başlıklı makaleyi inceleyin. Kotlin ve Compose stili API'leri kullanarak widget oluşturmak için Jetpack Glance başlıklı makaleyi inceleyin.
Widget türleri
Widget'ınızı planlarken nasıl 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ö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 maç skoru izleme widget'ları verilebilir. Bilgi widget'larına dokunduğunuzda genellikle ilişkili uygulama açılır ve widget bilgilerinin ayrıntılı görünümü gösterilir.
Koleksiyon widget'ları
Koleksiyon widget'ları, aynı türden birden fazla öğeyi (ör. bir galeri uygulamasındaki resim koleksiyonu, bir haber uygulamasındaki makale koleksiyonu veya bir iletişim uygulamasındaki e-posta ya da mesaj koleksiyonu) 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 atma.
- Koleksiyondaki bir öğeyi, ilişkili uygulamada ayrıntılı görünümünde açma.
- Android 12'de (API düzeyi 31) bileşik düğmeler için destekle etkileşimde bulunma (ör. tamamlandı olarak işaretleme).
Widget'ları kontrol etme
Kontrol widget'larının asıl amacı, sık kullanılan işlevleri kullanıcının uygulamayı açmak zorunda kalmadan ana ekrandan tetikleyebilmesi için görüntülemektir. Bu widget'ları bir uygulamanın uzaktan kumandası olarak düşünebilirsiniz. Kullanıcıların evdeki ışıkları açıp kapatmasına olanak tanıyan ev kontrolü widget'ı, kontrol widget'ı örneğidir.
Bir kontrol widget'ıyla etkileşim kurmak, uygulamada ilişkili bir ayrıntı görünümü açabilir. Bu, kontrol widget'ının işlevinin veri çıkıp çıkmadığına (ör. arama widget'ı) bağlıdır.
Karma widget'lar
Bazı widget'lar önceki bölümlerdeki türlerden birini (bilgi, koleksiyon veya kontrol) temsil ederken birçok widget, farklı türlerdeki öğeleri birleştiren karma widget'lardır. Örneğin, müzik çalar widget'ı öncelikle bir kontrol widget'ıdır ancak bilgi widget'ı gibi kullanıcıya şu anda çalan parçayı da gösterir.
Widget'ınızı planlarken temel türlerden birini temel alıp gerektiğinde diğer türlerde öğeler ekleyin.
Widget'ları Google Asistan'la 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 işlemlerini 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 almasını sağlayabilirsiniz. Asistan için widget karşılama hakkında daha fazla bilgi için 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şılabilir ancak widget'ınızı tasarlamadan önce anlamanız gereken belirli sınırlamalar vardır.
Hareketler
Widget'lar ana ekranda bulunduğundan, burada oluşturulan gezinmeyle bir arada bulunmalıdır. Bu, tam ekran bir uygulamaya kıyasla widget'ta kullanılabilen hareket desteğini sınırlandırır. Uygulamalar kullanıcıların ekranlar arasında yatay olarak gezinmesine izin verse de bu hareket, ana ekranlar arasında gezinme amacıyla zaten ana ekranda alınır.
Widget'lar için kullanılabilen tek hareketler dokunma ve dikey kaydırma'dır.
Öğeler
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 başlıklı makaleleri inceleyin.
Tasarım yönergeleri
Widget içeriği
Widget'lar, uygulamanızda bulunan yeni ve ilgi çekici içeriklerin "reklamını" yaparak kullanıcıları uygulamanıza çekmenin mükemmel bir yoludur.
Bir gazetenin ön sayfasındaki tanıtım metinleri gibi widget'lar da uygulamanın bilgilerini bir araya getirir ve yoğunlaştırır, ayrıca uygulamadaki daha zengin ayrıntılara bağlantı sağlar. Widget'ı bilgi "atıştırmalığı", uygulamayı ise "yemek" olarak düşünebilirsiniz. Uygulamanızın, bir bilgi öğesi hakkında widget'ta görüntülenenden daha fazla ayrıntı gösterdiğinden emin olun.
Widget'larda gezinme
Widget'ınızın, bilgi içeriğinin yanı sıra uygulamanızın sık kullanılan alanlarına yönelik gezinme bağlantıları sağlamasını sağlayabilirsiniz. Bu sayede kullanıcılar görevleri daha hızlı tamamlayabilir ve uygulamanın işlevsel erişimi ana ekrana genişletilebilir.
Widget'lardaki gezinme bağlantıları için iyi adaylar şunlardır:
Üretken işlevler: Kullanıcının bir uygulama için yeni içerikler (ö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 dokunduğunuzda genellikle kullanıcı daha düşük düzeyli bir ayrıntı ekranına yönlendirilir. Uygulamanızın üst düzeyine erişim izni vermek, daha fazla gezinme esnekliği sunar ve kullanıcıların ana ekrandan uygulamaya gitmek için kullandığı özel uygulama kısayolunun yerini alabilir. Bu işlev için uygulama simgenizi kullanmak, görüntülediğiniz veriler belirsizse widget'ınıza net bir kimlik de kazandırabilir.
Widget yeniden boyutlandırma
Yeniden boyutlandırılabilir bir widget'a dokunup basılı tutup bırakın. Ardından widget yeniden boyutlandırma moduna girer. Kullanıcılar, tercih ettikleri boyutu ayarlamak için sürükleme tutamaçlarını veya widget köşelerini kullanabilir.
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 ayarlamaları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ırlanıp sınırlanamayacağına karar verebilirsiniz. Widget'ınız sabit boyuttaysa yeniden boyutlandırmayı desteklemeniz gerekmez.
Kullanıcıların widget'ları yeniden boyutlandırmasına izin vermenin önemli avantajları vardır:
- Her widget'ta görmek istedikleri bilgi miktarını hassaslaştırabilirler.
- Ana 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 ızgara tabanlı koleksiyon widget'ları genellikle basittir çünkü widget'ın yeniden boyutlandırılması dikey kaydırma alanını genişletir veya daraltır. Kullanıcı, widget'ın boyutundan bağımsız olarak tüm bilgi öğelerini görüntülemek için ekranı kaydırabilir.
Bilgi widget'ları kaydırılabilir olmadığı ve tüm içeriğin 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 dinamik olarak ayarlamanız gerekir.
Aşağıdaki örnekte, kullanıcı bir hava durumu widget'ını üç adımda yeniden boyutlandırabilir ve widget büyüdükçe mevcut konumdaki hava durumu hakkında daha zengin bilgiler gösterebilir.
Her widget boyutu için uygulamanızın bilgilerinin ne kadarının gösterileceğini belirleyin. Daha küçük boyutlarda önemli bilgilere odaklanın. Daha sonra widget yatay ve dikey olarak büyüdükçe bağlamsal bilgiler ekleyin.
Düzende dikkat edilmesi gereken noktalar
Widget'larınızı, geliştirme için kullandığınız bir cihazın yerleşim ızgarasının boyutlarına göre yerleştirmek cazip gelebilir. Bu, başlangıçta 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ı"na göre planlamak en güvenilir sonuçları almanızı sağlar.
- Hücrelerin sayısı, boyutu ve aralığı cihazdan cihaza büyük ölçüde değişebilir. Bu nedenle, widget'ınızın esnek olması ve beklenenden daha fazla veya daha az yer kaplayabildiğini belirtmeniz ç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. Buna aşağıdakiler dahildir:
- Widget boyutu kısıtlamalarını belirtme. Örneğin, widget'ınızın hedef boyutunu (ızgara hücrelerinde) ve mümkün olan maksimum boyutu belirtebilirsiniz.
- Widget'ın boyutuna göre değişen duyarlı düzenler sunma.
- Tam boyutlu düzenler sağlayarak başlatıcının telefonlar için dikey ve yatay modda boyut seçenekleriyle veya katlanabilir cihazlar için dört boyutta yanıt vermesini sağlayın.
- Widget'ınız için uygun boyutları belirlemek üzere güncellenmiş yönergeleri ve yeni API'leri kullanın.
Kullanıcılara göre widget yapılandırması
Bazen widget'ın faydalı olabilmesi için kullanıcının widget'ı 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 bir resim ataması gereken statik bir fotoğraf widget'ını düşünün. Android widget'ları, kullanıcı widget'ı ana ekrana bıraktığı anda yapılandırma seçeneklerini gösterir.
Widget tasarımı kontrol listesi
- Widget'ınızda bir bakışta göz atılabilen küçük bilgilere odaklanın. Uygulamanızdaki bilgileri genişletin.
- 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.
- Widget düzeninizin uzayabilmesi ve daraltılabilmesini sağlayarak düzeninizi yön ve cihazdan bağımsız hale getirin.
- Widget'ınızın ek yapılandırma gerektirip gerektirmediğini değerlendirin.