प्रॉडक्ट से जुड़ी खबरें

Jetpack WindowManager 1.5 का स्टेबल वर्शन उपलब्ध है

पढ़ने में 2 मिनट लगेंगे
फ़्रांसेस्को रोमानो की प्रोफ़ाइल देखें
Francesco Romano डेवलपर रिलेशंस इंजीनियर, Android

हमें यह बताते हुए खुशी हो रही है कि Jetpack WindowManager 1.5.0 अब स्टेबल हो गया है!

इस रिलीज़ में, WindowManager की अडैप्टेबिलिटी को और बेहतर बनाया गया है. इससे, अडैप्टिव यूज़र इंटरफ़ेस (यूआई) बनाना और भी आसान हो गया है. ये यूआई, सभी स्क्रीन साइज़ पर शानदार दिखते हैं. Android ईकोसिस्टम लगातार बढ़ रहा है. इसलिए, उपयोगकर्ता पहले से ज़्यादा तरह के डिवाइसों पर ऐप्लिकेशन का इस्तेमाल कर रहे हैं. जैसे, फ़ोन, फ़ोल्ड किए जा सकने वाले डिवाइस, टैबलेट, कनेक्टेड डिसप्ले, Chromebook, और यहां तक कि पार्क किए गए मोड में कार के डिसप्ले पर भी ऐप्लिकेशन का इस्तेमाल किया जा रहा है.

WindowManager 1.5, अलग-अलग तरह के डिवाइसों के लिए बेहतर टूल उपलब्ध कराने पर फ़ोकस करता है.

WindowManager 1.5 में नया क्या है

इस स्टेबल रिलीज़ में, बहुत बड़ी स्क्रीन के लिए नए ब्रेकपॉइंट जोड़े गए हैं. साथ ही, गतिविधि एम्बेड करने वाले एपीआई को बेहतर बनाया गया है. इसके अलावा, विंडो मेट्रिक का हिसाब लगाने के लिए ज़्यादा विकल्प दिए गए हैं.

विंडो के साइज़ की नई क्लास: बड़ी और बहुत बड़ी

वर्शन 1.5 में सबसे बड़ा अपडेट, विंडो के साइज़ की चौड़ाई की दो नई क्लास जोड़ी गई हैं: बड़ी और बहुत बड़ी.

विंडो साइज़ क्लास, व्यूपोर्ट ब्रेकपॉइंट का हमारा आधिकारिक और राय पर आधारित सेट है. इससे आपको अडैप्टिव लेआउट डिज़ाइन और डेवलप करने में मदद मिलती है. Android 1.5 के साथ, हम इस गाइड को उन स्क्रीन के लिए भी उपलब्ध करा रहे हैं जो सामान्य टैबलेट से बड़ी हैं.

चौड़ाई के नए ब्रेकपॉइंट यहां दिए गए हैं:

  • बड़ा: 1200 डीपी और 1600 डीपी के बीच की चौड़ाई के लिए
  • बहुत बड़ा: चौड़ाई ≥1600dp के लिए
window_size_classes_width.png

डिसप्ले की चौड़ाई के आधार पर, विंडो के साइज़ की अलग-अलग क्लास. 

ये क्यों ज़रूरी हैं?

Android 16 QPR1 Beta 2 से, Android में कनेक्ट किए गए डिसप्ले की सुविधा उपलब्ध है. इससे लोग अपने डिवाइस को किसी बाहरी डिसप्ले से कनेक्ट कर सकते हैं. साथ ही, उसे बड़ी स्क्रीन वाले डेस्कटॉप की तरह इस्तेमाल कर सकते हैं.

ADB_5350_asset.gif

फ़ोन को किसी बाहरी डिसप्ले से कनेक्ट किया गया है. बाहरी डिसप्ले पर डेस्कटॉप सेशन चल रहा है. 

यह नई सुविधा उपलब्ध होने के बाद, बड़े डिसप्ले को शामिल करने के बारे में राय देना ज़रूरी है. 

इन बड़ी स्क्रीन पर, टैबलेट के बड़े किए गए लेआउट को सिर्फ़ बड़ा करने से, उपयोगकर्ताओं को हमेशा बेहतर अनुभव नहीं मिलता. उदाहरण के लिए, कोई ईमेल क्लाइंट, बड़ी की गई विंडो के साइज़ क्लास में दो पैन (मेलबॉक्स और मैसेज) आसानी से दिखा सकता है. हालांकि, बहुत बड़े डेस्कटॉप मॉनिटर पर, ईमेल क्लाइंट तीन या चार पैन को आसानी से दिखा सकता है. जैसे, एक साथ मेलबॉक्स, मैसेज की सूची, मैसेज का पूरा कॉन्टेंट, और कैलेंडर/टास्क पैनल.

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 Adaptive library की मदद से, अडैप्टिव यूज़र इंटरफ़ेस (यूआई) बनाए जा सकते हैं. ये यूआई, विंडो के मौजूदा कॉन्फ़िगरेशन के हिसाब से अपने-आप अडजस्ट हो जाते हैं. जैसे, विंडो साइज़ क्लास या डिवाइस के पोस्चर. 

अच्छी बात यह है कि लाइब्रेरी, नए ब्रेकपॉइंट के साथ पहले से ही अप-टू-डेट है! वर्शन 1.2 (अब रिलीज़ कैंडिडेट स्टेज में है) से, डिफ़ॉल्ट पैन स्कैफ़ोल्ड डायरेक्टिव फ़ंक्शन, बड़ी और बहुत बड़ी विंडो की चौड़ाई वाली साइज़ क्लास के साथ काम करते हैं.

आपको सिर्फ़ ऑप्ट-इन करना होगा. इसके लिए, अपनी Gradle बिल्ड फ़ाइल में यह एलान करें कि आपको नए ब्रेकपॉइंट इस्तेमाल करने हैं:

currentWindowAdaptiveInfo(

    supportLargeAndXLargeWidth = true)

अन्य सुधार

  • गतिविधि एम्बेड करना — अपने-आप सेव होना और वापस लाना: WindowManager अब गतिविधि एम्बेड करने की सुविधा के तहत स्प्लिट की गई आपकी गतिविधियों की स्थिति को अपने-आप सेव कर सकता है और वापस ला सकता है. इससे प्रोसेस को फिर से शुरू करने पर भी, उपयोगकर्ता के लेआउट को बनाए रखने में मदद मिलती है. इससे उपयोगकर्ता को ज़्यादा स्थिर और एक जैसा अनुभव मिलता है. अब डेवलपर को स्थिति को मैन्युअल तरीके से सेव और रीस्टोर करने की ज़रूरत नहीं है. वे EmbeddingConfiguration#isAutoSaveEmbeddingState प्रॉपर्टी सेट करके, अपने-आप सेव होने की सुविधा के लिए ऑप्ट-इन कर सकते हैं.
  • बढ़ी हुई WindowMetrics: अब WindowMetrics को सिर्फ़ Activity कॉन्टेक्स्ट से नहीं, बल्कि Application कॉन्टेक्स्ट से भी कैलकुलेट किया जा सकता है. इससे आपको अपने ऐप्लिकेशन के अलग-अलग हिस्सों से विंडो की जानकारी ऐक्सेस करने में ज़्यादा आसानी होती है.

शुरू करने का तरीका

अपने 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 के अलग-अलग साइज़, डाइमेंशन या कॉन्फ़िगरेशन वाले डिवाइसों पर काम करते हैं. बदलावों और बग ठीक करने से जुड़ी पूरी सूची देखने के लिए, आधिकारिक रिलीज़ नोट देखें.

कोडिंग करते रहें!

लेखक:
पढ़ना जारी रखें