برای ایجاد یک ماژول Kotlin Multiplatform (KMP) در پروژه Android خود، از الگوی Kotlin Multiplatform Shared Module استفاده کنید که در Android Studio Meerkat و Android Gradle Plugin نسخه 8.8.0 و بالاتر موجود است.
قالب ماژول ایجاد یک ماژول جدید را با حداقل پیکربندی که پلتفرم های اندروید و iOS را هدف قرار می دهد، خودکار می کند.
ماژول KMP مشترک را راه اندازی کنید
برای ایجاد یک ماژول KMP مشترک، مراحل زیر را دنبال کنید:
- File > New > New Module را انتخاب کنید
- الگوی ماژول مشترک چند پلتفرمی Kotlin را در پانل Templates انتخاب کنید:

فیلدهای قالب به شرح زیر است:
- نام ماژول - نام ماژول Gradle و همچنین نام فریمورک iOS را مشخص می کند (بعداً می توان تغییر داد)
- نام بسته - نام بسته را برای فایل های این ماژول تعریف می کند
- روی Finish کلیک کنید و به Gradle اجازه دهید با پروژه همگام شود. همچنین ممکن است از شما خواسته شود که فایل های ماژول جدید ایجاد شده را به کنترل منبع اضافه کنید.
پس از تکمیل، نمای پروژه اندروید استودیو ماژول مشترک جدید را به همراه یک مجموعه منبع برای هر پلتفرم نشان می دهد.
ماژول مشترک را به برنامه Android پیوند دهید
جادوگر ماژول ماژول جدید ایجاد شده را به عنوان یک وابستگی به ماژول موجود اضافه نمی کند. در مرحله بعدی، باید ماژول اشتراکگذاری شده را به یکی از ماژولهای Gradle موجود خود پیوند دهید، مشابه سایر وابستگیهای اندروید.
dependencies {
...
implementation(project(":shared"))
}
پس از فعال شدن، می توانید طبق معمول به کد دسترسی پیدا کنید. از برنامه Android، میتوانید به کدهایی دسترسی پیدا کنید که در AndroidMain یا CommonMain موجود است.
برای کسب اطلاعات بیشتر در مورد ساختار پروژه چند پلتفرمی Kotlin، به اصول ساختار پروژه چند پلتفرمی Kotlin مراجعه کنید.
ماژول مشترک را در برنامه iOS تنظیم کنید
سوئیفت نمی تواند مستقیماً از ماژول های Kotlin استفاده کند و برای تولید یک فریم ورک باینری کامپایل شده نیاز دارد.
قالب جدید ماژول در اندروید استودیو ماژول مشترک را برای تولید یک چارچوب برای هر یک از معماریهای iOS پیکربندی میکند. می توانید کد زیر را در فایل build.gradle.kts
ماژول مشترک پیدا کنید:
val xcfName = "sharedKit"
iosX64 {
binaries.framework {
baseName = xcfName
}
}
iosArm64 {
binaries.framework {
baseName = xcfName
}
}
iosSimulatorArm64 {
binaries.framework {
baseName = xcfName
}
}
برای اطلاعات در مورد تعریف انواع معماری دیگر، ساختار پروژه سلسله مراتبی را ببینید.
کتابخانه مشترک را در پروژه iOS پیوند دهید
برای فعال کردن دسترسی به کد به اشتراک گذاشته شده از پروژه iOS، قبل از کامپایل کردن منابع سوئیفت، یک مرحله اسکریپت برای تولید چارچوب Kotlin اضافه کنید:
- روی فایل در Android Studio کلیک راست کرده و Open In و Open in Associated Application را انتخاب کنید. با این کار برنامه iOS در Xcode باز می شود.

- تنظیمات پروژه را با دوبار کلیک کردن روی نام پروژه در ناوبر پروژه باز کنید

- نام پیشفرض Run Script را به Compile Kotlin Framework تغییر دهید تا بهتر تشخیص دهید این فاز چه کاری انجام میدهد. برای ویرایش عنوان Run Script دوبار کلیک کنید.
- فاز ساخت را گسترش دهید و در قسمت متن پوسته ، کد اسکریپت زیر را وارد کنید:

فاز Run Script را قبل از فاز Compile Sources بکشید.
شکل 6. مرحله ساخت اسکریپت را قبل از کامپایل منابع اجرا کنید با کلیک بر روی ⌘B یا رفتن به منوی Product و انتخاب Build ، پروژه را در Xcode بسازید.
هنگامی که ساخت موفق شد، نماد زیر را مشاهده خواهید کرد.

به کد مشترک در برنامه iOS دسترسی پیدا کنید
برای تأیید اینکه برنامه iOS می تواند با موفقیت به کد ماژول مشترک دسترسی پیدا کند، موارد زیر را انجام دهید:
- در پروژه iOS، فایل
ContentView.swift
را در آدرس زیر باز کنید:Sources/View/ContentView.swift
- import
sharedKit
را در بالای فایل اضافه کنید. - نمای متن را تغییر دهید تا اطلاعات
Platform_iosKt.platform()
را در رشته نمایش داده شده به صورت زیر اضافه کنید:
این بهروزرسانی بررسی میکند که آیا برنامه میتواند تابع platform()
از ماژول مشترک فراخوانی کند، که باید هنگام اجرا بر روی پلتفرم iOS، «iOS» را برگرداند.

منابع اضافی
اگر در توسعه KMP تازه کار هستید، برای راهنمای بیشتر به مستندات رسمی KMP مراجعه کنید. اگر در توسعه iOS تازه کار هستید، به مستندات Swift Basics مراجعه کنید.