הגדרת הסביבה (Kotlin Multiplatform)

Kotlin Multiplatform (KMP) מאפשר לשתף קוד Kotlin באמצעות פלטפורמות שונות. לפני שמתחילים לפתח אפליקציות באמצעות KMP, צריך להגדיר את הסביבה כפי שמתואר במסמך הזה. אפשר גם לעיין המסמכים הרשמיים של Jetbrain.

התקנה או עדכון של הכלים הנדרשים

  • מתקינים או מעדכנים את הגרסה היציבה האחרונה של Android Studio.
  • מעדכנים את הפלאגין של Kootlin שכלול בחבילה עם Android Studio לגרסה העדכנית ביותר כדי למנוע בעיות תאימות.
  • (אופציונלי) לצורכי פיתוח ב-iOS, מתקינים את Xcode כדי ליצור את ממשק משתמש ולהוסיף קוד SWIFT או Objective-C לפי הצורך.

יצירת פרויקט ב-Kotlin Multiplatform

אפשר להשתמש באשף של Kootlin Multiplatform של Jetbrains כדי יוצרים פרויקט KMP חדש. הקפידו לבחור באפשרות לא Share UI כדי שממשק המשתמש יישאר נייטיב.

מבנה הפרויקט

פרויקטים של KMP פועלים לפי מבנה דומה לזה של פרויקטים ב-Android.

פרויקט KMP מכיל מודולים ספציפיים לפלטפורמה ומודול משותף. מוסיפים למודול הרלוונטי את הקוד הספציפי לפלטפורמה. לדוגמה, הוסף את ממשק המשתמש של האפליקציה ל-Android במודול androidApp וממשק המשתמש של האפליקציה ל-iOS ב-iosApp. כל קוד שרוצים לשתף בין פלטפורמות נשמר במודול המשותף.

במודול המשותף נעשה שימוש ב-Gradle כמערכת ה-build, בדיוק כמו בשאר פרויקט. אפשר להצהיר על יחסי תלות נפוצים וספציפיים לפלטפורמה באמצעות מקורות לדוגמה, אם האפליקציה משתמשת ב-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)
   }
}

כשמוסיפים ספרייה חדשה למודול המשותף של האפליקציה, חשוב לבדוק אם יחסי התלות הנדרשים לכל פלטפורמה.