XR এর জন্য Jetpack Compose

ঘোষণামূলকভাবে স্থানিক UI লেআউট তৈরি করুন যা Android XR এর স্থানিক ক্ষমতার সুবিধা গ্রহণ করে।
সর্বশেষ আপডেট স্থিতিশীল রিলিজ রিলিজ প্রার্থী বিটা রিলিজ আলফা রিলিজ
২২ অক্টোবর, ২০২৫ - - - ১.০.০-আলফা০৮

নির্ভরতা ঘোষণা করা

XR কম্পোজের উপর নির্ভরতা যোগ করতে, আপনার প্রোজেক্টে Google Maven রিপোজিটরি যোগ করতে হবে। আরও তথ্যের জন্য Google এর Maven রিপোজিটরি পড়ুন।

আপনার অ্যাপ বা মডিউলের জন্য build.gradle ফাইলে আপনার প্রয়োজনীয় আর্টিফ্যাক্টের জন্য নির্ভরতা যোগ করুন:

গ্রোভি

dependencies {
    implementation "androidx.xr.compose:compose:1.0.0-alpha08"

    // Use to write unit tests
    testImplementation "androidx.xr.compose:compose-testing:1.0.0-alpha08"
}

কোটলিন

dependencies {
    implementation("androidx.xr.compose:compose:1.0.0-alpha08")

    // Use to write unit tests
    testImplementation("androidx.xr.compose:compose-testing:1.0.0-alpha08")
}

নির্ভরতা সম্পর্কে আরও তথ্যের জন্য, বিল্ড নির্ভরতা যোগ করুন দেখুন।

প্রতিক্রিয়া

আপনার মতামত জেটপ্যাককে আরও উন্নত করতে সাহায্য করবে। আপনি যদি নতুন সমস্যা আবিষ্কার করেন অথবা এই লাইব্রেরি উন্নত করার জন্য কোন ধারণা থাকে তাহলে আমাদের জানান। নতুন একটি তৈরি করার আগে দয়া করে এই লাইব্রেরিতে বিদ্যমান সমস্যাগুলি একবার দেখে নিন। আপনি তারকা বোতামে ক্লিক করে বিদ্যমান সমস্যাটিতে আপনার ভোট যোগ করতে পারেন।

একটি নতুন সমস্যা তৈরি করুন

আরও তথ্যের জন্য ইস্যু ট্র্যাকার ডকুমেন্টেশন দেখুন।

সংস্করণ 1.0

সংস্করণ 1.0.0-alpha08

২২ অক্টোবর, ২০২৫

androidx.xr.compose:compose:1.0.0-alpha08 এবং androidx.xr.compose:compose-testing:1.0.0-alpha08 প্রকাশিত হয়েছে। সংস্করণ 1.0.0-alpha08-এ এই কমিটগুলি রয়েছে।

API পরিবর্তনগুলি

  • ResizePolicy পরিবর্তন করে onResizeStart , onResizeUpdate , এবং onResizeEnd গ্রহণ করা হয়েছে। ( I7e21f )

বাগ ফিক্স

  • সাবস্পেস ব্যবহার করে কোনও অ্যাক্টিভিটি ধ্বংস করার সময় ক্র্যাশ প্রতিরোধ করুন। ( I595a1 )

সংস্করণ 1.0.0-alpha07

২৪ সেপ্টেম্বর, ২০২৫

androidx.xr.compose:compose:1.0.0-alpha07 এবং androidx.xr.compose:compose-testing:1.0.0-alpha07 প্রকাশিত হয়েছে। সংস্করণ 1.0.0-alpha07-এ এই কমিটগুলি রয়েছে।

API পরিবর্তনগুলি

  • SpatialMainPanel জন্য উন্নত KDocs। ( I27b70 , b/444467891 )
  • SpatialRow এবং SpatialColumn মতো 3D লেআউটগুলিতে প্রধান অক্ষ বরাবর শিশুদের সাজানোর জন্য SpatialArrangement চালু করা হয়েছে। এই নতুন API 2D Compose থেকে পরিচিত বিন্যাস বিকল্পগুলি প্রদান করে, যার মধ্যে রয়েছে Start , End , Center , SpaceBetween , SpaceAround এবং SpaceEvenly , LTR এবং RTL লেআউট উভয় দিকনির্দেশের জন্য সম্পূর্ণ সমর্থন সহ। ( I7db38 , b/436289959 )
  • এক্সটেনশন ইন্টারফেসের টাইপ সুরক্ষা এবং ব্যবহারযোগ্যতা উন্নত করার জন্য SubspaceModifier.Node এর জন্য একটি বেস ইন্টারফেস যোগ করা হয়েছে; যেমন
    • CompositionLocalConsumerSubspaceModifierNode
    • LayoutCoordinatesAwareModifierNode
    • SubspaceLayoutModifierNode
    • CoreEntityNode (অভ্যন্তরীণ) ( Iede00 , b/440599394 , b/440599394 )
  • SpatialExternalSurface সীমাবদ্ধ করুন ( I33315 , b/439646773 )
  • SubspaceModifier Subspace composables এর সাথে যুক্ত করুন এবং constraints প্যারামিটারকে SubspaceModifier দিয়ে size-related SubspaceModifiers দিয়ে প্রতিস্থাপন করুন। যদি allowUnboundedSubspace true হয়, তাহলে Subspace গুলিতে unbounded constraints থাকতে পারে। ( Ib06e6 , b/433331675 )
  • DragPolicy() এবং ResizePolicy() এখন SpatialPanel এবং SpatialExternalSurface API ( I397bf , b/437924639 ) এর অংশ হওয়ায় চলমান এবং আকার পরিবর্তনযোগ্য SubspaceModifiers অবমূল্যায়ন করা হচ্ছে।
  • স্থানিক লেআউটে LayoutDirection এর জন্য সমর্থন যোগ করা হয়েছে। SpatialAlignment ব্যবহার করে কম্পোজেবল এখন LTR এবং RTL উভয় প্রসঙ্গেই উপাদানগুলিকে সঠিকভাবে স্থাপন করবে। ( I964bb , b/436300273 )
  • Panel API গুলিতে রিসাইজেবল এবং মুভেবল প্যারামিটার যোগ করুন যাতে নিশ্চিত করা যায় যে এই আচরণগুলি শুধুমাত্র সমর্থিত কন্টেইনারগুলিতে প্রয়োগ করা যেতে পারে। ( Id491c )
  • sizeIn , widthIn , heightIn , depthIn SubspaceModifiers যোগ করা হয়েছে যা আপনাকে প্রস্থ, উচ্চতা এবং গভীরতার জন্য সঠিক সর্বনিম্ন এবং সর্বোচ্চ সীমাবদ্ধতা সেট করতে দেয়। ( I1af09 , b/433330761 )

সংস্করণ 1.0.0-alpha06

১৩ আগস্ট, ২০২৫

androidx.xr.compose:compose:1.0.0-alpha06 এবং androidx.xr.compose:compose-testing:1.0.0-alpha06 প্রকাশিত হয়েছে। সংস্করণ 1.0.0-alpha06-এ এই কমিটগুলি রয়েছে।

বাগ ফিক্স

  • জীবনচক্রের মালিক ধ্বংস হয়ে গেলে ComposeXrOwnerLocals পুনরায় তৈরি করুন। ( 9123ce1 )

সংস্করণ 1.0.0-alpha05

৩০ জুলাই, ২০২৫

androidx.xr.compose:compose:1.0.0-alpha05 এবং androidx.xr.compose:compose-testing:1.0.0-alpha05 প্রকাশিত হয়েছে। সংস্করণ 1.0.0-alpha05-এ এই কমিটগুলি রয়েছে।

নতুন বৈশিষ্ট্য

  • SubspaceComposable অ্যানোটেশন ক্লাস পাবলিক করা হয়েছে। ( Ic2a34 , b/399432430 )
  • ১৮০ এবং ৩৬০ ডিগ্রি গোলকের প্রতিনিধিত্বকারী দুটি নতুন SpatialExternalSurface পৃষ্ঠ কম্পোজেবল। ( I40ef2 , b/391705799 )
  • SubspaceModifier.aspectRatio যোগ করা হয়েছে ( Ide5ab , b/399729509 , b/414762147 )
  • XR-এর জন্য SceneCore এবং Compose-এর মধ্যে আন্তঃকার্যক্ষমতা উন্নত করতে SceneCoreEntity API যোগ করা হয়েছে। ( I50bb3 , b/423020989 )
  • আনস্কেলড এবং GravityAligned বৈশিষ্ট্য ( I07359 ) সমর্থন করার জন্য GravityAlignedsubspace API প্রদান করা হয়েছে।

API পরিবর্তনগুলি

  • SpatialDialog() SpatialDialogProperties.dismissOnBack প্রেস কনফিগারেশন অনুসরণ করবে। ( Ib453b , b/416797132 )
  • মিটারে উপস্থাপনের কারণে minimumPanelDimension Dimensions(0.1f, 0.1f, 0.1f) এর একটি নতুন ডিফল্ট Dimension আকারে আপডেট করুন। ( Ib852a )
  • সাবস্পেস এবং অরবিটারগুলি এখন হোম স্পেসে এবং অ্যাপটি ব্যাকগ্রাউন্ডে থাকাকালীন তাদের অভ্যন্তরীণ অবস্থা বজায় রাখবে। হোম স্পেস মোডে, ফুল স্পেস মোডে স্যুইচ করার প্রস্তুতির জন্য সাবস্পেস এখনও তার দৃশ্য সেট আপ করবে। ( I40317 , b/416037751 )
  • অ্যাপটি ব্যাকগ্রাউন্ডে থাকাকালীন SpatialDialogs এখন তাদের অবস্থা ধরে রাখবে। ( I6aa56 )
  • ApplicationSubspace এখন সিস্টেম থেকে তার প্রস্তাবিত স্কেল এবং অবস্থান উত্তরাধিকারসূত্রে পাবে। ( I4565f , b/418834194 )
  • একটি উন্নত ত্রুটি বার্তা যোগ করা হয়েছে এবং যখন একটি SubspaceComposable একটি নন- SubspaceComposable প্রসঙ্গে ব্যবহৃত হয় তখন ত্রুটিটি আগে ট্রিগার করা হয়েছে। ( Iee2ae , b/416484684 )
  • কম্পোজেবল API-এর অপব্যবহারের সময় প্রায়শই সতর্কতা উপেক্ষা করা হয় বলে ExperimentalSubspaceVolumeApi Warning থেকে Error-এ আপডেট করা হচ্ছে। ( I427aa , b/424864286 )
  • সাবস্পেস এবং ApplicationSubspace এখন recommendedContentBoxInFullSpace দ্বারা সীমাবদ্ধ। পূর্বে এটি SpatialUser এর ফিল্ড অফ ভিউ দ্বারা সীমাবদ্ধ ছিল। ( I41015 , b/423074142 )
  • SpatialElevation আপডেট করুন যাতে ন্যূনতম আকার ব্যবহার করা যায় যাতে আর হার্ড কোডেড আকার ব্যবহার না করা যায় ( I2dbe6 , b/427785338 )
  • একটি কী ভেরিয়েবল পরিবর্তন করা হলে আপডেট করার জন্য আমরা SpatialAcitivityPanel কীভাবে স্ক্রিম করি তা আপডেট করুন। ( I0f64d , b/427999029 )
  • ডিফল্ট সীমাবদ্ধতা মানগুলিকে সমতুল্য হিসাবে সেট করার পক্ষে VolumeConstraints.Unbounded সরান। ( Ie24ec , b/407938414 )
  • SpatialFeatheringSize আর সর্বজনীন নয় ( I1c15b , b/399432430 )
  • কম্পোজের Placeable থেকে আলাদা করার জন্য XR Placeable নাম পরিবর্তন করে SubspacePlaceable হয়েছে। ( I74874 )
  • Orbiter সেটিংস অপসারণ করে shouldRenderInNonSpatial একটি নতুন প্যারামিটার হিসেবে যুক্ত করা হচ্ছে। এছাড়াও, Orbiter() ফাংশনগুলিকে একীভূত করার জন্য EdgeOffset ক্লাসটি সরিয়ে orbiterOffsetType একটি নতুন প্যারামিটার হিসেবে যুক্ত করা হচ্ছে। পাশাপাশি OrbiterEdge নাম পরিবর্তন করে ContentEdge । ( Iebf3d )
  • কম্পোজের Measurable টাইপ থেকে টাইপটিকে আলাদা করার জন্য Measurable এর নাম পরিবর্তন করে SubspaceMeasurable করা হয়েছে। ( I9726c )
  • MeasureResult নাম পরিবর্তন করে SubspaceMeasureResult ( I9f34d ) করুন।
  • setSubspaceContent API সরিয়ে দিয়ে Compose এর setContent Subspace composable এর সাথে ব্যবহার করার সুবিধা দেওয়া হয়েছে। ( Ifff4c , b/421427391 , b/421427391 )
  • MeasurePolicy নাম পরিবর্তন করে SubspaceMeasurePolicy রাখা হয়েছে। ( I37a9b , b/422553904 )
  • SubspaceSemanticsInfo একটি সিল করা ইন্টারফেসে পরিণত করুন কারণ ডিফল্ট সেটিংস ছাড়া আমরা সদস্য যোগ করতে পারব না। ( I372f9 , b/423704068 )
  • আপডেট করা হয়েছে SpatialExternalSurface ডকুমেন্টেশন, ContentSecurityLevel নাম পরিবর্তন করে SurfaceProtection করা হয়েছে ( I3c460 , b/420982808 )
  • অ্যাঙ্করিং করার সুবিধা প্রদানকারী চলমান মডিফায়ারের জন্য ওভারলোডেড কনস্ট্রাক্টর সরবরাহ করা হয়েছে। ( Ic0c70 )
  • টুলটিপের জন্য আরও পজিশন প্রোভাইডার যোগ করুন যাতে ডেভেলপাররা এখন নিয়ন্ত্রণ করতে পারেন যে টুলটিপটি অ্যাঙ্করের উপরে, নীচে, বামে বা ডানে স্থাপন করা হয়েছে কিনা। এমন একটি API যোগ করুন যা ক্যারেটের জন্য একটি শেপ গ্রহণ করে, যাতে আরও কাস্টম শেপ প্রদান করা যায়। ( Ie513c , b/374766087 , b/418854637 )
  • PublishedApi ( Ifee05 ) হিসেবে CoreEntity সরানো হয়েছে

বাগ ফিক্স

  • রেন্ডার করার সময় SpatialDialog ফ্ল্যাশ করার সমস্যাটি সমাধান করা হয়েছে। ( Ife73c , b/401619909 )
  • SpatialDialog অ্যাক্টিভিটি প্যানেল স্ক্রিম করতে না পারার সমস্যাটি সমাধান করে। ( I8ca6c , b/367442109 )
  • XR ডায়ালগে কিছু কন্টেন্ট দেখাচ্ছে না তা ঠিক করুন ( I17cd5 , b/418062437 )
  • কন্টেন্টের ভেতরে ক্লিক করলে SpatialPopup বন্ধ হয়ে যাওয়ার সমস্যাটি সমাধান করা হয়েছে। ( If262c , b/417245722 )
  • resizable().movable() চেইন করার সময় SpatialPanel নতুন আকারে সঠিকভাবে আকার পরিবর্তন করতে ব্যর্থ হওয়ার সমস্যাটি সমাধান করা হয়েছে। ( I02ee3 , b/422264230 )
  • SpatialComposeVideoPlayer ( Id33bc , b/427168167 ) এ মেনুর সাথে topBar ওভারল্যাপিং স্থির করা হয়েছে।
  • স্থির কোণার ব্যাসার্ধ রেন্ডারিং হচ্ছে না ( I975fe , b/428261830 )

সংস্করণ 1.0.0-alpha04

৭ মে, ২০২৫

androidx.xr.compose:compose:1.0.0-alpha04 এবং androidx.xr.compose:compose-testing:1.0.0-alpha04 প্রকাশিত হয়েছে। সংস্করণ 1.0.0-alpha04-এ এই কমিটগুলি রয়েছে।

নতুন বৈশিষ্ট্য

  • কাস্টম SubspaceModifier প্রকারগুলিকে কম্পোজিশন স্থানীয় মান অ্যাক্সেস করার অনুমতি দেওয়ার জন্য CompositionLocalConsumerSubspaceModifierNode ইন্টারফেস যোগ করা হয়েছে।
  • একটি নতুন SpatialPanel API যোগ করা হয়েছে যা compose AndroidView বাস্তবায়ন শৈলী অনুসরণ করে এবং পূর্ববর্তী ViewBased SpatialPanel অবমূল্যায়ন করে।
  • VolumeConstraints.Unbounded যোগ করা হয়েছে। আনবাউন্ডেড কম্প্যানিয়ন অবজেক্ট যা আনবাউন্ডেড কনস্ট্রেইন্টসকে প্রতিনিধিত্ব করে।
  • একটি স্থানিক অডিও উৎস অনুমোদনের জন্য SubspaceModifier.onPointSourceParams যোগ করা হয়েছে।
  • একটি পাবলিক ApplicationSubspace যোগ করা হয়েছে, যা ঐচ্ছিক VolumeConstraints অফার করে একটি 3D এলাকা নির্ধারণ করে যেখানে অ্যাপটি স্থানিক বিষয়বস্তু রেন্ডার করতে পারে। ডিফল্টরূপে, যদি কোনও সীমাবদ্ধতা নির্দিষ্ট না করা থাকে, তাহলে সাবস্পেসটি SpatialUser এর বর্তমান দৃশ্য ক্ষেত্র দ্বারা প্রস্থ এবং উচ্চতায় আবদ্ধ থাকবে। যদি দৃশ্য ক্ষেত্র নির্ধারণ করা না যায় তবে ব্যবহারকারীরা ব্যবহারের জন্য সীমাবদ্ধতা প্রদান করতে পারেন। অন্যথায়, দৃশ্য ক্ষেত্র প্রস্থ এবং উচ্চতা মানগুলি ব্যবহার করা হয়।
  • SpatialExternalSurface যোগ করা হয়েছে, যা স্টেরিওস্কোপিক কন্টেন্ট রেন্ডার করতে ব্যবহার করা যেতে পারে। SpatialExternalSurface মডিফায়ার (আলফা ব্যতীত) এবং একটি এজ ফেদারিং এফেক্ট সহ কাস্টমাইজযোগ্য।
  • একটি নতুন pointerHoverIcon সাবস্পেস মডিফায়ার যোগ করা হয়েছে যা ব্যবহারকারীদের স্থানিক পয়েন্টারের জন্য আইকন সেট করতে দেয়।

API পরিবর্তনগুলি

  • সমস্ত Jetpack XR প্যাকেজ থেকে RequiresApi(34) সীমাবদ্ধতা অপসারণ করা হয়েছে। এই সীমাবদ্ধতাটি অপ্রয়োজনীয় ছিল কারণ Jetpack XR বর্তমানে শুধুমাত্র API লেভেল 34+ সহ ডিভাইসগুলিতে উপলব্ধ। ( Iae0f8 )
  • Kotlin 2.0 দিয়ে মুক্তিপ্রাপ্ত প্রকল্পগুলির জন্য KGP 2.0.0 বা তার নতুন সংস্করণ ব্যবহার করা প্রয়োজন। ( Idb6b5 )
  • ব্যাক হ্যান্ডলিং এখন স্পেশিয়াল প্যানেলে এমবেডেড অ্যাক্টিভিটি ছাড়াই কাজ করবে। ব্যাক হ্যান্ডলিং কাজ করার জন্য আপনাকে android ম্যানিফেস্টে android:enableOnBackInvokedCallback="true" উল্লেখ করতে হবে।
  • ব্যাকহ্যান্ডলিং এখন স্থানিক ডায়ালগে কাজ করবে। ব্যাকহ্যান্ডলিং কাজ করার জন্য আপনাকে android ম্যানিফেস্টে android:enableOnBackInvokedCallback="true" উল্লেখ করতে হবে।
  • কম্পোজ-ভিত্তিক এবং ভিউ-ভিত্তিক SpatialPanel ব্যবহারকারীরা এখন তাদের বিষয়বস্তুর উপর ভিত্তি করে নিজেদের আকার নির্ধারণ করতে পারবেন।
  • ডেভেলপাররা এখন তাদের নিজস্ব কাস্টম SpatialElevationLevel মান সেট করতে পারবেন এবং পূর্বনির্ধারিত স্তরের মধ্যে সীমাবদ্ধ থাকবেন না।
  • অরবিটারের উচ্চতা স্তর এখন elevation প্যারামিটারের মাধ্যমে কাস্টমাইজ করা যেতে পারে।
  • সাবস্পেস এখন ডিফল্টরূপে SpatialUser এর ভিউ ফিল্ড অফ ভিউ দ্বারা প্রস্থ এবং উচ্চতায় আবদ্ধ করা যেতে পারে। যদি ভিউ ফিল্ড নির্ধারণ করা না যায়, তাহলে ডিফল্ট ফিল্ড অফ ভিউ প্রস্থ এবং উচ্চতা মান ব্যবহার করা হয়।
  • Movable মডিফায়ারে onMoveStart এবং onMoveEnd এ নতুন কলব্যাক যোগ করা হয়েছে। ব্যবহারকারী যখন movable মডিফায়ারের সাথে কম্পোজেবল একটি সাবস্পেস সরানো শুরু করে এবং শেষ করে তখন onMoveStart এবং onMoveEnd কলব্যাকগুলি কল করা হয়।
  • SpatialRow এবং SpatialPanel এর মতো spatial API গুলি থেকে name প্যারামিটারটি সরানো হয়েছে। spatial compose trees ডিবাগ করার জন্য SubspaceModifier.testTag ব্যবহার করুন।
  • SpatialPopup এর একটি অসমর্থিত ওভারলোড সরানো হয়েছে যাতে শুধুমাত্র spatialElevationLevel এবং content আছে। অনুগ্রহ করে onDimissRequest সমর্থন করে এমন ইন্টারফেস ব্যবহার করুন।
  • Movable মডিফায়ার থেকে onPoseChange কলব্যাকটি সরানো হয়েছে। পরিবর্তে onMove ব্যবহার করুন।
  • SubspaceModifiers আর তাদের প্রভাবগুলি প্রয়োগ করবে না যদি সেগুলি বিচ্ছিন্ন থাকে বা বর্তমানে বিচ্ছিন্ন হচ্ছে।
  • বিদ্যমান SpatialRow API কে SpatialRow এবং SpatialCurvedRow এ বিভক্ত করা হয়েছে। যদি আগে SpatialRow এর curveRadius প্যারামিটার ব্যবহার করে থাকেন, তাহলে এখন SpatialCurvedRow ব্যবহার করুন যা একই আচরণ প্রদান করে।
  • একই রকম সাম্প্রতিক সিস্টেম ইমেজে চালানো হলে MainPanel এবং ActivityPanel আর টাইটেল বার থাকে না।
  • আলফা এবং স্কেল মডিফায়ারগুলি এখন স্ট্যাকেবল এবং চূড়ান্ত প্রয়োগকৃত আলফা বা স্কেল মানের জন্য তাদের মানগুলিকে গুণ করবে।
  • মুভেবল মডিফায়ারের onPoseChange কলব্যাকটি মসৃণ পোজ মুভমেন্ট করার জন্য অপ্টিমাইজ করা হয়েছে।
  • চলমান এবং আকার পরিবর্তনযোগ্য মডিফায়ারগুলি এখন মূল থ্রেডে তাদের কলব্যাক সম্পাদন করবে যাতে নিশ্চিত করা যায় যে অবস্থার পরিবর্তনগুলি পুনর্গঠনকে ট্রিগার করবে।
  • SubspaceLayout স্টেট পরিবর্তনগুলি রিলেআউট ট্রিগার করবে তা নিশ্চিত করার জন্য লেআউট এবং পরিমাপের পর্যায়গুলিতে স্টেট পর্যবেক্ষণ যোগ করা হয়েছে।
  • বিদ্যমান মডিফায়ারগুলিকে আরও ভালভাবে পুনঃব্যবহারের জন্য অপ্টিমাইজ করা মডিফায়ার চেইন আপডেট।

বাগ ফিক্স

  • যখন একটি SpatialDialog দেখানো হয় তখন স্ক্রিমিং বন্ধ হয়ে যায়। ( Ic4594 )
  • মডিফায়ার নোডগুলি বিচ্ছিন্ন করার সময় করা রিলেআউট অনুরোধগুলি এখন উপেক্ষা করা হবে।
  • মুভেবল এবং রিসাইজেবল মডিফায়ার দ্বারা ট্রিগার করা রিলেআউট পর্যায়গুলি সরানো হয়েছে।
  • MainPanel() কম্পোজেবলে একটি ক্র্যাশ ঠিক করা হয়েছে যা ডাইমেনশন শূন্যে সেট করার সময় ঘটেছিল, সরাসরি অথবা লেআউট গণনার সময়, যেমন একটি SpatialRow/SpatialColumn গণনা। প্যানেলটি এখন লুকানো থাকবে। মনে রাখবেন যে এই সমাধানটি বিশেষভাবে লেআউট পর্যায়ে ক্র্যাশগুলিকে মোকাবেলা করে; ব্যবহারকারীর মিথস্ক্রিয়ার মাধ্যমে প্যানেলটিকে শূন্যে রিসাইজ করার বিষয়টি আলাদাভাবে পরিচালনা করা হবে। লুকানো প্যানেলে UI সুবিধার অভাব রয়েছে।
  • রিসাইজেবল মডিফায়ার থেকে maintainAspectRatio এর সমস্যাটি সমাধান করা হয়েছে। আকৃতির অনুপাত এখনই রাখা উচিত।
  • নেস্টেড সাবস্পেসগুলির একটি সমস্যা সমাধান করা হয়েছে যেখানে সেগুলি একটি একক ফ্রেমের জন্য ভুলভাবে স্থাপন করা হত।
  • গোলাকার কোণগুলি কখনও কখনও যখন লাগানো উচিত ছিল তখন প্রয়োগ না করার সমস্যাটি সমাধান করা হয়েছে।
  • NestedSubspaces আর ভুল স্থানে একটি ফ্রেমের জন্য প্রদর্শিত হবে না।

সংস্করণ 1.0.0-alpha03

২৬ ফেব্রুয়ারী, ২০২৫

androidx.xr.compose:compose:1.0.0-alpha03 এবং androidx.xr.compose:compose-testing:1.0.0-alpha03 শেষ আলফা থেকে কোনও উল্লেখযোগ্য পরিবর্তন ছাড়াই প্রকাশিত হয়েছে। সংস্করণ 1.0.0-alpha03-এ এই কমিটগুলি রয়েছে

সংস্করণ 1.0.0-alpha02

১২ ফেব্রুয়ারী, ২০২৫

androidx.xr.compose:compose:1.0.0-alpha02 এবং androidx.xr.compose:compose-testing:1.0.0-alpha02 প্রকাশিত হয়েছে। সংস্করণ 1.0.0-alpha02-এ এই কমিটগুলি রয়েছে।

নতুন বৈশিষ্ট্য

  • একটি স্থানিক ডায়ালগ সক্রিয় করা হলে অ্যাক্টিভিটি প্যানেল এখন তার বিষয়বস্তু স্ক্রিম করতে পারে।
  • Orbiter এপিআই এখন SubspaceComposable প্রসঙ্গে ব্যবহারযোগ্য এবং অরবিটারগুলিকে তাদের নিকটতম SubspaceLayout -ভিত্তিক কম্পোজেবল প্যারেন্টের সাথে সংযুক্ত করবে।
  • কাস্টম পজিশনিং-ভিত্তিক মডিফায়ারগুলিকে অনুমতি দেওয়ার জন্য LayoutCoordinatesAwareModifierNode চালু করা হয়েছে।
  • SubspaceModifier.Node এ attach/detach লাইফসাইকেল পদ্ধতি যোগ করা হয়েছে।
  • চলমান সংশোধকটিতে scaleWithDistance যোগ করা হয়েছে। যখন scaleWithDistance সক্রিয় করা হয়, তখন সরানো সাবস্পেস উপাদানটি বৃদ্ধি বা সঙ্কুচিত হবে। এটি চলাচলের আগে থাকা যেকোনো স্পষ্ট স্কেলও বজায় রাখবে।

API পরিবর্তনগুলি

  • SpatialCapabilities এর পক্ষে SessionCallbackProvider সরানো হয়েছে।

অন্যান্য পরিবর্তন

  • minSDK কমিয়ে ২৪ করা হয়েছে। সমস্ত Jetpack XR API-এর রানটাইমে API 34 প্রয়োজন হবে।
  • Orbiter EdgeOffset.inner , EdgeOffset.outer , এবং EdgeOffset.overlap কনস্ট্রাক্টরগুলি আর @Composable পদ্ধতি নয়, যা এগুলিকে অ-কম্পোজেবল প্রসঙ্গে ব্যবহার করার অনুমতি দেয়।
  • সর্বশেষ UX স্পেসিফিকেশনের সাথে মেলে স্থানিক উচ্চতার স্তর আপডেট করুন।
  • MeasurableLayoutSubspaceSemanticsInfo ইন্টারফেস প্রয়োগ করুন।
  • SubspaceModifierElement নাম পরিবর্তন করে SubspaceModifierNodeElement করা হয়েছে।

বাগ সংশোধন

  • SubspaceModifier ক্রম স্থিতিশীল করার জন্য সংশোধন করা হয়েছে। SubspaceModifier আরও নির্ভরযোগ্য আচরণ করা উচিত। অফসেট, রোটেট, স্কেল, চলমান এবং আকার পরিবর্তনযোগ্য মডিফায়ার এখন যেকোনো ক্রমে ব্যবহারযোগ্য হওয়া উচিত।

সংস্করণ 1.0.0-alpha01

১২ ডিসেম্বর, ২০২৪

androidx.xr.compose:compose-*1.0.0-alpha01 প্রকাশিত হয়েছে।

প্রাথমিক প্রকাশের বৈশিষ্ট্য

  • XR-এর জন্য Jetpack Compose-এর প্রাথমিক ডেভেলপার রিলিজ। XR-এ স্থানিক UI লেআউট তৈরি করতে সারি এবং কলামের মতো পরিচিত কম্পোজ ধারণাগুলি ব্যবহার করুন, আপনি XR-এ বিদ্যমান 2D অ্যাপ পোর্ট করছেন বা স্ক্র্যাচ থেকে একটি নতুন XR অ্যাপ তৈরি করছেন। এই লাইব্রেরিটি সাবস্পেস এবং স্থানিক কম্পোজেবল সরবরাহ করে: যেমন স্থানিক প্যানেল এবং অরবিটার, যা আপনাকে আপনার বিদ্যমান 2D কম্পোজ বা ভিউ-ভিত্তিক UI একটি স্থানিক লেআউটে স্থাপন করতে দেয়। এটি ভলিউম সাবস্পেস কম্পোজেবল প্রবর্তন করে, যা আপনাকে আপনার UI-এর সাথে সম্পর্কিত 3D মডেলের মতো SceneCore সত্তা স্থাপন করতে দেয়। এই ডেভেলপার গাইডে আরও জানুন:

    • Subspace : এই কম্পোজেবলটি আপনার অ্যাপের UI হায়ারার্কির যেকোনো জায়গায় স্থাপন করা যেতে পারে, যার ফলে আপনি ফাইলের মধ্যে প্রসঙ্গ না হারিয়ে 2D এবং স্থানিক UI এর জন্য লেআউট বজায় রাখতে পারবেন। এটি XR এবং অন্যান্য ফর্ম ফ্যাক্টরের মধ্যে বিদ্যমান অ্যাপ আর্কিটেকচারের মতো জিনিসগুলি ভাগ করে নেওয়া সহজ করে তোলে, আপনার পুরো UI ট্রিতে অবস্থা উত্তোলন না করে বা আপনার অ্যাপটি পুনরায় আর্কিটেক্ট না করে।

    • স্পেশিয়ালপ্যানেল : একটি স্পেশিয়াল প্যানেল হল একটি সাবস্পেস কম্পোজেবল যা আপনাকে অ্যাপের কন্টেন্ট প্রদর্শন করতে দেয় - উদাহরণস্বরূপ, আপনি একটি স্পেশিয়াল প্যানেলে ভিডিও প্লেব্যাক, স্থির চিত্র বা অন্য কোনও কন্টেন্ট প্রদর্শন করতে পারেন।

    • অরবিটার : একটি অরবিটার হল একটি স্থানিক UI উপাদান। এটি একটি সংশ্লিষ্ট স্থানিক প্যানেলের সাথে সংযুক্ত করার জন্য ডিজাইন করা হয়েছে এবং এতে সেই স্থানিক প্যানেলের সাথে সম্পর্কিত নেভিগেশন এবং প্রাসঙ্গিক ক্রিয়া আইটেম রয়েছে। উদাহরণস্বরূপ, যদি আপনি ভিডিও সামগ্রী প্রদর্শনের জন্য একটি স্থানিক প্যানেল তৈরি করে থাকেন, তাহলে আপনি একটি অরবিটারের ভিতরে ভিডিও প্লেব্যাক নিয়ন্ত্রণ যোগ করতে পারেন।

    • ভলিউম : আপনার UI এর সাপেক্ষে সিনকোর সত্তা, যেমন 3D মডেল, রাখুন।

  • স্থানিক লেআউট: আপনি একাধিক স্থানিক প্যানেল তৈরি করতে পারেন এবং SpatialRow , SpatialColumn , SpatialBox এবং SpatialLayoutSpacer ব্যবহার করে একটি স্থানিক লেআউটের মধ্যে স্থাপন করতে পারেন। আপনার লেআউট কাস্টমাইজ করতে SubspaceModifier ব্যবহার করুন।

  • স্থানিক UI উপাদান: এই উপাদানগুলি আপনার 2D UI তে পুনঃব্যবহার করা যেতে পারে, এবং স্থানিক ক্ষমতা সক্রিয় থাকলেই কেবল তাদের স্থানিক বৈশিষ্ট্যগুলি দৃশ্যমান হবে।

    • SpatialDialog : প্যানেলটি একটি উন্নত ডায়ালগ প্রদর্শনের জন্য z-depth-এ সামান্য পিছনে ঠেলে দেবে।
    • SpatialPopUp : প্যানেলটি একটি উন্নত পপআপ প্রদর্শনের জন্য z-depth-এ সামান্য পিছনে ঠেলে দেবে।
    • SpatialElevation : SpatialElevationLevel উচ্চতা যোগ করার জন্য সেট করা যেতে পারে।
  • SpatialCapabilities: ব্যবহারকারীরা আপনার অ্যাপ বা সিস্টেমের সাথে ইন্টারঅ্যাক্ট করার সাথে সাথে স্থানিক ক্ষমতা পরিবর্তিত হতে পারে, অথবা এমনকি আপনার অ্যাপ নিজেই পরিবর্তন করতে পারে—উদাহরণস্বরূপ, Home Space বা Full Space-এ স্থানান্তরিত হওয়া। সমস্যা এড়াতে, আপনার অ্যাপটিকে LocalSpatialCapabilities.current পরীক্ষা করে দেখতে হবে বর্তমান পরিবেশে কোন API গুলি সমর্থিত। isSpatialUiEnabled : Spatial UI উপাদান (যেমন SpatialPanel) isContent3dEnabled : 3D বস্তু isAppEnvironmentEnabled : পরিবেশ isPassthroughControlEnabled : অ্যাপ্লিকেশনটি পাসথ্রু অবস্থা নিয়ন্ত্রণ করতে পারে কিনা isSpatialAudioEnabled : Spatial অডিও

জ্ঞাত সমস্যা

  • বর্তমানে XR-এর জন্য Jetpack Compose ব্যবহার করার জন্য minSDK 30 প্রয়োজন। সমাধান হিসেবে আপনি নিম্নলিখিত ম্যানিফেস্ট এন্ট্রি <uses-sdk tools:overrideLibrary="androidx.xr.scenecore, androidx.xr.compose"/> যোগ করতে পারেন যাতে 23 এর minSDK তৈরি এবং চালানো যায়।
  • Jetpack XR অ্যাপগুলির জন্য বর্তমানে AndroidManifest-এ android.permission.SCENE_UNDERSTANDING অনুমতির প্রয়োজন হয়।
  • যখন কোনও অ্যাপ তাদের ম্যানিফেস্টে থাকা PROPERTY_XR_ACTIVITY_START_MODE প্রপার্টি ব্যবহার করে সরাসরি ফুল স্পেসে লঞ্চ হয়, তখন অ্যাক্টিভিটিজ/অ্যাপ্লিকেশনগুলি প্রথমে হোম স্পেসে খোলা হয় এবং তারপর ফুল স্পেসে রূপান্তরিত হয়।
  • ভলিউম কম্পোজেবলের glTF গুলি প্রাথমিকভাবে ভুল স্থানে ঝাঁকুনি দিতে পারে।
  • উল্লেখযোগ্যভাবে সরানো হয়েছে এমন একটি প্যানেলে একটি SpatialDialog ব্যবহার করলে বিষয়বস্তু ভুল দিকে ঠেলে দেওয়া হবে।