এক্সআর-এর জন্য জেটপ্যাক কম্পোজ

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

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

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

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

গ্রোভি

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

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

কোটলিন

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

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

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

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

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

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

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

সংস্করণ ১.০

সংস্করণ 1.0.0-alpha12

২৫ মার্চ, ২০২৬

androidx.xr.compose:compose:1.0.0-alpha12 এবং androidx.xr.compose:compose-testing:1.0.0-alpha12 রিলিজ করা হয়েছে। ভার্সন 1.0.0-alpha12-এ এই কমিটগুলো রয়েছে।

এপিআই পরিবর্তন

  • glTF রেন্ডার করতে এবং অ্যানিমেশন নিয়ন্ত্রণ করতে SpatialGltfModel API এবং SpatialGltfModelAnimation API যোগ করা হয়েছে। SpatialGltfModelState AutoCloseable করা হয়েছে, এখন থেকে এর রিসোর্স মুক্ত করতে এটিকে বন্ধ করতে হবে। ( I11fde , b/466065486 , b/481379924 )। তবে, অতিরিক্ত পরীক্ষার অপেক্ষায় এই রিলিজের জন্য SpatialGltfModel API-কে সীমাবদ্ধ (restricted) হিসেবে চিহ্নিত করা হয়েছে। ( Ibf003 , b/466090694 )
  • SubspaceModifier.rotate এর জন্য একটি ডেপ্রিকেটেড এম্পটি ওভারলোড যোগ করা হয়েছে। ( Idceb6 )
  • SpatialSmoothFeatheringEffect ফাংশনটির নাম পরিবর্তন করে spatialSmoothFeatheringEffect রাখা হয়েছে এবং এটিকে একটি ড্র মডিউলে স্থানান্তর করা হয়েছে। SpatialExternalSurface ডিফল্ট ফেদারিং ভ্যালু null-এ আপডেট করা হয়েছে, যা পুরোনো ZeroFeatheringEffect-এর কার্যকারিতাকে অনুকরণ করে। ( I5fdaa , b/460426800 )
  • onPointSourceParamsAvailable সরিয়ে ফেলা হয়েছে। অদূর ভবিষ্যতে একটি ভিন্ন অডিও স্পেশালাইজেশন এপিআই উপলব্ধ হবে। ( I86507 , b/458513439 )
  • অফসেট সাবস্পেস মডিফায়ারগুলির জন্য RTL আচরণ যোগ করা হয়েছে। এছাড়াও লেআউটের দিক উপেক্ষা করার জন্য absoluteOffset যোগ করা হয়েছে। ( I30e4b , b/474409165 )

সংস্করণ 1.0.0-alpha11

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

androidx.xr.compose:compose:1.0.0-alpha11 এবং androidx.xr.compose:compose-testing:1.0.0-alpha11 রিলিজ করা হয়েছে। ভার্সন 1.0.0-alpha11-এ এই কমিটগুলো রয়েছে।

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

  • SpatialExternalSurfaces ( Icd4d1 )-এ SuperSampling প্যারামিটার যোগ করা হচ্ছে

এপিআই পরিবর্তন

  • লেআউটের দিক সচেতনতার জন্য সাবস্পেস মডিফায়ারের প্যাডিং পরিবর্তন। ( I53e25 )
  • SpatialCapabilities এখন সিল করা হয়েছে এবং এটি সম্প্রসারিত করা যাবে না। ( I07aef )
  • SpatialRow এবং SpatialColumn API-গুলো, যেগুলো একটি জেনেরিক SpatialAlignment প্যারামিটার গ্রহণ করে, সেগুলো অপ্রচলিত; এর পরিবর্তে, SpatialRow এবং SpatialColumn জন্য যথাক্রমে verticalAlignment বা horizontalAlignment গ্রহণকারী API-গুলো ব্যবহার করুন। ( Iec390 )
  • SubspaceLayout ফাংশন API ওভারলোডিংয়ের সমন্বয় ( Idd30a )
  • SubspaceModifier.lookAtUser নাম পরিবর্তন করে rotateToLookAtUser এবং up প্যারামিটারটির নাম পরিবর্তন করে upDirection রাখা হয়েছে। ( Icafb8 )
  • SpatialRow একটি ইনলাইন ফাংশন বানানো ( Ia2f20 )
  • SpatialColumn একটি ইনলাইন ফাংশন বানানো ( I681be )
  • বিলবোর্ড এপিআই সরানো হয়েছে ( Ib76cd )

সংস্করণ 1.0.0-alpha10

২৮ জানুয়ারী, ২০২৬

androidx.xr.compose:compose:1.0.0-alpha10 এবং androidx.xr.compose:compose-testing:1.0.0-alpha10 রিলিজ করা হয়েছে। ভার্সন 1.0.0-alpha10-এ এই কমিটগুলো রয়েছে।

এপিআই পরিবর্তন

  • অপ্রচলিত API অপসারণ করা হচ্ছে - ApplicationSubspace ( Ia6596 , b/468345186 )
  • SpatialShape একটি সিলড ইন্টারফেসে আপডেট করা হয়েছে ( I7e3f5 , b/460426800 )
  • SpatialAlignment থেকে অপ্রচলিত API অপসারণ করা হচ্ছে। ( Ib0b61 , b/468011887 )
  • SpatialLayoutSpacer বাতিল করা হচ্ছে এবং SpatialSpacer চালু করা হচ্ছে। ( I2ebf3 , b/466071383 )
  • UserSubspace API আপডেট করা হয়েছে যাতে 'লেজি লকিং' পরিভাষাটি 'সফট লকিং' দ্বারা প্রতিস্থাপিত হয়। ( I9ded1 , b/464035984 )

সংস্করণ 1.0.0-alpha09

০৩ ডিসেম্বর, ২০২৫

androidx.xr.compose:compose:1.0.0-alpha09 এবং androidx.xr.compose:compose-testing:1.0.0-alpha09 রিলিজ করা হয়েছে। ভার্সন 1.0.0-alpha09-এ এই কমিটগুলো রয়েছে।

এপিআই পরিবর্তন

  • LookAtUser এবং Billboard মডিফায়ার যোগ করা হয়েছে, যা কন্টেন্টকে সর্বদা ব্যবহারকারীর দিকে মুখ করে রাখতে সাহায্য করে। ( I49b99 )
  • SpatialExternalSurfaces এবং SpatialPanels এ একটি InteractionPolicy সেট করার ক্ষমতা যোগ করে, যা ক্লিক এবং অন্যান্য 3D ইনপুট ইভেন্ট সনাক্ত করতে দেয়। ( Iae155 )
  • Dp মান হিসাবে width, height, এবং depth সহ size এবং requiredSize মডিফায়ার ওভারলোড যোগ করা হয়েছে। ( I92f79 )
  • ParentLayoutParamsModifier ইন্টারফেসটি এখন DelegatableSubspaceNode এক্সটেন্ড করে। ( I1a6d4 )
  • ApplicationSubspace অপ্রচলিত ঘোষণা করে Subspace API ব্যবহার করা হচ্ছে।
    • সাবস্পেস এপিআই-এর আচরণ পরিবর্তন করা হয়েছে, যাতে এটি শুধুমাত্র প্রস্তাবিত পোজ এবং স্কেলে একটি অ্যাপ্লিকেশন-ব্যাপী সাবস্পেস প্রদান করে।
    • 2D প্রেক্ষাপটে এমবেডেড সাবস্পেস প্রদানের জন্য PlanarEmbeddedSubspace API চালু করা হয়েছে। ( Id3343 )
  • SubspaceModifier.Node API-তে shouldAutoInvalidate ফ্ল্যাগ যোগ করা হয়েছে। ( I93902 )
  • এপিআই-গুলিতে required(Size|Width|Depth|Height) যোগ করা হয়েছে, যা ডেভেলপারদের প্যারেন্টের আগত পরিমাপের সীমাবদ্ধতা উপেক্ষা করে একটি @SubspaceComposable এর আকারকে একটি নির্দিষ্ট পরিসরের মধ্যে সীমাবদ্ধ করতে দেয়। ( Ifaa78 )
  • SubspaceModifier.onSizeChanged যোগ করা হয়েছে, যা @SubspaceComposable এর আকার পরিবর্তিত হলে ডেভেলপারদের প্রতিক্রিয়া জানানোর জন্য একটি সহজ ও সুনির্দিষ্ট কলব্যাক প্রদান করে। ( I994f9 )
  • Volume API সরিয়ে ফেলা হয়েছে। Volume API-এর পরিবর্তে SceneCoreEntity API ব্যবহার করা উচিত। ( I4162b )
  • SubspaceLayoutModifierNode.requestRelayout invalidateMeasurement/invalidatePlacement এ বিভক্ত করুন। ( I14805 )
  • SpatialGltfModel API যোগ করা হয়েছে, যা ডেভেলপারদের কম্পোজে glTF রেন্ডার করার সুযোগ দেয়। ( Icc91f )
  • glTF সহজে রেন্ডার করার জন্য SpatialGltfModel কম্পোজেবল API চালু করা হয়েছে ( Iade67 )

বাগ সংশোধন

  • SceneCoreEntity এর একটি লেআউট বাগ সংশোধন করা হয়েছে। এটি এখন তার সীমাবদ্ধতাগুলো সঠিকভাবে মেনে চলবে। ( I11bb8 )
  • jxr-compose মডিউল কমিয়ে Compile sdk = 34 ( I2d5db ) করা হলো

সংস্করণ 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-এ এই কমিটগুলো রয়েছে।

এপিআই পরিবর্তন

  • onResizeStart , onResizeUpdate এবং onResizeEnd গ্রহণ করার জন্য ResizePolicy পরিবর্তন করা হয়েছে। ( 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-এ এই কমিটগুলো রয়েছে।

এপিআই পরিবর্তন

  • 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 চালু করুন এবং constraints প্যারামিটারটিকে আকার-সম্পর্কিত SubspaceModifier দ্বারা প্রতিস্থাপন করুন। যদি allowUnboundedSubspace SubspaceModifiers true হয়, তাহলেও সাবস্পেসগুলিতে অসীম সীমাবদ্ধতা থাকতে পারে। ( Ib06e6 , b/433331675 )
  • এখন যেহেতু DragPolicy() এবং ResizePolicy() SpatialPanel এবং SpatialExternalSurface API-এর অংশ, তাই movable এবং resizable SubspaceModifiers অপ্রচলিত করা হচ্ছে ( I397bf , b/437924639 )
  • স্পেশিয়াল লেআউটে LayoutDirection এর জন্য সমর্থন যোগ করা হয়েছে। SpatialAlignment ব্যবহার করে কম্পোজ করা যায় এমন এলিমেন্টগুলো এখন LTR এবং RTL উভয় প্রেক্ষাপটেই সঠিকভাবে অবস্থান করবে। ( I964bb , b/436300273 )
  • Panel এপিআই-তে রিসাইজেবল (Resizable) এবং মুভেবল (Movable) প্যারামিটার যোগ করুন, যাতে এই আচরণগুলো শুধুমাত্র সমর্থিত কন্টেইনারগুলিতেই প্রয়োগ করা যায়। ( 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 Composable। ( I40ef2 , b/391705799 )
  • SubspaceModifier.aspectRatio যোগ করা হয়েছে ( Ide5ab , b/399729509 , b/414762147 )
  • SceneCore এবং Compose for XR-এর মধ্যে আন্তঃকার্যক্ষমতা উন্নত করার জন্য SceneCoreEntity API যোগ করা হয়েছে। ( I50bb3 , b/423020989 )
  • আনস্কেলড এবং GravityAligned বৈশিষ্ট্য সমর্থন করার জন্য GravityAlignedsubspace এপিআই প্রদান করা হয়েছে ( I07359 )

এপিআই পরিবর্তন

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

বাগ সংশোধন

  • রেন্ডার করার সময় SpatialDialog ক্ষণস্থায়ী ঝলকানির সমস্যাটি সমাধান করা হয়েছে। ( Ife73c , b/401619909 )
  • সেই সমস্যার সমাধান করা হয়েছে যেখানে SpatialDialog Activity Panel-কে স্ক্রিম করতে পারছিল না। ( I8ca6c , b/367442109 )
  • XR ডায়ালগে কিছু কন্টেন্ট না দেখানোর সমস্যা সমাধান করা হয়েছে ( I17cd5 , b/418062437 )
  • কন্টেন্টের ভিতরে ক্লিক করলে SpatialPopup বন্ধ হয়ে যাওয়ার সমস্যাটি সমাধান করা হয়েছে। ( If262c , b/417245722 )
  • resizable().movable() পরপর ব্যবহার করার সময় SpatialPanel-টি নতুন আকারে সঠিকভাবে রিসাইজ হতে ব্যর্থ হওয়ার সমস্যাটি সমাধান করা হয়েছে। ( I02ee3 , b/422264230 )
  • SpatialComposeVideoPlayer এ মেনুর সাথে topBar ওভারল্যাপিং সমস্যা সমাধান করা হয়েছে ( Id33bc , b/427168167 )
  • স্থির কোণার ব্যাসার্ধ রেন্ডার হচ্ছে না ( 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 যোগ করা হয়েছে, যা একটি ত্রিমাত্রিক (3D) এলাকা নির্ধারণের জন্য ঐচ্ছিক VolumeConstraints প্রদান করে, যেখানে অ্যাপটি স্থানিক বিষয়বস্তু (spatial content) রেন্ডার করতে পারে। ডিফল্টরূপে, যদি কোনো কনস্ট্রেইন্টস নির্দিষ্ট না করা হয়, তবে সাবস্পেসটি প্রস্থ এবং উচ্চতায় SpatialUser -এর বর্তমান ফিল্ড অফ ভিউ দ্বারা সীমাবদ্ধ থাকবে। ফিল্ড অফ ভিউ নির্ধারণ করা না গেলে ব্যবহারের জন্য ব্যবহারকারীরা কনস্ট্রেইন্টস প্রদান করতে পারেন। অন্যথায়, ডিফল্ট ফিল্ড অফ ভিউ-এর প্রস্থ এবং উচ্চতার মান ব্যবহার করা হয়।
  • SpatialExternalSurface যোগ করা হয়েছে, যা স্টিরিওস্কোপিক কন্টেন্ট রেন্ডার করতে ব্যবহার করা যায়। SpatialExternalSurface মডিফায়ার (আলফা ছাড়া) এবং একটি এজ ফেদারিং এফেক্ট দিয়ে কাস্টমাইজ করা যায়।
  • একটি নতুন pointerHoverIcon Subspace Modifier' যোগ করা হয়েছে, যা ব্যবহারকারীদের স্পেশিয়াল পয়েন্টারের জন্য আইকন সেট করার সুযোগ দেয়।

এপিআই পরিবর্তন

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

বাগ সংশোধন

  • একটি SpatialDialog দেখানো হলে স্ক্রিমিং বন্ধ করা হয়েছে। ( Ic4594 )
  • মডিফায়ার নোডগুলো বিচ্ছিন্ন থাকা অবস্থায় করা রিলেআউট অনুরোধগুলো এখন উপেক্ষা করা হবে।
  • Movable এবং Resizable মডিফায়ার দ্বারা ট্রিগার হওয়া রিলেআউট পর্যায়গুলো সরিয়ে ফেলা হয়েছে।
  • MainPanel() কম্পোজেবলে একটি ক্র্যাশ ঠিক করা হয়েছে, যা সরাসরি অথবা কোনো লেআউট ক্যালকুলেশনের (যেমন, SpatialRow/SpatialColumn ক্যালকুলেশন) সময় যেকোনো একটি ডাইমেনশনকে শূন্যে সেট করলে ঘটত। এর পরিবর্তে প্যানেলটি এখন থেকে লুকানো থাকবে। উল্লেখ্য যে, এই সমাধানটি বিশেষভাবে লেআউট পর্যায়ের ক্র্যাশগুলোর জন্য; ব্যবহারকারীর ইন্টারঅ্যাকশনের মাধ্যমে প্যানেলের আকার শূন্যে পরিবর্তন করার বিষয়টি আলাদাভাবে পরিচালনা করা হবে। লুকানো প্যানেলে কোনো UI অ্যাফোর্ডেন্স থাকবে না।
  • resizable মডিফায়ারের 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 লাইফসাইকেল মেথড যোগ করা হয়েছে।
  • movable মডিফায়ারে scaleWithDistance যোগ করা হয়েছে। scaleWithDistance সক্রিয় করা হলে, সরানো সাবস্পেস এলিমেন্টটি বড় বা ছোট হবে। এটি সরানোর আগে এর যে কোনো সুস্পষ্ট স্কেলও বজায় রাখবে।

এপিআই পরিবর্তন

  • SessionCallbackProvider সরিয়ে SpatialCapabilities ব্যবহার করা হয়েছে।

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

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

বাগ সংশোধন

  • SubspaceModifier ক্রম স্থিতিশীল করার জন্য সংশোধন করা হয়েছে। SubspaceModifier এখন আরও নির্ভরযোগ্যভাবে কাজ করবে। Offset, rotate, scale, movable, এবং resizable মডিফায়ার এখন যেকোনো ক্রমে ব্যবহার করা যাবে।

সংস্করণ 1.0.0-alpha01

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

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

প্রাথমিক রিলিজের বৈশিষ্ট্যসমূহ

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

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

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

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

    • আয়তন : আপনার UI-এর সাপেক্ষে SceneCore এনটিটি, যেমন 3D মডেল, স্থাপন করুন।

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

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

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

পরিচিত সমস্যা

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