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

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

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

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

إنشاء مشروع متعدد الأنظمة الأساسية بلغة Kotlin

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

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