Widget'lar, ana ekranı özelleştirmenin temel unsurlarından biridir. Bunları, kullanıcının ana ekranından erişilebilen, uygulamanın en önemli verilerinin ve işlevlerinin "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 uyarlamak için yeniden boyutlandırabilir.
Bu dokümanda, oluşturabileceğiniz farklı widget türleri ve uygulayabileceğiniz tasarım ilkeleri açıklanmaktadır. Remove View API'lerini ve XML düzenlerini kullanarak uygulama widget'ı oluşturmak için Basit bir widget oluşturma bölümüne bakın. Kotlin ve Compose stili API'lerini kullanarak widget oluşturmak için Jetpack Glance'a göz atı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ı
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 izleme widget'ları verilebilir. Bilgi widget'larına dokunulduğunda, genellikle ilişkili uygulama başlatılır ve widget bilgilerinin ayrıntılı bir görünümü açılır.
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 atabilirsiniz.
- Koleksiyonun bir öğesini, ilişkilendirilmiş uygulamada ayrıntılar 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'ının asıl amacı, sık kullanılan işlevleri göstererek kullanıcının uygulamayı açmak zorunda kalmadan bunları ana ekrandan tetikleyebilmesidir. Bunları bir uygulamanın uzaktan kumandaları olarak düşünebilirsiniz. Kontrol widget'ına örnek olarak, kullanıcıların evdeki ışıkları açıp kapatan bir ev kontrolü widget'ı verilebilir.
Bir kontrol widget'ıyla etkileşimde bulunduğunuzda, uygulamada ilişkili bir ayrıntı görünümü açılabilir. Bu durum, kontrol widget'ının işlevinin arama widget'ı gibi bir veri çıkış yapıp yapmadığına bağlıdır.
Karma widget'lar
Bazı widget'lar, önceki bölümlerde yer alan türlerden birini (bilgi, toplama veya kontrol) temsil etse de çoğu widget, farklı tür öğeleri birleştiren karmalardır. Örneğin, müzik çalar widget'ı esasen bir kontrol widget'ıdır, ancak aynı zamanda kullanıcıya o anda çalan parçayı da (örneğin, bir bilgi widget'ı) gösterir.
Widget'ınızı planlarken temel türlerinden birini temel alın ve gerektiğinde diğer türlerin öğelerini 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 yerine getirecek şekilde yapılandırarak kullanıcıların Android ve Android Auto gibi Asistan yüzeylerinde hızlı yanıtlar almalarını ve etkileşimli uygulama deneyimleri almaları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şılsa da widget'ınızı tasarlamadan önce anlamanız gereken belirli sınırlamalar vardır.
Hareketler
Widget'lar ana ekranda bulunduğundan, orada bulunan gezinme özelliğiyle 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 gezinmek amacıyla zaten ana ekranda alınır.
Widget'lar için yalnızca dokunma ve dikey kaydırma hareketleri kullanılabilir.
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'lar için 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 bölümlerine göz atın.
Tasarım yönergeleri
Widget içeriği
Widget'lar, uygulamanızda bulunan yeni ve ilgi çekici içeriğin reklamını yaparak kullanıcıları uygulamanıza çekmenin harika bir yoludur.
Tıpkı bir gazetenin ön sayfasındaki fragmanlar gibi, widget'lar da uygulamanın bilgilerini birleştirip yoğunlaştırır ve uygulama içinde daha zengin ayrıntılarla bağlantı sağlar. Widget'ın bilgi "atıştırmalık", uygulamanın ise "yemek" olduğunu söyleyebilirsiniz. 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
Sadece bilgi içeriğine ek olarak, widget'ınızın uygulamanızın sık kullanılan alanlarına yönlendiren gezinme bağlantıları sağlamasına dikkat edin. 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 iyi adaylar:
Üretken işlevler: Bunlar, kullanıcının uygulama için yeni içerik oluşturmasını sağlayan işlevlerdir (ör. yeni doküman veya mesaj oluşturma).
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 en üst düzeyine erişim sağlamak, daha fazla gezinme esnekliği sağlar ve kullanıcıların ana ekrandan uygulamaya gitmek için kullanabilecekleri özel bir uygulama kısayolunun yerini alabilir. Bu işlev için uygulama simgenizi kullandığınızda, gösterdiğiniz veriler belirsizse widget'ınıza net bir kimlik de sunabilirsiniz.
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 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ı dahilinde ayarlamasına olanak tanır. Widget'ınızın serbest bir şekilde yeniden boyutlandırılıp boyutlandırılmayacağına veya yatay ya da dikey boyut değişiklikleriyle sınırlı olup olmadığı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 vermek önemli avantajlar sağlar:
- Her widget'ta ne kadar bilgi görmek istediklerine dair ince ayar yapabilirler.
- Ana 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. 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. 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çeriğin belirli bir boyuta sığması gerektiği için daha fazla uygulamalı 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 uygulama bilgilerinizin 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 cihazın yerleşim ızgarasının boyutlarına göre yerleştirmek cazip bir seçenek olabilir. Bu, yararlı bir başlangıç değerlendirmesi olabilir, ancak aşağıdaki noktaları unutmayın:
- Widget yeniden boyutlandırma stratejinizi değişken ızgara boyutları yerine "boyut grupları" genelinde planlamanız en güvenilir sonuçları elde etmenizi 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 alana sığabilmesi ç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 sunabilirsiniz. Bunlardan bazıları:
- Widget boyutu kısıtlamalarını belirtme. Örneğin, widget'ınız için hedef boyutu (ızgara hücreleri) ve olası maksimum boyutu belirtebilirsiniz.
- Widget'ın boyutuna göre değişen duyarlı düzenler sağlar.
- Başlatıcının dikey ve yatay mod için, telefonlar için boyut seçenekleriyle veya katlanabilir cihazlar için dört boyutla yanıt vermesine olanak tanıyan tam boyutlu düzenler sağlama.
- Widget'ınız için uygun boyutları belirlemek amacıyla güncellenen kılavuzu ve yeni API'leri kullanma.
Kullanıcılar tarafından widget yapılandırması
Bazen, widget'ın yararlı olabilmesi için kullanıcının widget'ı ayarlaması gerekir. Gelen kutusunun görüntülenebilmesi için kullanıcının posta klasörünü seçmesi gereken bir e-posta widget'ını veya gösterilecek galeriden bir resim ataması gereken statik bir fotoğraf widget'ını düşünün. Android widget'ları, kullanıcının widget'ı ana ekrana bırakmasından hemen sonra yapılandırma seçeneklerini görüntüler.
Widget tasarımı kontrol listesi
- Widget'ınızda bir bakışta göz atılabilecek 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ızın içeriğinin farklı boyutlara nasıl uyarlanacağını planlayın.
- Widget düzeninizi yönden ve cihazdan bağımsız hale getirmek için düzenin genişletilip küçülebildiğinden emin olun.
- Widget'ınız için ek yapılandırma gerekip gerekmediğini değerlendirin.