تتيح Kotlin Multiplatform (KMP) مشاركة رمز Kotlin على منصات مختلفة. قبل بدء إنشاء التطبيقات باستخدام KMP، عليك إعداد بيئتك كما هو موضّح في هذا المستند. يمكنك أيضًا الرجوع إلى المستندات الرسمية الخاصة بـ JetBrain.
تثبيت الأدوات المطلوبة أو تحديثها
- ثبِّت أحدث إصدار ثابت من Android Studio أو حدِّثه.
- يُرجى تحديث مكوّن Kotlin الإضافي المُضمّن في "استوديو Android" إلى أحدث إصدار لتجنُّب مشاكل التوافق.
- (اختياري) لتطوير التطبيقات على نظام التشغيل iOS، ثبِّت Xcode لإنشاء واجهة مستخدم مثبّتة وأضِف رمز Swift أو Objective-C حسب الحاجة.
إنشاء مشروع Kotlin متوافق مع أنظمة التشغيل المتعددة
يمكنك استخدام معالج Kotlin Multiplatform من JetBrains ل إنشاء مشروع جديد باستخدام KMP. احرص على اختيار الخيار عدم مشاركة واجهة المستخدم للحفاظ على واجهة المستخدم الأصلية.
بنية المشروع
تتّبع مشاريع KMP بنية مشروع مشابهة لمشاريع Android.
يحتوي مشروع KMP على وحدات خاصة بالمنصة بالإضافة إلى وحدة مشترَكة. أضِف الرمز المخصّص للمنصة إلى الوحدة ذات الصلة. على سبيل المثال، أضِف واجهة مستخدم تطبيق Android في وحدة androidApp وواجهة مستخدم تطبيق iOS في iosApp. يتم وضع أي رمز تريد مشاركته بين المنصات في الوحدة المشترَكة.
تستخدِم الوحدة المشتركة Gradle كنظام إنشاء تمامًا مثل بقية المشروع. يمكنك الإفصاح عن التبعيات الشائعة والخاصة بالنظام الأساسي باستخدام مجموعات المصادر. على سبيل المثال، إذا كان تطبيقك يستخدم Ktor للاتصال بالشبكة، عليك إضافة تبعية OkHttp لنظام التشغيل Android وتبعية darwin لنظام التشغيل iOS. تجدر الإشارة إلى أنّ بعض المكتبات لا تتطلّب سوى تبعيات شائعة ولا تحتاج إلى تبعيات خاصة بالمنصة.
sourceSets {
commonMain.dependencies {
//put your multiplatform dependencies here
//...
implementation(libs.ktor.client.core)
implementation(libs.ktor.client.content.negotiation)
implementation(libs.ktor.serialization.kotlinx.json)
//...
}
androidMain.dependencies {
implementation(libs.ktor.client.okhttp)
}
iosMain.dependencies {
implementation(libs.ktor.client.darwin)
}
}
عند إضافة مكتبة جديدة إلى الوحدة المشترَكة في تطبيقك، احرص على التحقّق من التبعيات المطلوبة لكل نظام أساسي.