با مجموعهها، منظم بمانید
ذخیره و طبقهبندی محتوا براساس اولویتهای شما.
برای ایجاد یک ماژول 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 انتخاب کنید:
شکل 1. ایجاد یک ماژول KMP جدید
فیلدهای قالب به شرح زیر است:
نام ماژول - نام ماژول Gradle و همچنین نام فریمورک iOS را مشخص می کند (بعداً می توان تغییر داد)
نام بسته - نام بسته را برای فایل های این ماژول تعریف می کند
روی Finish کلیک کنید و به Gradle اجازه دهید با پروژه همگام شود. همچنین ممکن است از شما خواسته شود که فایل های ماژول جدید ایجاد شده را به کنترل منبع اضافه کنید.
پس از تکمیل، نمای پروژه اندروید استودیو ماژول مشترک جدید را به همراه یک مجموعه منبع برای هر پلتفرم نشان می دهد. شکل 2. نمای پروژه که ماژول های مشترک جدید را نشان می دهد
ماژول مشترک را به برنامه Android پیوند دهید
جادوگر ماژول ماژول جدید ایجاد شده را به عنوان یک وابستگی به ماژول موجود اضافه نمی کند. در مرحله بعدی، باید ماژول اشتراکگذاری شده را به یکی از ماژولهای Gradle موجود خود پیوند دهید، مشابه سایر وابستگیهای اندروید.
پس از فعال شدن، می توانید طبق معمول به کد دسترسی پیدا کنید. از برنامه Android، میتوانید به کدهایی دسترسی پیدا کنید که در AndroidMain یا CommonMain موجود است.
سوئیفت نمی تواند مستقیماً از ماژول های Kotlin استفاده کند و برای تولید یک فریم ورک باینری کامپایل شده نیاز دارد.
قالب جدید ماژول در اندروید استودیو ماژول مشترک را برای تولید یک چارچوب برای هر یک از معماریهای iOS پیکربندی میکند. می توانید کد زیر را در فایل build.gradle.kts ماژول مشترک پیدا کنید:
برای فعال کردن دسترسی به کد به اشتراک گذاشته شده از پروژه iOS، قبل از کامپایل کردن منابع سوئیفت، یک مرحله اسکریپت برای تولید چارچوب Kotlin اضافه کنید:
روی فایل در Android Studio کلیک راست کرده و Open In و Open in Associated Application را انتخاب کنید. با این کار برنامه iOS در Xcode باز می شود.
شکل 3. باز کردن در برنامه مرتبط
تنظیمات پروژه را با دوبار کلیک کردن روی نام پروژه در ناوبر پروژه باز کنید
شکل 4. گفتگوی تنظیمات پروژه Xcode
نام پیشفرض Run Script را به Compile Kotlin Framework تغییر دهید تا بهتر تشخیص دهید این فاز چه کاری انجام میدهد. برای ویرایش عنوان Run Script دوبار کلیک کنید.
فاز ساخت را گسترش دهید و در قسمت متن پوسته ، کد اسکریپت زیر را وارد کنید:
شکل 5. مرحله ساخت اسکریپت را اجرا کنید
فاز Run Script را قبل از فاز Compile Sources بکشید. شکل 6. مرحله ساخت اسکریپت را قبل از کامپایل منابع اجرا کنید
با کلیک بر روی ⌘B یا رفتن به منوی Product و انتخاب Build ، پروژه را در Xcode بسازید.
هنگامی که ساخت موفق شد، نماد زیر را مشاهده خواهید کرد.
شکل 7. ساخت موفق
به کد مشترک در برنامه iOS دسترسی پیدا کنید
برای تأیید اینکه برنامه iOS می تواند با موفقیت به کد ماژول مشترک دسترسی پیدا کند، موارد زیر را انجام دهید:
در پروژه iOS، فایل ContentView.swift در آدرس زیر باز کنید: Sources/View/ContentView.swift
import sharedKit در بالای فایل اضافه کنید.
نمای متن را تغییر دهید تا اطلاعات Platform_iosKt.platform() را در رشته نمایش داده شده به صورت زیر اضافه کنید:
این بهروزرسانی بررسی میکند که آیا برنامه میتواند تابع platform() را از ماژول مشترک فراخوانی کند، که باید هنگام اجرا بر روی پلتفرم iOS، «iOS» را برگرداند.
شکل 8. شبیه ساز Xcode که برنامه iOS را اجرا می کند
منابع اضافی
اگر در توسعه KMP تازه کار هستید، برای راهنمای بیشتر به مستندات رسمی KMP مراجعه کنید.
محتوا و نمونه کدها در این صفحه مشمول پروانههای توصیفشده در پروانه محتوا هستند. جاوا و OpenJDK علامتهای تجاری یا علامتهای تجاری ثبتشده Oracle و/یا وابستههای آن هستند.
تاریخ آخرین بهروزرسانی 2025-07-29 بهوقت ساعت هماهنگ جهانی.
[[["درک آسان","easyToUnderstand","thumb-up"],["مشکلم را برطرف کرد","solvedMyProblem","thumb-up"],["غیره","otherUp","thumb-up"]],[["اطلاعاتی که نیاز دارم وجود ندارد","missingTheInformationINeed","thumb-down"],["بیشازحد پیچیده/ مراحل بسیار زیاد","tooComplicatedTooManySteps","thumb-down"],["قدیمی","outOfDate","thumb-down"],["مشکل ترجمه","translationIssue","thumb-down"],["مشکل کد / نمونهها","samplesCodeIssue","thumb-down"],["غیره","otherDown","thumb-down"]],["تاریخ آخرین بهروزرسانی 2025-07-29 بهوقت ساعت هماهنگ جهانی."],[],[],null,["# Add Kotlin Multiplatform to an existing project\n\nTo create a Kotlin Multiplatform (KMP) module within your Android project, use\nthe **Kotlin Multiplatform Shared Module** template, available in Android Studio\nMeerkat and Android Gradle Plugin [version 8.8.0](https://maven.google.com/web/index.html?q=build#com.android.tools.build:gradle) and higher.\n\nThe module template automates the creation of a new module with the minimum\nconfiguration targeting Android and iOS platforms.\n| **Note:** If you want to build an iOS app, you need a macOS machine with [Xcode\n| installed](https://developer.apple.com/documentation/safari-developer-tools/installing-xcode-and-simulators). You also need to install an iOS simulator, or have an iPhone [prepared for developing](https://developer.apple.com/documentation/xcode/running-your-app-in-simulator-or-on-a-device#Connect-real-devices-to-your-Mac), to run the app.\n\nSet up the shared KMP module\n----------------------------\n\nTo create a shared KMP module, follow these steps:\n\n1. Select **File \\\u003e New \\\u003e New Module**\n2. Select the **Kotlin Multiplatform Shared Module** template in the **Templates** panel:\n\n**Figure 1.** Creating a new KMP Module\n\nThe fields in the template are the following:\n\n- **Module name** -- defines the Gradle module name, as well as the iOS framework name (can be changed later)\n- **Package name** -- defines the package name for files in this module\n 1. Click **Finish** and allow Gradle to sync with the project. You might also be prompted to add the newly created module files to source control.\n\n| **Note:** The generated module includes some basic placeholder functions and tests. These placeholder functions ensure that the module compiles and runs successfully..\n\nOnce complete, the Android Studio **Project View** shows the new shared module\nalong with a sourceset for each platform.\n**Figure 2.** Project view showing new shared modules\n\n\u003cbr /\u003e\n\nLink the shared module to the Android app\n-----------------------------------------\n\nThe module wizard doesn't add the newly created module as a dependency to any\nexisting module. As a next step, you need to link the shared module to one of\nyour existing Gradle modules similarly to other Android dependencies \n\n dependencies {\n ...\n implementation(project(\":shared\"))\n }\n\n| **Note:** If your project enabled Gradle's [Type-safe project\n| accessors](https://docs.gradle.org/current/userguide/declaring_dependencies_basics.html#sec:type-safe-project-accessors) feature, you can access the shared module with projects.shared.\n\nOnce enabled, you can access code as usual. From the Android app, you're able to\naccess code that is available either in androidMain or in commonMain.\n\nFor more information on Kotlin Multiplatform project structure, see the [basics\nof Kotlin Multiplatform project structure](https://kotlinlang.org/docs/multiplatform-discover-project.html)\n\nSet up the shared module to the iOS app\n---------------------------------------\n\nSwift can't use Kotlin modules directly and requires a compiled binary framework\nto be produced.\n| **Note:** Kotlin Gradle Plugin also supports [Swift Package Manager\n| integration](https://kotlinlang.org/docs/native-spm.html) or [Cocoapods integration](https://kotlinlang.org/docs/native-cocoapods.html) to share and consume the common code built for Kotlin \\& Native (iOS).\n\nThe new module template in Android Studio configures the shared module to\nproduce a framework for each of the iOS architectures. You can find the\nfollowing code in the shared module's `build.gradle.kts` file: \n\n val xcfName = \"sharedKit\"\n\n iosX64 {\n binaries.framework {\n baseName = xcfName\n }\n }\n\n iosArm64 {\n binaries.framework {\n baseName = xcfName\n }\n }\n\n iosSimulatorArm64 {\n binaries.framework {\n baseName = xcfName\n }\n }\n\nSee [Hierarchical project structure](https://kotlinlang.org/docs/multiplatform-hierarchy.html) for information on defining\nother architecture types.\n| **Note:** The output framework is called sharedKit by default, as defined in the shared module's `build.gradle.kts` file. In your own project, you can rename it as needed controlling the `xcfName` variable.\n\nLink the shared library in the iOS project\n------------------------------------------\n\nTo enable access to the shared code from the iOS project, add a script phase to\ngenerate the Kotlin framework before compiling the Swift sources:\n| **Note:** You can also open the Xcode project by double-clicking the **xcodeproj** file in Finder.\n\n1. Right-click the file in the Android Studio and select **Open In** and **Open\n in Associated Application**. This will open the iOS app in Xcode.\n\n**Figure 3.** Open in Associated Application\n\n1. Open the project settings by double-clicking the project name in the project navigator\n\n**Figure 4.** Xcode project settings dialog\n\n1. Change the default **Run Script** name to ***Compile Kotlin Framework*** to better identify what this phase does. Double-click the *Run Script* title to edit it.\n2. Expand the build phase, and in the **Shell** text field, enter the following script code:\n\n**Figure 5.** Run script build phase **Note:** `cd \"$SRCROOT/..\"` navigates the script to the root folder of the KMP Gradle project, which in this case is a parent folder. If in your case the iOS project is on a different path, you need to tweak that here.\n\n1. Drag the **Run Script** phase before the **Compile Sources** phase.\n\n **Figure 6.** Run script build phase before compile sources\n\n \u003cbr /\u003e\n\n2. Build the project in Xcode by clicking **⌘B** or navigating to the\n **Product** menu and selecting **Build**.\n\nWhen the build succeeds, you'll see the following icon.\n**Figure 7.** Build successful\n\nAccess the shared code in the iOS app\n-------------------------------------\n\nTo verify that the iOS app can successfully access code from the shared module,\ndo the following:\n\n1. In the iOS project, open the `ContentView.swift` file at: `Sources/View/ContentView.swift`\n2. Add import `sharedKit` at the top of the file.\n3. Modify the Text view to include the `Platform_iosKt.platform()` information in the displayed string as follows:\n\n| **Note:** The string interpolation in Swift uses (code) syntax.\n\nThis update checks whether the app can call the `platform()` function from the\nshared module, which should return \"iOS\" when running on the iOS platform.\n**Figure 8.** Xcode simulator running the iOS app\n\nAdditional Resources\n--------------------\n\n- If you're new to KMP development, see the [official KMP\n documentation](https://kotlinlang.org/docs/multiplatform.html) for more guides.\n- If you're new to iOS development, see [Swift Basics\n documentation](https://docs.swift.org/swift-book/documentation/the-swift-programming-language/thebasics/).\n- For common KMP setup issues, see [Possible issues and\n solutions](https://www.jetbrains.com/help/kotlin-multiplatform-dev/multiplatform-setup.html#possible-issues-and-solutions).\n- For sample apps, see [Android Kotlin Multiplatform Samples](https://github.com/android/kotlin-multiplatform-samples)."]]