Android Jetpack Compose Dependency List & Usage

 


Jetpack Compose হল Android UI Toolkit, যা Declarative UI তৈরির জন্য ব্যবহৃত হয়। এটি XML-এর পরিবর্তে Kotlin-ভিত্তিক UI কম্পোজেবল ফাংশন ব্যবহার করে। Jetpack Compose ব্যবহার করতে হলে বিভিন্ন ডিপেন্ডেন্সি প্রয়োজন হয়, যা নিচে বিস্তারিত দেওয়া হলো।


১. Jetpack Compose BOM (Bill of Materials)

📌 এটি সমস্ত Compose লাইব্রেরির ভার্সন ম্যানেজ করতে সাহায্য করে।

dependencies {
    implementation platform('androidx.compose:compose-bom:2024.03.00')
}

🔹 ব্যবহার:

  • BOM ব্যবহার করলে আলাদাভাবে প্রতিটি লাইব্রেরির ভার্সন উল্লেখ করতে হয় না

  • শুধুমাত্র platform() দিয়ে BOM অ্যাড করলে সমস্ত Compose লাইব্রেরি আপডেট থাকবে


২. Core Compose Dependencies

এই ডিপেন্ডেন্সিগুলো @Composable ফাংশন ব্যবহার করতে এবং UI তৈরি করতে সাহায্য করে।

dependencies {
    implementation 'androidx.compose.ui:ui'
    implementation 'androidx.compose.material3:material3'
    implementation 'androidx.compose.ui:ui-tooling-preview'
    debugImplementation 'androidx.compose.ui:ui-tooling'
}

🔹 ব্যবহার:

  • ui → মূল UI কম্পোজেবল ফাংশন

  • material3Material Design 3 UI কম্পোনেন্টস

  • ui-tooling-previewPreviews চালানোর জন্য

  • ui-toolingDebugging ও Layout Inspector চালানোর জন্য


৩. Compose Runtime Dependencies

dependencies {
    implementation 'androidx.compose.runtime:runtime'
    implementation 'androidx.compose.runtime:runtime-livedata'
    implementation 'androidx.compose.runtime:runtime-rxjava2'
}

🔹 ব্যবহার:

  • runtimeComposable UI রেন্ডারিং ও রিস্টেট ম্যানেজমেন্ট

  • runtime-livedataLiveData-এর সাথে Composable UI ব্যবহার করার জন্য

  • runtime-rxjava2RxJava 2 এর সাথে Compose কাজ করানোর জন্য


৪. Navigation in Jetpack Compose

dependencies {
    implementation 'androidx.navigation:navigation-compose'
}

🔹 ব্যবহার:

  • Multiple Screens (Destination) তৈরি করা

  • Back Stack ম্যানেজমেন্ট করা

  • Safe Args-এর বিকল্প হিসেবে Nav Arguments পাঠানো

👉 Navigation ব্যবহার করার উদাহরণ:

val navController = rememberNavController()

NavHost(navController, startDestination = "home") {
    composable("home") { HomeScreen(navController) }
    composable("details") { DetailsScreen(navController) }
}

৫. ViewModel Support for Jetpack Compose

dependencies {
    implementation 'androidx.lifecycle:lifecycle-viewmodel-compose'
}

🔹 ব্যবহার:

  • ViewModel কে Composable UI এর সাথে সংযুক্ত করার জন্য

  • remember বা rememberSaveable ব্যবহার না করেও State হ্যান্ডেল করার জন্য

👉 ViewModel ব্যবহার করার উদাহরণ:

@Composable
fun MyScreen(viewModel: MyViewModel = viewModel()) {
    val data = viewModel.someLiveData.observeAsState()
    Text(text = data.value ?: "Loading...")
}

৬. ConstraintLayout for Compose

dependencies {
    implementation 'androidx.constraintlayout:constraintlayout-compose:1.0.1'
}

🔹 ব্যবহার:

  • XML-এর মত ConstraintLayout ব্যবহার করা যায়

  • UI-এর সুনির্দিষ্ট প্লেসমেন্ট ও Alignment কন্ট্রোল করা যায়

👉 ConstraintLayout ব্যবহার করার উদাহরণ:

ConstraintLayout {
    val (button, text) = createRefs()
    
    Button(onClick = {}, modifier = Modifier.constrainAs(button) {
        top.linkTo(parent.top, margin = 16.dp)
    }) {
        Text("Click Me")
    }
}

৭. Paging for Jetpack Compose

dependencies {
    implementation 'androidx.paging:paging-compose'
}

🔹 ব্যবহার:

  • Infinite Scrolling UI তৈরি করা যায়

  • Firebase বা REST API থেকে বড় লিস্ট লোড করা সহজ হয়

👉 Paging ব্যবহার করার উদাহরণ:

val pager = rememberPager(
    config = PagingConfig(pageSize = 10),
    pagingSourceFactory = { MyPagingSource() }
)
val lazyPagingItems = pager.flow.collectAsLazyPagingItems()
LazyColumn {
    items(lazyPagingItems) { item ->
        Text(text = item.name)
    }
}

৮. Coil - Image Loading in Jetpack Compose

dependencies {
    implementation 'io.coil-kt:coil-compose'
}

🔹 ব্যবহার:

  • ইন্টারনেট থেকে ইমেজ লোড করা যায়

  • ক্যাশিং ও লোডিং অপটিমাইজ করা হয়

👉 Coil ব্যবহার করার উদাহরণ:

Image(
    painter = rememberImagePainter("https://example.com/image.jpg"),
    contentDescription = "Profile Picture"
)

৯. Accompanist - Extra UI Features for Compose

dependencies {
    implementation 'com.google.accompanist:accompanist-systemuicontroller'
    implementation 'com.google.accompanist:accompanist-pager'
}

🔹 ব্যবহার:

  • systemuicontrollerStatus bar ও Navigation bar কাস্টমাইজ করা যায়

  • pagerViewPager এর মত Horizontal Swipe UI তৈরি করা যায়

👉 System UI Controller ব্যবহার করার উদাহরণ:

val systemUiController = rememberSystemUiController()
systemUiController.setStatusBarColor(Color.Blue)

১০. Testing Dependencies for Compose

dependencies {
    androidTestImplementation 'androidx.compose.ui:ui-test-junit4'
    debugImplementation 'androidx.compose.ui:ui-test-manifest'
}

🔹 ব্যবহার:

  • ui-test-junit4UI Automation Test চালানোর জন্য

  • ui-test-manifestTest চলাকালীন UI সিমুলেশন করা যায়


🔥 শেষ কথা:

Jetpack Compose ব্যবহারের জন্য উপরের ডিপেন্ডেন্সিগুলো বেশ গুরুত্বপূর্ণ। আপনি যদি Declarative UI ডেভেলপমেন্ট শিখতে চান, তাহলে এই ডিপেন্ডেন্সিগুলো কিভাবে কাজ করে সেটা ভালোভাবে বোঝা দরকার।

📌 যে কোনো Compose প্রোজেক্টে সবসময় BOM ব্যবহার করার পরামর্শ দেওয়া হয়, কারণ এতে ভার্সন ম্যানেজমেন্ট সহজ হয়। 🚀

অ্যান্ড্রয়েড জেটপ্যাক নির্ভরতা তালিকা এবং ব্যবহার রচনা

Comments

Popular posts from this blog

AI (Artificial Intelligence) সহজভাবে বোঝার জন্য একদম মস্তিষ্ক-বান্ধব ব্যাখ্যা 🧠🤖

🧠 Regex কী?

Kotlin-এ ভেরিয়েবল ঘোষণা করার দুই উপায়