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

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

3 मिनट में पढ़ें
Francesco Romano
डेवलपर रिलेशंस इंजीनियर, Android

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

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

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

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

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

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

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

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

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

  • बड़ी: 1200dp से 1600dp के बीच की चौड़ाई के लिए
  • बहुत बड़ी: 1600dp या इससे ज़्यादा की चौड़ाई के लिए
window_size_classes_width.png

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

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

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

ADB_5350_asset.gif

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

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

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

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

इसे लिखा है:

पढ़ना जारी रखें