Kotlin Multiplatform Projects
Kotlin Multiplatform (KMP) হলো Kotlin ভাষার একটি ফিচার যা আপনাকে একটি একক কোড বেস থেকে বিভিন্ন প্ল্যাটফর্মের (যেমন Android, iOS, Web) জন্য অ্যাপ্লিকেশন তৈরি করার সুযোগ দেয়। KMP ডেভেলপমেন্টের মাধ্যমে কোড পুনঃব্যবহারযোগ্যতা, টাইপ সেফটি এবং কোডের মেইনটেনেবিলিটি বাড়ানো সম্ভব হয়।
নিচে Kotlin Multiplatform Projects-এর কাঠামো, সুবিধা এবং বাস্তব জীবনের উদাহরণ নিয়ে আলোচনা করা হলো।
১. Kotlin Multiplatform Project Structure
Kotlin Multiplatform Project সাধারণত নিচের কাঠামোতে গঠিত হয়:
- MyMultiplatformProject
- build.gradle.kts (or build.gradle)
- shared
- src
- commonMain // Common code
- androidMain // Android specific code
- iosMain // iOS specific code
- jsMain // JavaScript specific code
- androidApp // Android app module
- iosApp // iOS app module
- webApp // Web app module
২. Kotlin Multiplatform Project সেটআপ
i) Gradle সেটআপ
প্রথমে, আপনার build.gradle.kts (বা build.gradle) ফাইলে নিম্নলিখিত কনফিগারেশন যুক্ত করুন:
plugins {
kotlin("multiplatform") version "1.8.0"
}
kotlin {
android() // Android target
ios() // iOS target
js { // JavaScript target
browser {
}
}
sourceSets {
val commonMain by getting {
dependencies {
// Common dependencies
}
}
val androidMain by getting {
dependencies {
// Android-specific dependencies
}
}
val iosMain by getting {
dependencies {
// iOS-specific dependencies
}
}
val jsMain by getting {
dependencies {
// JavaScript-specific dependencies
}
}
}
}
৩. Shared Code এবং Platform-specific Code
Kotlin Multiplatform Project-এ commonMain সোর্স সেটে Shared Code এবং নির্দিষ্ট প্ল্যাটফর্মের জন্য androidMain, iosMain, এবং jsMain সোর্স সেটে Platform-specific Code থাকবে।
i) Shared Code উদাহরণ
// shared/src/commonMain/kotlin/com/example/shared/Platform.kt
expect class Platform() {
val name: String
}
fun greet(): String {
return "Hello from ${Platform().name}!"
}
ii) Android Specific Code
// shared/src/androidMain/kotlin/com/example/shared/Platform.kt
actual class Platform actual constructor() {
actual val name: String = "Android"
}
iii) iOS Specific Code
// shared/src/iosMain/kotlin/com/example/shared/Platform.kt
actual class Platform actual constructor() {
actual val name: String = "iOS"
}
৪. Android App Module তৈরি করা
আপনার Android অ্যাপ্লিকেশন থেকে Shared Code ব্যবহার করতে পারবেন।
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
val greeting = greet()
println(greeting) // Output: Hello from Android!
}
}
৫. iOS App Module তৈরি করা
আপনার iOS অ্যাপ্লিকেশন থেকেও Shared Code ব্যবহার করতে পারবেন।
import Shared // Import the Kotlin Multiplatform module
class ViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
let greeting = greet() // Calls the common greet function
print(greeting) // Output: Hello from iOS!
}
}
৬. Web Application Module তৈরি করা
Kotlin Multiplatform ব্যবহার করে একটি JavaScript অ্যাপ্লিকেশন তৈরি করতে পারেন।
import kotlinx.browser.document
fun main() {
document.body?.innerHTML = "<h1>${greet()}</h1>" // Output: Hello from JavaScript!
}
৭. Advantages of Kotlin Multiplatform
- Code Reusability: একই কোড বেস থেকে বিভিন্ন প্ল্যাটফর্মে অ্যাপ্লিকেশন তৈরি করা যায়।
- Type Safety: Kotlin এর টাইপ সেফটি আপনাকে ভুল সনাক্তকরণে সাহায্য করে।
- Interoperability: Kotlin Java এর সাথে সম্পূর্ণরূপে ইন্টারঅপারেবল, যা বিদ্যমান Java লাইব্রেরিগুলি ব্যবহার করতে সক্ষম করে।
- Maintainability: কোডের মেইনটেনেবিলিটি এবং ক্লিন কোড লেখার সুযোগ দেয়।
উপসংহার
Kotlin Multiplatform Projects ডেভেলপারদের জন্য একটি শক্তিশালী টুল, যা বিভিন্ন প্ল্যাটফর্মে অ্যাপ্লিকেশন তৈরি করার প্রক্রিয়াকে সহজ এবং কার্যকর করে তোলে। Kotlin-এর শক্তিশালী ফিচারগুলি ব্যবহার করে আপনি Android, iOS, এবং Web-এর জন্য একটি একক কোড বেস থেকে অ্যাপ্লিকেশন তৈরি করতে পারেন।
Read more