कम्यूनिटी

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

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

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

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

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

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

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

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

  • नए AppWidgetManager एपीआई की मदद से, विजेट में लोगों की दिलचस्पी की जानकारी देने वाली मेट्रिक के लिए क्वेरी की जा सकती है.
  • ADB के ज़रिए इंस्टॉल किए गए डीबग किए जा सकने वाले ऐप्लिकेशन को अब 16 केबी पेज साइज़ के साथ काम करने की सुविधा के लिए, पहले से ही चेतावनियां मिलेंगी.
  • ProfilingManager में, सिस्टम की ओर से शुरू की गई नई प्रोफ़ाइलिंग ट्रिगर और बैकग्राउंड ट्रेस कैप्चर करने के लिए requestRunningSystemTrace की सुविधा जोड़ी गई है.
  • डेवलपर के विकल्पों में मौजूद “ज़्यादा जानकारी वाली प्रिंट लॉगिंग” टॉगल, Android Print Framework के लिए डीबग करने से जुड़ी अतिरिक्त जानकारी देता है.
  • डेस्कटॉप और मल्टी-डिसप्ले के लिए, बेहतर टेस्टिंग की सुविधा चालू की गई है. इसके लिए, नॉन-डिफ़ॉल्ट डिसप्ले और सार्वजनिक AccessibilityWindowInfo.refresh पर स्क्रीनशॉट के लिए नए UiAutomation एपीआई उपलब्ध कराए गए हैं.
  • नई androidx.core:core-backported-fixes लाइब्रेरी के लिए, एपीआई की सुविधा जोड़ी गई है.
  • अब Linux टर्मिनल में GUI ऐप्लिकेशन इस्तेमाल किए जा सकते हैं
  • 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 के ज़रिए डिवाइस के लिए ज़्यादा ऐक्सेस.
  • बेहतर कोड नेविगेशन और कंपोज़ की नई झलक दिखाने वाले पिकर की मदद से, बेहतर कंपोज़ की झलक
  • तेज़ी से बिल्ड करने के लिए, K2 Kotlin कंपाइलर डिफ़ॉल्ट रूप से चालू होता है
  • 16 केबी वाले पेज साइज़ के लिए टूलिंग. इसमें लिंट की चेतावनियां, विश्लेषण, और एक एम्युलेटर शामिल है. इससे आपको आने वाले 16 केबी वाले पेज साइज़ के डिवाइसों के लिए तैयारी करने में मदद मिलेगी.

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

device-streaming.webp

Android डिवाइस पर स्ट्रीमिंग की सुविधा, Firebase की मदद से काम करती है. इसने Android पार्टनर डिवाइस लैब के लिए, स्टेबल सपोर्ट लॉन्च किया है. इससे, ओईएम पार्टनर के होस्ट किए गए फ़िज़िकल 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 बिल्डिंग ब्लॉक अब स्टेबल हो गए हैं. साथ ही, बेहतर प्रीफ़ेचिंग के साथ Lazy List और Grid की परफ़ॉर्मेंस को बेहतर बनाने के लिए, LazyLayoutCacheWindow को तय किया जा सकता है. Scrollable2D की मदद से, दो डाइमेंशन में स्क्रोल किया जा सकता है. इसमें फ़्लिंग और नेस्टेड स्क्रोलिंग शामिल है. साथ ही, स्क्रोल और नेस्टेड स्क्रोल इंटरऑप के लिए, Views के साथ कई सुधार किए गए हैं. ऑप्ट-इन एपीआई (Composer.setDiagnosticStackTraceEnabled) स्टैक ट्रेस में, क्रैश की जगह के बारे में ज़्यादा जानकारी देता है. इसे सिर्फ़ डीबग बिल्ड के लिए इस्तेमाल करने का सुझाव दिया जाता है. नए @RememberInComposition और @FrequentlyChangingValue एनोटेशन, इनसे जुड़े Lint चेक के साथ, नई runtime-annotation लाइब्रेरी में उपलब्ध हैं. 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 में XR ऑडियो की अपने-आप राउटिंग, और MediaCodec के साथ ज़्यादा बेहतर तरीके से इंटरैक्ट करने की सुविधा. MediaSession मॉड्यूल अब सूचनाओं को डिफ़ॉल्ट रूप से ज़्यादा समय तक दिखाता है. साथ ही, मीडिया सेशन डेमो ऐप्लिकेशन में वीडियो फिर से शुरू करने की सुविधा दिखाई गई है. Kotlin और Compose की मदद से बनाया गया नया कंपोज़िशन डेमो ऐप्लिकेशन, एक साथ कई ऐसेट का इस्तेमाल करके वीडियो एडिट करने की बेहतर सुविधा दिखाता है.

लेख 📚

#WeArePlay: जानें उन लोगों के बारे में जो एक बेहतर दुनिया बनाने के लिए कोडिंग कर रहे हैं

weareplay.webp

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

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

hdr.webp

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

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

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

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

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

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

वीडियो 📹

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

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

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

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

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

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

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

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

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

WearOS में मटीरियल 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 के लिए, एसडीके का डिफ़ॉल्ट वर्शन एपीआई 21 से एपीआई 23 पर सेट कर दिया गया है. इसका मतलब है कि अगर इन Compose लाइब्रेरी के नए ऐल्फ़ा वर्शन का इस्तेमाल किया जा रहा है, तो आपके ऐप्लिकेशन के लिए Android 6.0 (Marshmallow) या उसके बाद के वर्शन की ज़रूरत होगी.

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

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

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

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

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

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

Android Developers Backstage

Android Developers Backstage का नया एपिसोड आ गया है.

लिखते समय अपने-आप जानकारी भरने की सुविधा

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

 

अब… 👋

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

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

इसे लिखा है:

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