إعداد البيئة (Kotlin Multiplatform)

تتيح Kotlin Multiplatform (KMP) مشاركة رمز Kotlin على جميع الأنظمة الأساسية. قبل البدء في إنشاء التطبيقات باستخدام KMP، ستحتاج إلى إعداد بيئتك كما هو موضح في هذا المستند. يمكنك أيضًا الاطّلاع على المستندات الرسمية لشركة Jetbrain.

تثبيت الأدوات المطلوبة أو تحديثها

  • ثبِّت أحدث إصدار ثابت من استوديو Android أو حدِّثه.
  • يُرجى تحديث مكوّن Kotlin الإضافي المضمّن مع "استوديو Android" إلى أحدث إصدار لتجنّب مشاكل التوافق.
  • (اختياري) لتطوير تطبيقات iOS، ثبِّت Xcode لإنشاء واجهة المستخدم وأضِف رمز Swift أو رمز Objective-C حسب الحاجة.

إنشاء مشروع Kotlin Multiplatform

يمكنك استخدام معالج 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)
   }
}

عند إضافة مكتبة جديدة إلى الوحدة المشتركة لتطبيقك، تأكد من التحقق من التبعيات المطلوبة لكل نظام أساسي.