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 কম্পোজেবল ফাংশন -
material3→ Material Design 3 UI কম্পোনেন্টস -
ui-tooling-preview→ Previews চালানোর জন্য -
ui-tooling→ Debugging ও Layout Inspector চালানোর জন্য
৩. Compose Runtime Dependencies
dependencies {
implementation 'androidx.compose.runtime:runtime'
implementation 'androidx.compose.runtime:runtime-livedata'
implementation 'androidx.compose.runtime:runtime-rxjava2'
}
🔹 ব্যবহার:
-
runtime→ Composable UI রেন্ডারিং ও রিস্টেট ম্যানেজমেন্ট -
runtime-livedata→ LiveData-এর সাথে Composable UI ব্যবহার করার জন্য -
runtime-rxjava2→ RxJava 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'
}
🔹 ব্যবহার:
-
systemuicontroller→ Status bar ও Navigation bar কাস্টমাইজ করা যায় -
pager→ ViewPager এর মত 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-junit4→ UI Automation Test চালানোর জন্য -
ui-test-manifest→ Test চলাকালীন UI সিমুলেশন করা যায়
🔥 শেষ কথা:
Jetpack Compose ব্যবহারের জন্য উপরের ডিপেন্ডেন্সিগুলো বেশ গুরুত্বপূর্ণ। আপনি যদি Declarative UI ডেভেলপমেন্ট শিখতে চান, তাহলে এই ডিপেন্ডেন্সিগুলো কিভাবে কাজ করে সেটা ভালোভাবে বোঝা দরকার।
📌 যে কোনো Compose প্রোজেক্টে সবসময় BOM ব্যবহার করার পরামর্শ দেওয়া হয়, কারণ এতে ভার্সন ম্যানেজমেন্ট সহজ হয়। 🚀
Comments
Post a Comment