हमें यह बताते हुए खुशी हो रही है कि Jetpack WindowManager 1.5.0 का स्टेबल वर्शन अब उपलब्ध है!
इस रिलीज़ में, WindowManager की अडैप्टेबिलिटी की मज़बूत नींव को और बेहतर बनाया गया है. इससे, बेहतर और अडैप्टिव यूज़र इंटरफ़ेस (यूआई) बनाना और भी आसान हो गया है. ये यूज़र इंटरफ़ेस (यूआई) सभी स्क्रीन साइज़ पर शानदार दिखते हैं. Android का ईकोसिस्टम लगातार बढ़ रहा है. ऐसे में, उपयोगकर्ता पहले से कहीं ज़्यादा तरह के डिवाइसों पर ऐप्लिकेशन इस्तेमाल कर रहे हैं. इनमें फ़ोन और फ़ोल्ड किए जा सकने वाले डिवाइसों से लेकर टैबलेट, कनेक्ट किए गए डिसप्ले, Chromebook, और यहां तक कि पार्क किए गए मोड में कार के डिसप्ले भी शामिल हैं.
WindowManager 1.5 में, अलग-अलग तरह के डिवाइसों के लिए बेहतर टूल उपलब्ध कराने पर फ़ोकस किया गया है.
WindowManager 1.5 में नया क्या है
इस स्टेबल रिलीज़ में, बहुत बड़ी स्क्रीन के लिए नए ब्रेकपॉइंट जोड़े गए हैं. साथ ही, ऐक्टिविटी एम्बेडिंग एपीआई को बेहतर बनाया गया है. इसके अलावा, विंडो की मेट्रिक की गणना करने के लिए ज़्यादा फ़्लेक्सिबिलिटी दी गई है.
विंडो के साइज़ की नई क्लास: बड़ी और बहुत बड़ी
1.5 में सबसे बड़ा अपडेट, विंडो की चौड़ाई के साइज़ की दो नई क्लास जोड़ना है: बड़ी और बहुत बड़ी.
विंडो के साइज़ की क्लास, व्यू पोर्ट के ब्रेकपॉइंट का हमारा आधिकारिक और राय पर आधारित सेट है. इससे आपको अडैप्टिव लेआउट डिज़ाइन और डेवलप करने में मदद मिलती है. 1.5 में, हम सामान्य टैबलेट से बड़ी स्क्रीन के लिए भी यह दिशा-निर्देश दे रहे हैं.
यहां चौड़ाई के नए ब्रेकपॉइंट दिए गए हैं:
- बड़ी: 1200dp और 1600dp के बीच की चौड़ाई के लिए
- बहुत बड़ी: ≥1600dp की चौड़ाई के लिए
डिसप्ले की चौड़ाई के हिसाब से, विंडो के साइज़ की अलग-अलग क्लास.
ये क्लास क्यों ज़रूरी हैं?
Android 16 QPR1 बीटा 2 से, Android कनेक्ट किए गए डिसप्ले की सुविधा देता है. इससे उपयोगकर्ता अपने डिवाइस को किसी बाहरी डिसप्ले से कनेक्ट कर सकते हैं और उसे बड़ी स्क्रीन वाले डेस्कटॉप जैसे टूल में बदल सकते हैं.
फ़ोन को किसी बाहरी डिसप्ले से कनेक्ट किया गया है. बाहरी डिसप्ले पर डेस्कटॉप सेशन चल रहा है.
यह नई सुविधा उपलब्ध होने के बाद, बड़ी स्क्रीन के लिए राय पर आधारित दिशा-निर्देश देना ज़रूरी है.
बहुत बड़ी स्क्रीन पर, टैबलेट के Expanded लेआउट को सिर्फ़ स्केल अप करना हमेशा सबसे अच्छा उपयोगकर्ता अनुभव नहीं होता है. उदाहरण के लिए, ईमेल क्लाइंट Expanded विंडो साइज़ क्लास में दो पैन (मेलबॉक्स और मैसेज) आसानी से दिखा सकता है. हालांकि, बहुत बड़े डेस्कटॉप मॉनिटर पर, ईमेल क्लाइंट तीन या चार पैन आसानी से दिखा सकता है. जैसे, मेलबॉक्स, मैसेज की सूची, मैसेज का पूरा कॉन्टेंट, और कैलेंडर/टास्क पैनल. ये सभी पैन एक साथ दिखाए जा सकते हैं.
WindowManager 1.5, बहुत बड़े डिसप्ले साइज़ के लिए आधिकारिक ब्रेकपॉइंट उपलब्ध कराता है. इससे आपको ऐसे लेआउट पेश करने का साफ़ तौर पर संकेत मिलता है जिन्हें खास तौर पर, प्रॉडक्टिव और जानकारी से भरपूर डेस्कटॉप अनुभव के लिए डिज़ाइन किया गया है.
विंडो के साइज़ की क्लास की गणना, computeWindowSizeClass() का इस्तेमाल करके की जा सकती है. यह androidx.window.core.layout लाइब्रेरी का एक्सटेंशन फ़ंक्शन है, जो Set<WindowSizeClass> टाइप को बढ़ाता है.
अपने प्रोजेक्ट में, विंडो के साइज़ की नई क्लास शामिल करने के लिए, WindowSizeClass.BREAKPOINTS_V1 के बजाय, WindowSizeClass.BREAKPOINTS_V2 सेट से फ़ंक्शन को कॉल करें:
val currentWindowMetrics = WindowMetricsCalculator.getOrCreate() .computeCurrentWindowMetrics(LocalContext.current) val sizeClass = WindowSizeClass.BREAKPOINTS_V2 .computeWindowSizeClass(currentWindowMetrics)
इसके बाद, सही लेआउट लागू करें. हालांकि, ऐसा तब करें, जब आपको पक्का हो कि आपके ऐप्लिकेशन के पास कम से कम इतनी जगह है:
if(sizeClass.isWidthAtLeastBreakpoint(
WindowSizeClass.WIDTH_DP_LARGE_LOWER_BOUND)){
...
// window is at least 1200 dp wide
}अडैप्टिव लाइब्रेरी
Compose Material 3 की अडैप्टिव लाइब्रेरी, अडैप्टिव यूज़र इंटरफ़ेस (यूआई) बनाने में आपकी मदद करती है. ये यूज़र इंटरफ़ेस (यूआई), विंडो के साइज़ की क्लास या डिवाइस के पोस्चर जैसे मौजूदा विंडो कॉन्फ़िगरेशन के हिसाब से अपने-आप अडजस्ट हो जाते हैं.
अच्छी बात यह है कि लाइब्रेरी, नए ब्रेकपॉइंट के साथ पहले से ही अप-टू-डेट है! वर्शन 1.2 (अब रिलीज़ कैंडिडेट स्टेज में) से, डिफ़ॉल्ट पैन स्कैफ़ोल्ड डायरेक्टिव फ़ंक्शन, विंडो की चौड़ाई के साइज़ की बड़ी और बहुत बड़ी क्लास के साथ काम करते हैं.
आपको सिर्फ़ यह चुनना होगा कि आपको नए ब्रेकपॉइंट इस्तेमाल करने हैं या नहीं. इसके लिए, Gradle बिल्ड फ़ाइल में यह एलान करें:
currentWindowAdaptiveInfo( supportLargeAndXLargeWidth = true)
अन्य सुधार
- ऐक्टिविटी एम्बेडिंग — अपने-आप सेव और वापस लाना: WindowManager, अब ऐक्टिविटी एम्बेडिंग स्प्लिट की स्थिति को अपने-आप सेव और वापस ला सकता है. इससे, प्रोसेस को फिर से बनाने पर भी उपयोगकर्ता का लेआउट बना रहता है. इससे, ज़्यादा स्थिर और एक जैसा अनुभव मिलता है. डेवलपर को अब स्थिति को मैन्युअल तरीके से सेव और वापस लाने की ज़रूरत नहीं है. वे EmbeddingConfiguration#isAutoSaveEmbeddingState प्रॉपर्टी सेट करके, अपने-आप सेव और वापस लाने की सुविधा को आसानी से चालू कर सकते हैं.
- Expanded WindowMetrics: अब WindowMetrics की गणना, सिर्फ़ ऐक्टिविटी कॉन्टेक्स्ट से नहीं, बल्कि ऐप्लिकेशन कॉन्टेक्स्ट से भी की जा सकती है. इससे, आपके ऐप्लिकेशन के अलग-अलग हिस्सों से विंडो की जानकारी ऐक्सेस करने के लिए ज़्यादा फ़्लेक्सिबिलिटी मिलती है.
शुरू करने का तरीका
अपने Android प्रोजेक्ट में, विंडो के साइज़ की नई बड़ी और बहुत बड़ी क्लास और 1.5 की अन्य सुविधाओं का इस्तेमाल शुरू करने के लिए, build.gradle.kts में अपने ऐप्लिकेशन की डिपेंडेंसी को, स्टेबल वर्शन के सबसे नए वर्शन पर अपडेट करें:
dependencies {
implementation("androidx.window:window:1.5.0")
// or, if you're using the WindowManager testing library:
testImplementation("androidx.window:window-testing:1.5.0")
}WindowManager 1.5, Android के सभी फ़ॉर्म फ़ैक्टर पर चलने वाले पूरी तरह से अडैप्टिव ऐप्लिकेशन बनाने की दिशा में एक और कदम है. बदलावों और बग फ़िक्स की पूरी सूची के लिए, आधिकारिक रिलीज़ नोट देखें.
कोडिंग करते रहें!
-
प्रॉडक्ट से जुड़ी खबरेंहमें यह बताते हुए खुशी हो रही है कि Android पर मोबाइल और डेस्कटॉप कंप्यूटिंग को एक साथ लाने की दिशा में एक अहम पड़ाव हासिल कर लिया गया है. Android 16 QPR3 रिलीज़ के साथ, कनेक्ट किए गए डिसप्ले की सुविधा अब सभी के लिए उपलब्ध है!
Francesco Romano • पढ़ने में 7 मिनट लगेंगे -
प्रॉडक्ट से जुड़ी खबरेंGoogle Play पर, हमारा लक्ष्य उपयोगकर्ताओं को सबसे अच्छा अनुभव देना है. साथ ही, यह पक्का करना है कि डेवलपर के पास सफल होने के लिए ज़रूरी टूल और अडैप्टेबिलिटी हो.
Paul Feng • पढ़ने में 3 मिनट लगेंगे -
प्रॉडक्ट से जुड़ी खबरेंपिछले साल, हमने Android डेवलपर की पहचान की पुष्टि करने की सुविधा शुरू की थी. इससे ईकोसिस्टम की सुरक्षा को मज़बूत किया जा सकता है और नुकसान पहुंचाने वाले ऐप्लिकेशन रिलीज़ करने के लिए, बुरे मकसद से काम करने वाले लोगों या ग्रुप को अपनी पहचान छिपाने से रोका जा सकता है.
Matthew Forsythe • पढ़ने में 2 मिनट लगेंगे
Android डेवलपमेंट से जुड़ी अहम जानकारी, हर हफ़्ते अपने ईमेल के इनबॉक्स में पाएं.