commonMain وandroidMain وiosMain
مجموعات المصادر الثلاث التي ستستخدمونها يوميًا
commonMain وandroidMain وiosMain درس مجاني في Kotlin Multiplatform Academy على CoddyKit. هذا هو الدرس 2 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في Kotlin Multiplatform Academy، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة Kotlin Multiplatform Academy 4 دروس في المجموع.
بعض أجزاء هذا الدرس لم تُترجم بعد وتظهر باللغة الإنجليزية.
Source Sets, Not Folders
Inside shared, code lives in source sets. Each one targets a different platform, and Kotlin compiles them accordingly.
Meet commonMain
commonMain is where shared Kotlin lives. Code here compiles for every target, so it must stay platform-neutral.
Meet androidMain
androidMain holds Android-only code in the shared module. Here you can touch JVM and Android APIs freely.
Meet iosMain
iosMain holds iOS-only Kotlin. It can reach Apple frameworks through Kotlin/Native interop.
A Place for Everything
Put cross-platform logic in commonMain. Drop into androidMain or iosMain only when you truly need that platform.
What commonMain Looks Like
Plain Kotlin with no platform imports belongs in commonMain, like this small greeting function.
fun greet(name: String): String {
return "Hello, " + name
}Platform Code in androidMain
An Android API call belongs in androidMain, never in commonMain, because iOS has no such class.
import android.os.Build
fun osName(): String = Build.MODELThey Share One Name
commonMain can declare an API and each platform set fills it in. That handshake is the expect/actual pattern you will meet soon.
Folder Layout
On disk the sets sit under src: src/commonMain, src/androidMain, src/iosMain, each with its own kotlin folder.
Compilation Merges Sets
For Android the compiler merges commonMain with androidMain. For iOS it merges commonMain with iosMain.
Start in Common
A good habit: write in commonMain first, and only move code outward when the compiler tells you a platform API is missing. 🙂
Quick Check
Where should this code go?
Recap
Three homes: commonMain for shared logic, androidMain for Android-only, iosMain for iOS-only. Default to common.
الأسئلة الشائعة
هل درس «commonMain وandroidMain وiosMain» مجاني؟
نعم — نص درس «commonMain وandroidMain وiosMain» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة Kotlin Multiplatform Academy، انتقل إلى CoddyKit PRO. تتضمن دورة Kotlin Multiplatform Academy 4 دروس في المجموع.
ماذا ستتعلم في «commonMain وandroidMain وiosMain»؟
مجموعات المصادر الثلاث التي ستستخدمونها يوميًا تتمرن على Kotlin Multiplatform Academy مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.
هل أحتاج إلى خبرة سابقة لأبدأ Kotlin Multiplatform Academy؟
لا تُشترط خبرة سابقة. Kotlin Multiplatform Academy على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 2 من أصل 4.
كم من الوقت يستغرق درس «commonMain وandroidMain وiosMain»؟
معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.
هل يمكنني كتابة وتشغيل أكواد في درس Kotlin Multiplatform Academy هذا؟
نعم. كل درس في Kotlin Multiplatform Academy يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.
جميع الدروس في هذه الدورة
- الوحدة المشتركة مقابل وحدات التطبيق
- commonMain وandroidMain وiosMain
- قراءة build.gradle.kts المشترك
- أين توجد الاختبارات: commonTest وما شابهها