कम्यूनिटी

Now in Android #121

पढ़ने में लगने वाला समय: 9 मिनट
डैनियल गैल्पिन की प्रोफ़ाइल देखें
Daniel Galpin डेवलपर एडवोकेट

Now in Android में आपका स्वागत है. यह Android डेवलपमेंट की दुनिया में नई और अहम चीज़ों के बारे में जानकारी देने वाली आपकी गाइड है.

Android 16 QPR2 बीटा 1, Android Studio Narwhal के फ़ीचर ड्रॉप, Jetpack Compose 1.9, Media 3 1.8, शेप मॉर्फ़िंग, और Compose में ऑटोमैटिक भरने की सुविधा वगैरह के बारे में जानने के लिए आगे पढ़ें.

किसी वीडियो की खास जानकारी देखी जा सकती है:

 

 

हमारा एक पॉडकास्ट भी है.

हालांकि, इस पोस्ट में सबसे ज़्यादा जानकारी दी गई है. इसलिए, इसे पढ़ें!

पेश है Android 16 QPR2 Beta 1 ✨

Android 16 QPR2 का पहला बीटा वर्शन अब उपलब्ध है. यह Android का पहला ऐसा रिलीज़ है जिसमें Android SDK का माइनर वर्शन शामिल है. SDK टूल के माइनर वर्शन में नए एपीआई शामिल हो सकते हैं. ये एपीआई, प्लैटफ़ॉर्म की सुविधाओं को बेहतर बनाते हैं. हालांकि, इनमें targetSdkVersion गेटेड बिहेवियर में बदलाव नहीं किया जा सकता. इससे आपको अपने ऐप्लिकेशन की जांच करने की ज़रूरत कम पड़ती है.

sdk-release-graph.webp

VERSION_CODES_FULL एन्यूमरेशन के लिए SDK_INT_FULL की जांच करके, नए एपीआई को कॉल किया जा सकता है:

if (Build.VERSION.SDK_INT_FULL >= Build.VERSION_CODES_FULL.BAKLAVA_1) {
  // Call new APIs from the Android 16 QPR2 release
}

VERSION_CODES_FULL का इस्तेमाल, uses-sdk मेनिफ़ेस्ट एट्रिब्यूट में नहीं किया जा सकता.

यहां QPR2 Beta 1 के कुछ मुख्य अपडेट दिए गए हैं.

यूज़र इंटरफ़ेस (यूआई), सिस्टम का अनुभव, और सुलभता:

  • ऐप्लिकेशन पर गहरे रंग वाली थीम लागू करने की सुविधा, हल्के रंग वाली थीम के ऐप्लिकेशन को गहरे रंग वाली थीम में बदल देती है. इससे उन लोगों को मदद मिलती है जिन्हें गहरे रंग वाली थीम पसंद है.
  • अगर आपके ऐप्लिकेशन में मोनोक्रोम लेयर नहीं है, तो सिस्टम अपने-आप थीम वाले ऐप्लिकेशन का आइकॉन जनरेट कर सकता है.
  • इंटरैक्टिव चूज़र सेशन, शेयरशीट के खुले होने पर आपके ऐप्लिकेशन के यूज़र इंटरफ़ेस (यूआई) को चालू रखते हैं. इसके लिए, ChooserManager और ChooserSession का इस्तेमाल किया जाता है.
  • नया डेटा ट्रांसफ़र एपीआई, Android और iOS के बीच डेटा को ज़्यादा भरोसेमंद और सुरक्षित तरीके से माइग्रेट करने की सुविधा देता है. इसके लिए, आपको अपने ऐप्लिकेशन के डेटा निकालने की सुविधा नियमों की एक्सएमएल फ़ाइल और BackupAgent को अपडेट करना होगा.
  • android.graphics.pdf पैकेज को अब PdfRenderer.Page के ज़रिए PDF दस्तावेज़ों में एनोटेट करने और उनमें बदलाव करने के लिए भी इस्तेमाल किया जा सकता है.
  • ViewConfiguration वैल्यू को अब अलग-अलग वर्चुअल डिवाइसों के हिसाब से बनाया गया है. एक से ज़्यादा डिसप्ले वाले मामलों के लिए, ViewConfiguration.get(context) पर माइग्रेट करें.
  • View.performHapticFeedback(HapticFeedbackRequest) के साथ VibrationAttributes की वैल्यू तय करके, हैप्टिक फ़ीडबैक को ज़्यादा बेहतर तरीके से कंट्रोल किया जा सकता है
  • क्विक सेटिंग टाइल को अब AndroidManifest.xml फ़ाइल में पहले से तय की गई कैटगरी में असाइन किया जा सकता है.

मीडिया और ऑडियो:

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

कनेक्टिविटी:

  • कंपैनियन डिवाइस मैनेजर (सीडीएम) में किए गए सुधारों की मदद से, डिवाइस के लिए कस्टम आइकॉन उपलब्ध कराए जा सकते हैं. साथ ही, EVENT_ASSOCIATION_REMOVED कॉलबैक को सुना जा सकता है और DeviceId का इस्तेमाल करके, क्रॉस-ऐप्लिकेशन की पुष्टि की सुविधा चालू की जा सकती है.
  • ब्लूटूथ के अपडेट में, BluetoothLeScanner (ScanSettings.SCAN_TYPE_PASSIVE) के लिए पैसिव स्कैनिंग की सुविधा, बॉन्ड लॉस की वजहें (BluetoothDevice.EXTRA_BOND_LOSS_REASON), और सेवा के यूयूआईडी (BluetoothDevice.EXTRA_UUID_LE) को सीधे तौर पर वापस पाने की सुविधा शामिल है.
  • वाई-फ़ाई आरटीटी रेंजिंग के अपडेट (RttStationRangingParams), स्टेशन के हिसाब से रेंजिंग की सुविधा देते हैं.
  • आईएमएस पी-असोसिएटेड-यूआरआई हेडर से फ़ोन नंबर पार्स करने और उनकी पुष्टि करने के लिए, एक नया PhoneNumberManager उपलब्ध है.
  • MediaRouter नेटवर्क की निजता में किए गए सुधारों की मदद से, ब्लूटूथ और यूडब्ल्यूबी जैसे नए तरीकों से कास्ट किया जा सकता है. आपको सिस्टम के आउटपुट स्विचर का इस्तेमाल करना चाहिए या कस्टम इन-ऐप्लिकेशन पिकर के लिए, NEARBY_DEVICES अनुमतियों का अनुरोध करना चाहिए.

निजता और सुरक्षा:

  • सिस्टम-लेवल पर सुरक्षा की एक नई स्थिति, 'डिवाइस को सुरक्षित तरीके से लॉक करें' सुविधा, डिवाइसों को लॉक कर देती है. इन्हें अनलॉक करने के लिए, पुष्टि करने के मुख्य तरीके की ज़रूरत होती है.
  • फ़ोन चोरी होने पर डेटा को सुरक्षित रखने की सेटिंग में, इस्तेमाल करने वाले लोगों के लिए एक टॉगल जोड़ा गया है. इससे “पुष्टि न होने पर स्क्रीन लॉक होने की सुविधा” को चालू/बंद किया जा सकता है.

डेवलपर प्रॉडक्टिविटी:

  • नए AppWidgetManager एपीआई की मदद से, विजेट यूज़र ऐक्टिविटी मेट्रिक के लिए क्वेरी की जा सकती है.
  • एडीबी की मदद से इंस्टॉल किए गए, डीबग करने लायक ऐप्लिकेशन के लिए, अब 16 केबी वाले पेज साइज़ के साथ काम करने की सुविधा के बारे में पहले से चेतावनियां मिलेंगी.
  • ProfilingManager में, सिस्टम से ट्रिगर होने वाली प्रोफ़ाइलिंग के नए ट्रिगर के लिए सहायता जोड़ी गई है. साथ ही, बैकग्राउंड ट्रेस कैप्चर करने के लिए requestRunningSystemTrace को जोड़ा गया है.
  • 'डेवलपर के लिए सेटिंग और टूल' में मौजूद “Verbose print logging” टॉगल, Android Print Framework के लिए डीबग करने की अतिरिक्त जानकारी देता है.
  • नॉन-डिफ़ॉल्ट डिसप्ले और सार्वजनिक AccessibilityWindowInfo.refresh पर स्क्रीनशॉट लेने के लिए, नए UiAutomation एपीआई की मदद से, डेस्कटॉप और मल्टी-डिसप्ले पर बेहतर तरीके से टेस्टिंग की जा सकती है.
  • नई androidx.core:core-backported-fixes लाइब्रेरी के लिए, एपीआई की सुविधा जोड़ी गई है.
  • अब Linux टर्मिनल में जीयूआई ऐप्लिकेशन इस्तेमाल किए जा सकते हैं
  • WindowInspector.addGlobalWindowViewsListener, रीयल-टाइम में रूट व्यू में बदलाव की सूचनाएं देता है.

ओवर-द-एयर बीटा अपडेट पाने के लिए, Pixel डिवाइस को रजिस्टर किया जा सकता है. इसके अलावा, Android Studio में Android Emulator के साथ 64-बिट सिस्टम इमेज का इस्तेमाल किया जा सकता है. प्लैटफ़ॉर्म स्टेबिलिटी को अक्टूबर 2025 तक पूरा करने का लक्ष्य है.

Android Studio Narwhal Feature Drop का स्टेबल वर्शन उपलब्ध है — एजेंट मोड का इस्तेमाल शुरू करें 🐳

narwhal.webp

Android Studio Narwhal Feature Drop अब स्टेबल वर्शन में उपलब्ध है. इसमें नई सुविधाएं और सुधार शामिल हैं:

  • Android Studio में Gemini: एजेंट मोड, कोडिंग से जुड़े अलग-अलग लेवल वाले टास्क के लिए उपलब्ध है
  • प्रॉम्प्ट लाइब्रेरी के नियम, Gemini के एआई आउटपुट को आपके प्रोजेक्ट की ज़रूरतों के हिसाब से बनाते हैं.
  • Gemini की मदद से यूज़र इंटरफ़ेस (यूआई) को बेहतर बनाना, Compose यूज़र इंटरफ़ेस (यूआई) को बेहतर बनाने के लिए, नैचुरल लैंग्वेज वाले यूज़र इंटरफ़ेस (यूआई) का इस्तेमाल करता है.
  • इमर्सिव डेवलपमेंट के लिए सहायता. इसके लिए, एम्बेड किया गया XR Android Emulator, नया XR टेंप्लेट, और XR के लिए एम्बेड किया गया लेआउट इंस्पेक्टर उपलब्ध है
  • Android डिवाइस स्ट्रीमिंग में, Android Partner Device Labs की मदद से ज़्यादा डिवाइसों का ऐक्सेस.
  • Compose झलक की बेहतर सुविधा. इसमें कोड नेविगेशन को बेहतर बनाया गया है और Compose झलक पिकर की नई सुविधा जोड़ी गई है
  • तेज़ी से बिल्ड करने के लिए, K2 Kotlin कंपाइलर डिफ़ॉल्ट रूप से चालू होता है
  • 16 केबी पेज साइज़ टूलिंग. इसमें लिंट चेतावनियां, विश्लेषण, और एम्युलेटर शामिल हैं. इनकी मदद से, 16 केबी पेज साइज़ वाले डिवाइसों के लिए तैयारी की जा सकती है.

Firebase की मदद से, Android डिवाइस स्ट्रीमिंग की सुविधा

device-streaming.webp

Firebase की मदद से काम करने वाली Android डिवाइस स्ट्रीमिंग की सुविधा, अब Android Partner Device Labs के लिए उपलब्ध है. इसकी मदद से, OEM पार्टनर के होस्ट किए गए Android पार्टनर डिवाइसों से कहीं से भी कनेक्ट किया जा सकता है. इनमें Samsung, Xiaomi, OPPO, OnePlus, और vivo शामिल हैं.

Android Studio के लिए हर महीने रिलीज़ होने वाले अपडेट की मदद से, डेवलपमेंट को तेज़ करना — पहले के मुकाबले दोगुने अपडेट रिलीज़ करना

accelarating-releases.webp

Android Studio, हर महीने स्टेबल रिलीज़ के शेड्यूल पर स्विच कर रहा है. इससे आपको नई सुविधाएं और गंभीर गड़बड़ियां ठीक करने से जुड़े अपडेट तेज़ी से मिलेंगे. Android Studio IDE को हर महीने अपडेट किया जाएगा. हालांकि, IntelliJ प्लैटफ़ॉर्म के नए वर्शन कुछ महीनों के अंतराल पर लॉन्च किए जाएंगे. इस दौरान, स्टेबल रिलीज़ के लिए नई सुविधाओं वाले सॉफ़्टवेयर अपडेट उपलब्ध कराए जाएंगे. Android Emulator और Android Gradle प्लग इन, हर दो महीने में अलग-अलग अपडेट होते रहेंगे. रिलीज़ के इस तेज़ शेड्यूल को, टेस्टिंग इन्फ़्रास्ट्रक्चर में लंबे समय तक किए गए निवेश से मदद मिलती है.

Jetpack Compose की अगस्त 2025 वाली रिलीज़ में नया क्या है 🚀

jetpack-compose.webp

Jetpack Compose की अगस्त 2025 वाली रिलीज़ (वर्शन 1.9) अब स्टेबल है. इस रिलीज़ में, बॉक्स-शैडो इफ़ेक्ट रेंडर करने के लिए, Modifier.dropShadow और Modifier.innerShadow को शामिल किया गया है. नए onVisibilityChanged और onFirstVisible मॉडिफ़ायर की मदद से, यूज़र इंटरफ़ेस (यूआई) के अपडेट या इंप्रेशन लॉगिंग के लिए, एलिमेंट की विज़िबिलिटी को ट्रैक किया जा सकता है. टेक्स्ट को ट्रांसफ़ॉर्म करने के लिए, TextFieldBuffer.addStyle का इस्तेमाल करके, OutputTransformation में रिच स्टाइलिंग लागू की जा सकती है.

LazyLayout के बिल्डिंग ब्लॉक अब स्टेबल हैं. साथ ही, बेहतर प्रीफ़ेचिंग की मदद से, लेज़ी लिस्ट और ग्रिड की परफ़ॉर्मेंस को बेहतर बनाने के लिए, LazyLayoutCacheWindow को तय किया जा सकता है. Scrollable2D की मदद से, दो डाइमेंशन में स्क्रोल किया जा सकता है. इसमें फ़्लिंग और नेस्टेड स्क्रोलिंग शामिल है. साथ ही, व्यू के साथ स्क्रोल और नेस्टेड स्क्रोल इंटरऑप के लिए कई सुधार किए गए हैं. ऑप्ट-इन एपीआई (Composer.setDiagnosticStackTraceEnabled), स्टैक ट्रेस में क्रैश की जगह की ज़्यादा जानकारी देता है. हमारा सुझाव है कि इसका इस्तेमाल सिर्फ़ डीबग के लिए बिल्ड में करें. नए @RememberInComposition और @FrequentlyChangingValue एनोटेशन, उनसे जुड़ी Lint जांच के साथ, नई रनटाइम-एनोटेशन लाइब्रेरी में उपलब्ध हैं. Modifier.appendTextContextMenuComponents और Modifier.filterTextContextMenuComponents का इस्तेमाल करके, कॉन्टेक्स्ट मेन्यू को पसंद के मुताबिक बनाया जा सकता है. अब Android Gradle प्लगिन (AGP) / Lint का वर्शन 8.8.2 या इसके बाद का वर्शन ज़रूरी है.

Media3 1.8.0 — नया क्या है? 🚀

media3.webp

Media3 1.8.0 अब उपलब्ध है. इसमें कई नई सुविधाएं और सुधार शामिल हैं. ExoPlayer में, वीडियो को आगे-पीछे करने का मोड जोड़ा गया है. इससे उपयोगकर्ता, वीडियो को बार-बार आगे-पीछे कर सकते हैं. इसे ExoPlayer.setScrubbingModeEnabled की मदद से चालू किया जा सकता है. HlsInterstitialsAdsLoader अब सर्वर-गाइडेड विज्ञापन इंसर्शन के लिए लाइव स्ट्रीम की सुविधा उपलब्ध है.

MetadataRetriever को अपडेट किया गया है, ताकि आप मीडिया आइटम को चलाए बिना उसकी अवधि की जानकारी हासिल कर सकें. Transformer के लिए, इस रिलीज़ में experimentalSetMp4EditListTrimEnabled के साथ MP4 एडिट सूचियों का इस्तेमाल करके, ट्रिम करने की प्रोसेस को तेज़ किया गया है. साथ ही, CodecDbLite के ज़रिए चिपसेट के हिसाब से एन्कोडर को ऑप्टिमाइज़ किया गया है. इसे DefaultEncoderFactory.Builder पर setEnableCodecDbLite को कॉल करके चालू किया जा सकता है.

अन्य अपडेट में, PreCacheHelper के साथ Downloader में कुछ हद तक डाउनलोड करने की सुविधा, ExoPlayer में एक्सआर ऑडियो की अपने-आप रूटिंग, और MediaCodec के साथ ज़्यादा बेहतर इंटरैक्शन शामिल हैं. MediaSession मॉड्यूल अब डिफ़ॉल्ट रूप से, सूचनाओं को ज़्यादा समय तक दिखाता है. साथ ही, मीडिया सेशन का डेमो ऐप्लिकेशन, जहां छोड़ा था वहीं से प्लेबैक की सुविधा दिखाता है. Kotlin और Compose की मदद से बनाया गया नया Composition डेमो ऐप्लिकेशन, कई ऐसेट वाले वीडियो को एडिट करने की बेहतर सुविधा दिखाता है.

लेख 📚

#WeArePlay: Meet the people coding a more sustainable world

weareplay.webp

#WeArePlay पहल के तहत, पर्यावरण से जुड़ी चुनौतियों को हल करने वाले Android ऐप्लिकेशन और गेम को हाइलाइट किया जाता है. BoRa — Iguaçu National Park गेम को मायला, फ़्लाविया, आंद्रेया, और आरियाने ने डेवलप किया है. यह गेम, पार्क घूमने के दौरान प्रकृति के बारे में सीखने के लिए, गेमिफ़ाइड और आसानी से ऐक्सेस किए जा सकने वाले इंटरैक्टिव अनुभव उपलब्ध कराता है. लुई और जस्टिन का ऐप्लिकेशन, CyberTracker, अशिक्षित स्थानीय ट्रैकर्स को जैव-विविधता का डेटा रिकॉर्ड करने की सुविधा देता है. इसके लिए, आइकॉन पर आधारित इंटरफ़ेस का इस्तेमाल किया जाता है. इससे संरक्षण के प्रयासों में मदद मिलती है. आखिर में, Earth5R की बात करते हैं. इसकी सह-स्थापना भारती और सौरभ ने की है. यह संगठन, पर्यावरण से जुड़ी शिक्षा देता है. साथ ही, उपयोगकर्ताओं को इंटर्नशिप और प्रोजेक्ट से जोड़ता है, ताकि वे ग्रीन इकॉनमी के लिए ज़रूरी कौशल सीख सकें.

एचडीआर क्या है? 🌟

hdr.webp

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

रंग को समझने के लिए, तीन कॉम्पोनेंट होते हैं:

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

एचडीआर के बारे में आम तौर पर होने वाली गलतफ़हमियां:

  • चमकीले रंग: एचडीआर से पहले, Display P3 और Adobe RGB जैसे वाइडर कलर गैमट उपलब्ध थे. ज़्यादातर डिसप्ले अब भी P3 पर क्लिप होते हैं, भले ही कॉन्टेंट BT.2020 का हो.
  • ज़्यादा कंट्रास्ट/बेहतर ब्लैक डिटेल: एचडीआर, एक ही डिसप्ले पर एसडीआर की तुलना में ज़्यादा गहरे काले रंग नहीं दिखाता है. ओएलईडी डिसप्ले, दोनों के लिए इनफ़िनिट कंट्रास्ट उपलब्ध कराते हैं. पीक्यू, गहरे रंग वाले हिस्सों को ज़्यादा बिट असाइन करता है. हालांकि, यह एक यूनिवर्सल एचडीआर सुविधा नहीं है.
  • ज़्यादा बिट डेप्थ: कुछ एचडीआर वीडियो प्रोफ़ाइलें (जैसे, HDR10), 10- या 12-बिट स्ट्रीम का इस्तेमाल करती हैं.हालांकि, यह सिर्फ़ उन प्रोफ़ाइलों के लिए होता है, न कि एचडीआर के लिए. ज़्यादा बिट डेप्थ, अन्य इमेज फ़ॉर्मैट में भी आम हैं.

एचडीआर का मुख्य फ़ायदा यह है कि इससे ज़्यादा चमक मिलती है. इस “एचडीआर हेडरूम” को एसडीआर के हिसाब से फ़्लोटिंग रीजन के तौर पर तय किया जाता है. पारंपरिक एचडीआर वीडियो अक्सर फ़िक्स्ड हेडरूम को एन्कोड करते हैं. वहीं, आधुनिक डिसप्ले डाइनैमिक हेडरूम का इस्तेमाल करते हैं. इससे क्वालिटी में अंतर आ सकता है. अल्ट्रा एचडीआर और गेनमैप जैसी टेक्नोलॉजी, बिट का बेहतर इस्तेमाल करके इमेज को बेहतर क्वालिटी में दिखाती हैं. Android का यूज़र इंटरफ़ेस (यूआई) टूलकिट, extendedRangeBrightness API का इस्तेमाल करके एचडीआर अनुभव देता है. भले ही, RGBA_8888 का इस्तेमाल किया जा रहा हो.

वीडियो 📹

शेप मॉर्फ़िंग के साथ ऐडवांस शेयर किए गए एलिमेंट | Jetpack Compose से जुड़ी सलाह

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

शेप मॉर्फ़िंग एक नई और अहम सुविधा है. इसे Material 3 की AndroidX ग्राफ़िक्स शेप लाइब्रेरी का इस्तेमाल करके बनाया गया है. इसके लिए, आपको एक Morph ऑब्जेक्ट बनाना होगा. इसमें आपको शुरुआत और आखिर के लिए शेप तय करने होंगे. साथ ही, animateFloat (AnimatedVisibilityScope से) का इस्तेमाल करके, इसकी प्रोग्रेस को कंट्रोल करना होगा. इसके बाद, कस्टम OverlayClip का इस्तेमाल करके, इसे क्लिप के तौर पर लागू करना होगा. रिवील इफ़ेक्ट के लिए, skipToLookaheadSize और skipToLookaheadPosition का इस्तेमाल करें. ये सभी ऐडवांस ऐनिमेशन, पीछे जाने पर झलक दिखाने वाले हाथ के जेस्चर के साथ भी काम करते हैं.

Android Studio में मल्टीमॉडल Gemini: एआई की मदद से यूज़र इंटरफ़ेस (यूआई) डेवलपमेंट

Android Studio में Gemini एआई, यूज़र इंटरफ़ेस (यूआई) डेवलपमेंट में मदद करता है. इसके लिए, वह डिज़ाइन से कोड जनरेट करता है. इसमें इमेज से कोड जनरेट करना भी शामिल है. साथ ही, वह सिंथेटिक डेटा का इस्तेमाल करके Compose की झलक बनाता है और सीधे कमांड देकर मौजूदा यूज़र इंटरफ़ेस (यूआई) को बेहतर बनाता है.

रनटाइम की सुविधा वाले एसडीके का इस्तेमाल करना

Android 14 में SDK टूल का रनटाइम शामिल किया गया है. यह एक नई टेक्नोलॉजी है, जो तीसरे पक्ष के SDK टूल को एक सुरक्षित और अलग प्रोसेस सैंडबॉक्स में अलग करती है. इससे निजता और सुरक्षा को बेहतर बनाने में मदद मिलती है.

डेवलपर के लिए:

  • रनटाइम की सुविधा वाले (आरई) एसडीके टूल, इस अलग प्रोसेस में काम करते हैं.
  • रनटाइम-अवेयर (आरए) एसडीके, आपके ऐप्लिकेशन में मध्यस्थ के तौर पर काम करते हैं.
  • SdkSandboxManagerCompat का इस्तेमाल करके, आरई एसडीके लोड करें.साथ ही, पाबंदियों का ध्यान रखें. जैसे, फ़ोरग्राउंड, सिंगल-लोड.
  • शिम टूलिंग, लो-लेवल इंटर-प्रोसेस कम्यूनिकेशन को आसान बनाता है.
  • SandboxedSdkView और SandboxedUiAdapter का इस्तेमाल करके, आरई एसडीके से यूज़र इंटरफ़ेस (यूआई) रेंडर करें.
  • SdkActivityLauncher का इस्तेमाल करके, SDK टूल के रनटाइम से गतिविधियां लॉन्च करें.

WearOS Material 3 में शेप मॉर्फ़िंग | Jetpack Compose से जुड़ी सलाह

Compose के लिए Wear OS Material 3 की मदद से, अब शेप मॉर्फ़िंग को आसान बनाया जा सकता है. डेवलपर, IconButtonDefaults.animatedShapes का इस्तेमाल करके, गोल बटन में ऐनिमेट किए गए आकार में बदलाव आसानी से जोड़ सकते हैं. साथ ही, ButtonGroup कॉम्पोनेंट और Modifier.animateWidth() का इस्तेमाल करके, चौड़ाई में बदलाव करने वाले बटन ग्रुप बना सकते हैं. इसके अलावा, वर्टिकल तौर पर स्क्रोल करने वाली सूचियां (TransformingLazyColumn) बनाई जा सकती हैं. इनमें आइटम, स्क्रीन के किनारों के पास पहुंचने पर, TransformationSpec का इस्तेमाल करके स्केल और मॉर्फ़ होते हैं.

AndroidX की रिलीज़ 🚀

यहां AndroidX में हुए बदलावों की खास जानकारी दी गई है. इसमें Android ऐप्लिकेशन डेवलपर के लिए सबसे ज़रूरी बदलावों को प्राथमिकता दी गई है:

Compose लाइब्रेरी पर पड़ने वाला असर:

  • डिफ़ॉल्ट minSdk एपीआई 23 पर अपग्रेड किया गया: androidx.compose animation, foundation, material, runtime, और ui के लिए, SDK टूल के डिफ़ॉल्ट वर्शन को एपीआई 21 से एपीआई 23 पर अपग्रेड कर दिया गया है. इसका मतलब है कि अगर इन Compose लाइब्रेरी के नए ऐल्फ़ा वर्शन का इस्तेमाल किया जा रहा है, तो आपके ऐप्लिकेशन के लिए Android 6.0 (Marshmallow) या इसके बाद का वर्शन ज़रूरी होगा.

Compose का इस्तेमाल करने वाले डेवलपर के लिए मुख्य बदलाव:

  • नया retain API (Compose रनटाइम): यह rememberSaveable जैसा ही एक retain API है. हालांकि, यह उन वैल्यू के लिए है जो सीरियलाइज़ किए बिना कंपोज़िशन की हैरारकी से बाहर निकल जाती हैं. इसकी लाइफ़स्पैन, सेव की गई वैल्यू से कम होती है. साथ ही, यह ViewModel की तरह काम करता है. इससे कंपोज़ेबल के लिए स्टेट को मैनेज करने का एक नया तरीका मिलता है. ये कंपोज़ेबल, कंपोज़िशन में शामिल हो सकते हैं और उससे बाहर भी जा सकते हैं.
  • शेयर किए गए एलिमेंट के ट्रांज़िशन को बेहतर बनाने की सुविधा (Compose ऐनिमेशन और यूज़र इंटरफ़ेस (यूआई)): शेयर किए गए एलिमेंट को डाइनैमिक तौर पर चालू/बंद करने, मौजूदा ट्रांज़िशन को ध्यान में रखने, और शेयर किए गए एलिमेंट को हटाने पर वैकल्पिक टारगेट बाउंड सेट करने के लिए नए एपीआई. लेआउट को ऐंकर करने के लिए, एक नया Modifier.skipToLookaheadPosition भी उपलब्ध है.
  • पेजर की बेहतर प्रीफ़ेचिंग (Compose Foundation): पेजर की प्रीफ़ेचिंग की रणनीति में, अब एक आइटम के बजाय “कैश विंडो” (एक व्यूपोर्ट साइज़) का इस्तेमाल किया जाता है. साथ ही, शुरुआती प्रीफ़ेचिंग की सुविधा डिफ़ॉल्ट रूप से चालू होती है. आइटम को ज़्यादा समय तक सेव रखा जाता है, ताकि आसानी से स्क्रोल किया जा सके.
  • माउस/टचपैड के लिए फ़ोकस हैंडलिंग को बेहतर बनाया गया है (Compose Foundation और यूआई): ComposeViews अब फ़ोकस किए गए नोड के बाहर पॉइंटर डाउन इवेंट (माउस या टचपैड से) होने पर, फ़ोकस को अपने-आप हटा देगा. इससे ऑप्ट आउट किया जा सकता है.
  • पसंद के मुताबिक बनाए जा सकने वाले फ़ोकस रेक्टैंगल (Compose Foundation): FocusProperties अब आपको डिफ़ॉल्ट बाउंडिंग बॉक्स के बजाय, पसंद के मुताबिक फ़ोकस एरिया तय करने की सुविधा मिलती है. इससे स्क्रोल किए जा सकने वाले कंटेनर में, फ़ोकस ट्रैवर्सल और “नज़र में रखें” लॉजिक को बेहतर बनाया जा सकता है.
  • LifecycleOwner Composable (Lifecycle): एक नया कंपोज़ेबल, सीधे यूज़र इंटरफ़ेस (यूआई) ट्री में स्कोप किए गए LifecycleOwner इंस्टेंस बनाने की सुविधा देता है. यह खास तौर पर, कॉम्पोनेंट की लाइफ़साइकल को अलग से मैनेज करने और नेविगेशन जैसी लाइब्रेरी के लिए मददगार है.
  • SavedStateHandle (Lifecycle और SavedState) में, बिना किसी वैल्यू वाले टाइप के लिए सपोर्ट: SavedStateHandle और SavedStateRegistryOwner में नेटिव सपोर्ट की मदद से, बिना किसी वैल्यू वाली प्रॉपर्टी को सेव करना और वापस लाना आसान हो गया है.
  • नया LineHeightStyle.Mode.Tight (Compose Foundation और यूज़र इंटरफ़ेस (यूआई)): नया टाइट मोड, लाइन की ऊंचाई को कम करने में मदद करता है. भले ही, इससे लंबे ग्लिफ़ कट जाएं. इससे टेक्स्ट लेआउट को ज़्यादा सटीक तरीके से कंट्रोल किया जा सकता है.
  • शब्द चुनने के लिए दो बार टैप करना (Compose Foundation): SelectionContainer और BasicTextField में, शब्द चुनने के लिए दो बार टैप करने की सुविधा जोड़ी गई है.
  • WindowInsets के काम करने के तरीके में बदलाव (Compose UI और Foundation):
    ◦ डिसप्ले कटआउट का पाथ पाने के लिए, नया WindowInsets.cutoutPath एपीआई.
    ◦ isWindowInsetsDefaultPassThroughEnabled फ़्लैग को हटा दिया गया है. अब WindowInsets डिफ़ॉल्ट रूप से नहीं इस्तेमाल किया जाएगा, ताकि चाइल्ड व्यू को ये मिल सकें.
  • AndroidView requestRectangleOnScreen ठीक की गई गड़बड़ी (Compose Foundation): AndroidViews से किए गए अनुरोध (जैसे, EditText को स्क्रीन पर बनाए रखने की कोशिश करना) अब Compose में सही तरीके से लागू होते हैं.
  • 2D माउस व्हील स्क्रोलिंग (Compose Foundation और यूज़र इंटरफ़ेस) को बेहतर बनाया गया है: 2D माउस व्हील स्क्रोल इवेंट के लिए बेहतर सहायता. इसमें नए टेस्ट एपीआई और व्यवहार को कंट्रोल करने के लिए एक फ़्लैग शामिल है.

नई लाइब्रेरी और यूटिलिटी:

  • androidx.core:core-backported-fixes (नई लाइब्रेरी): इस नई लाइब्रेरी की मदद से, डेवलपर यह देख सकते हैं कि किसी डिवाइस पर गड़बड़ी ठीक करने से जुड़े ज़रूरी अपडेट (जैसे, प्लैटफ़ॉर्म-लेवल की समस्याएं, जैसे कि कैमरे से जुड़ी गड़बड़ियां) लागू किए गए हैं या नहीं. इससे, उपयोगकर्ताओं को अलग-अलग अनुभव दिए जा सकते हैं. यह इस बात पर निर्भर करता है कि किसी गड़बड़ी को ठीक किया गया है या नहीं.

अन्य अहम बदलाव:

  • गेम से जुड़ी गतिविधि और इनपुट: GameActivity के लिए, 16 केबी वाले पेज साइज़ और माउस के साथ काम करने की सुविधा को डिफ़ॉल्ट रूप से जोड़ा गया है.
  • Material3 टूलटिप पोज़िशनिंग: टूलटिप के लिए ज़्यादा पोज़िशन प्रोवाइडर, जिससे ऐंकर के ऊपर, नीचे, बाईं या दाईं ओर प्लेसमेंट किया जा सकता है.
  • Material3 DatePicker गड़बड़ियां ठीक की गईं: यह पक्का किया गया कि DatePicker, नंबर के फ़ॉर्मैट के लिए अपनी स्थानीय भाषा का इस्तेमाल करे. साथ ही, दाईं से बाईं ओर (आरटीएल) टेक्स्ट दिखाने से जुड़ी समस्याएं ठीक की गईं.
  • TWA display_override के साथ काम करने की सुविधा (ब्राउज़र): display_override TWA मेनिफ़ेस्ट प्रॉपर्टी के साथ काम करने की सुविधा जोड़ी गई है. इससे TWA डिसप्ले पर ज़्यादा कंट्रोल मिलता है.
  • शुरुआती यूआरएल को बाहरी ऐप्लिकेशन (ब्राउज़र) में लॉन्च करना: हमने एक इंटेंट जोड़ा है, ताकि टीडब्ल्यूए के शुरुआती यूआरएल को किसी बाहरी ब्राउज़र में लॉन्च किया जा सके.

Android Developers Backstage

Android Developers Backstage एक और एपिसोड के साथ वापस आ गया है.

Compose में ऑटोमैटिक तरीके से भरने की सुविधा

Jetpack Compose 1.8 में, जानकारी अपने-आप भरने की सुविधा को काफ़ी बेहतर बनाया गया है. इसके लिए, Compose के सिमैंटिक सिस्टम का इस्तेमाल किया गया है. डेवलपर अब सिस्टम-लेवल पर, जानकारी ऑटोमैटिक भरने की सुविधा को आसानी से इंटिग्रेट कर सकते हैं.इसके लिए, उन्हें टेक्स्ट फ़ील्ड को काम के कॉन्टेंट टाइप के सिमैंटिक (जैसे, उपयोगकर्ता नाम, पासवर्ड) के साथ टैग करना होगा. इससे, जानकारी ऑटोमैटिक भरने की सुविधा के ट्री को मैन्युअल तरीके से मैनेज करने की ज़रूरत नहीं पड़ती और परफ़ॉर्मेंस बेहतर होती है.

 

तो फिर… 👋

इस एडिशन में इतना ही. इसमें Android 16 QPR2 बीटा 1, Android Studio Narwhal के फ़ीचर ड्रॉप, Jetpack Compose 1.9, Media 3 1.8, शेप मॉर्फ़िंग, और Compose में जानकारी अपने-आप भरने की सुविधा के बारे में बताया गया है. इसके अलावा, और भी बहुत कुछ है.

Android डेवलपर यूनिवर्स से जुड़े अगले अपडेट के लिए, जल्द ही वापस आकर देखें!

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