हमें यह बताते हुए खुशी हो रही है कि Jetpack WindowManager 1.5.0 का स्टेबल वर्शन अब उपलब्ध है!
इस रिलीज़ में, WindowManager की अडैप्टेबिलिटी की मज़बूत नींव को और बेहतर बनाया गया है. इससे, बेहतर और अडैप्टिव यूज़र इंटरफ़ेस (यूआई) बनाना और भी आसान हो गया है. ये यूज़र इंटरफ़ेस (यूआई), सभी स्क्रीन साइज़ पर शानदार दिखते हैं. Android का ईकोसिस्टम लगातार बढ़ रहा है. ऐसे में, उपयोगकर्ता पहले से कहीं ज़्यादा तरह के डिवाइसों पर ऐप्लिकेशन इस्तेमाल कर रहे हैं. इनमें फ़ोन और फ़ोल्ड किए जा सकने वाले डिवाइसों से लेकर टैबलेट, कनेक्ट किए गए डिसप्ले, Chromebook, और यहां तक कि पार्क किए गए मोड में कार के डिसप्ले भी शामिल हैं.
WindowManager 1.5 में, डिवाइसों के इस अलग-अलग तरह के एनवायरमेंट के लिए बेहतर टूल उपलब्ध कराने पर फ़ोकस किया गया है.
WindowManager 1.5 में नया क्या है
इस स्टेबल रिलीज़ में, बहुत बड़ी स्क्रीन के लिए नए ब्रेकपॉइंट जोड़े गए हैं. साथ ही, ऐक्टिविटी एम्बेडिंग एपीआई को बेहतर बनाया गया है. इसके अलावा, विंडो की मेट्रिक की गणना करने के लिए ज़्यादा फ़्लेक्सिबिलिटी दी गई है.
विंडो के साइज़ की नई क्लास: बड़ी और बहुत बड़ी
1.5 में सबसे बड़ा अपडेट, विंडो की चौड़ाई के साइज़ की दो नई क्लास का जुड़ना है: बड़ी और बहुत बड़ी.
विंडो के साइज़ की क्लास, व्यूपोर्ट के ब्रेकपॉइंट का हमारा आधिकारिक और राय पर आधारित सेट है. इससे, अडैप्टिव लेआउट डिज़ाइन और डेवलप करने में मदद मिलती है. 1.5 में, हम टैबलेट से बड़ी स्क्रीन के लिए भी यह गाइडेंस दे रहे हैं.
यहां चौड़ाई के नए ब्रेकपॉइंट दिए गए हैं:
- बड़ी: 1200dp और 1600dp के बीच की चौड़ाई के लिए
- बहुत बड़ी: ≥1600dp की चौड़ाई के लिए
डिसप्ले की चौड़ाई के आधार पर, विंडो के साइज़ की अलग-अलग क्लास.
ये क्लास क्यों ज़रूरी हैं?
Android 16 QPR1 Beta 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 • पढ़ने में 2 मिनट लगेंगे -
प्रॉडक्ट से जुड़ी खबरेंआज हम आधिकारिक तौर पर, Jetpack Compose 1.0 के रिलीज़ होने के पांच साल पूरे होने का जश्न मना रहे हैं. 28 जुलाई, 2021 को रिलीज़ हुए वर्शन 1.0 से लेकर हमारे सबसे नए वर्शन 1.11 तक, हमने एपीआई में पिछले कुछ सालों में काफ़ी बदलाव देखे हैं. इसलिए, हम इस मौके का जश्न मना रहे हैं.
Rebecca Franks, Nick Butcher, Loryn Hairston • पढ़ने में 5 मिनट लगेंगे
Android डेवलपमेंट से जुड़ी नई जानकारी हर हफ़्ते अपने इनबॉक्स में पाएं.