आधुनिक Android विजेट विकास

Nov 26 2020

यह 2020 है, और विजेट एक बार फिर से सभी गुस्से में हैं IOS ने आखिरकार उनके लिए समर्थन जोड़ा। हालाँकि, 2012 से Android विजेट अपडेट नहीं हुए हैं।

से एंड्रॉयड डॉक्स :

एक RemoteViews ऑब्जेक्ट (और, परिणामस्वरूप, एक ऐप विजेट) निम्नलिखित लेआउट कक्षाओं का समर्थन कर सकता है:

  • फ़्रेमलैटआउट
  • लीनियर लयआउट
  • अंतरंग परिस्थिति
  • जाली का नक्शा

जिसका अर्थ है, कोई कांस्ट्रेन्डलैट, कोई रेक्स्लेर व्यू, कोई AndroidX। मैं ListView के काले दिनों में वापस नहीं जाना चाहता।

क्या Android डेवलपर साइट पर प्रलेखन वास्तव में आज भी Android विजेट विकसित करने के लिए सबसे अच्छा अभ्यास है? क्या किसी को AndroidX दुनिया में विजेट बनाने का अनुभव है? क्या अनुभव को कम दर्दनाक बनाने के लिए किसी प्रकार की 3 पार्टी एपीआई है?

जवाब

2 CommonsWare Nov 26 2020 at 14:26

हालाँकि, 2012 से Android विजेट अपडेट नहीं हुए हैं।

सही बात।

मैं ListView के काले दिनों में वापस नहीं जाना चाहता।

उम्म्म्म… सॉरी?

क्या Android डेवलपर साइट पर प्रलेखन वास्तव में आज भी Android विजेट विकसित करने के लिए सबसे अच्छा अभ्यास है?

ऐप विजेट "सर्वोत्तम प्रथाओं" के बारे में कम और प्रलेखित और समर्थित प्रोटोकॉल के बारे में अधिक हैं। ध्यान रखें कि ऐप विजेट वास्तव में एक अंतर-प्रक्रिया संचार (IPC) प्रोटोकॉल है जो अंत में UI में परिणाम के लिए होता है। आपका ऐप यूआई का प्रतिपादन नहीं कर रहा है - होम स्क्रीन या अन्य ऐप विजेट होस्ट, आमतौर पर AppWidgetHostऔर संबंधित एपीआई की सहायता से होता है ।

जिसका अर्थ है, कोई कांस्ट्रेन्डलैट, कोई रेक्स्लेर व्यू, कोई AndroidX।

सही बात। आखिरकार, आप नहीं जानते कि होम स्क्रीन में उन चीजों में से किसी का उपयोग है या वे किस संस्करण पर हैं, आदि।

क्या अनुभव को कम दर्दनाक बनाने के लिए किसी प्रकार की 3 पार्टी एपीआई है?

यह वास्तव में संभव नहीं है। ऐप विजेट्स के साथ आपका ऐप बहुत कम है। "भारी उठाने" फ्रेमवर्क में है और कुछ हद तक, होम स्क्रीन। तृतीय-पक्ष API वास्तव में उसे बदल नहीं सकता है।

मैं उम्मीद कर रहा था कि Google स्टीयरिंग लॉन्चर डेवलपर्स को "ऐप विजेट" के वैकल्पिक रूप में स्लाइस का समर्थन शुरू करने के लिए शुरू करेगा । ऐसा अभी तक नहीं हुआ है, क्योंकि लगता है कि गूगल स्लाइस के बारे में भूल गया है। शायद, भविष्य में, Google एंड्रॉइड 11 केSurfaceControlViewHost आधार पर कुछ पेश करेगा , जो सभी प्रकार की संभावनाओं के द्वार खोलता है। दोनों ही मामलों में, इन चीजों का समर्थन करने के लिए बदलाव करने के लिए इसे लॉन्च करने के लिए लॉन्चर डेवलपर्स की आवश्यकता हो सकती है, जो अपनाने को धीमा कर देगा।

विजेट और कंटेनरों की सीमित सूची में एक UI से आगे की पेशकश करने के लिए आप जो निकटतम काम कर सकते हैं, वह यह है कि अपने सामान को रेंडर करने के लिए Bitmapऔर ImageViewऐप विजेट में दिखाया जाए । यह मुश्किल हो जाता है, जैसा कि आप ऐप विजेट के सटीक आकार को नहीं जानते हैं। और, ज़ाहिर है, कि इनपुट विकल्प नहीं बदलता है।