Kotlin Academy · درس

نظرة عامة على Kotlin/Native: الأهداف وسلسلة الأدوات والترجمة

تعرّف على أهداف Kotlin/Native المتاحة، وترجم ملف CLI ثنائيًا بسيطًا

الدرس 1 من 413 خطوة

نظرة عامة على Kotlin/Native: الأهداف وسلسلة الأدوات والترجمة درس مجاني في Kotlin Academy على CoddyKit. هذا هو الدرس 1 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في Kotlin Academy، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة Kotlin Academy 4 دروس في المجموع.

ما Kotlin/Native؟

تترجم Kotlin/Native شيفرة Kotlin المصدرية مباشرةً إلى شيفرة آلة أصلية عبر LLVM، من دون بيئة تشغيل JVM أو Dalvik. والنتيجة ملف ثنائي مستقل بذاته، فلا يلزم تثبيت JVM على الجهاز المستهدف.

الأهداف المدعومة

تدعم Kotlin/Native مجموعة واسعة من الأهداف:

  • macOS / iOS: macosX64 وmacosArm64 وiosX64 وiosArm64 وiosSimulatorArm64
  • Linux: linuxX64 وlinuxArm64
  • Windows: mingwX64
  • الأنظمة المضمنة / watchOS / tvOS: أهداف متنوعة

مسار الترجمة

يمر مسار ترجمة Kotlin/Native بالمراحل التالية: مصدر Kotlin ← Kotlin IR، أي التمثيل الوسيط، ← LLVM IR ← ملف ثنائي أصلي. يتولى المترجم konanc هذه العملية، لكنك تستخدم عملياً دائماً إضافة Kotlin Multiplatform الخاصة بـ Gradle.

إعداد هدف Native في Gradle

في مشروع Kotlin Multiplatform، صرّح عن الأهداف الأصلية في build.gradle.kts:

kotlin {
    macosArm64("macos") {
        binaries {
            executable { entryPoint = "main" }
        }
    }
    linuxX64("linux") {
        binaries { executable { entryPoint = "main" } }
    }
}

مجموعات المصادر للأهداف الأصلية

تشارك الأهداف الأصلية مجموعتي commonMain وcommonTest مع المنصات الأخرى. وتوضع الشفرة الخاصة بالهدف في مجموعات مصادر مثل macosMain أو linuxX64Main. استخدم expect وactual للتعامل مع واجهات برمجة التطبيقات الخاصة بالمنصة.

أنواع الملفات الثنائية الناتجة

يمكن لـ Kotlin/Native إنتاج عدة أنواع من الملفات الثنائية:

  • executable — برنامج مستقل لسطر الأوامر
  • staticLib — مكتبة ثابتة لربطها بمشاريع C وC++
  • sharedLib — مكتبة ديناميكية ‏(.dylib / .so / .dll)
  • framework — إطار عمل Apple للتكامل مع iOS وmacOS

تشغيل الاختبارات الأصلية

شغّل الاختبارات الأصلية باستخدام ./gradlew macosArm64Test، أو باستخدام مهمة الهدف المناسبة. تُترجم الاختبارات إلى ملف ثنائي أصلي وتُنفّذ على الجهاز المضيف، من دون مشاركة JVM في العملية.

قيود الترجمة المتقاطعة

الترجمة المتقاطعة في Kotlin/Native محدودة: لا يمكنك الترجمة لأهداف Apple إلا على macOS، مع اشتراط Xcode. ويمكن ترجمة أهداف Linux وWindows على أي مضيف مدعوم. تستخدم مسارات التكامل المستمر عادةً وكلاء macOS لأهداف Apple.

تنسيق klib

تُوزّع مكتبات Kotlin/Native على هيئة ملفات .klib، وهو تنسيق مكتبات مستقل عن المنصة خاص بـ Kotlin. وتُحلّ التبعيات على هيئة ملفات .klib، ثم تُربط بالملف الثنائي النهائي وقت الترجمة.

Kotlin/Native في تطبيق KMP لنظام iOS

في مشروع Kotlin Multiplatform Mobile (KMM) قياسي، تُترجم الشفرة المشتركة إلى framework من Apple يربطه Xcode بتطبيق iOS. وتستدعي شيفرة Swift أو Objective-C واجهات Kotlin البرمجية من خلال الترويسات المُنشأة.

خصائص الأداء

تبدأ الملفات الثنائية الأصلية فوراً، لعدم وجود وقت لبدء تشغيل JVM، وتستهلك مساحة ذاكرة أقل، كما تلائم أدوات سطر الأوامر وتطبيقات Linux على الخادم والمنطق المشترك في iOS وmacOS. قد تتفوق تطبيقات JVM طويلة التشغيل في الأداء بفضل تحسينات JIT، لكن مزايا سرعة البدء واستهلاك الذاكرة تجعل Native مناسباً للعديد من حالات الاستخدام.

اختبار سريع

أي نوع ثنائي في Gradle ينتج إطار عمل من Apple من Kotlin/Native لاستخدامه في مشروع iOS ضمن Xcode؟

مراجعة: نظرة عامة على Kotlin/Native

أهم النقاط:

  • تترجم Kotlin/Native إلى شيفرة آلة أصلية عبر LLVM، ولا تتطلب JVM
  • تدعم أهداف macOS وiOS وLinux وWindows وwatchOS وtvOS
  • تُضبط الأهداف وأنواع الملفات الثنائية في إضافة KMP الخاصة بـ Gradle
  • تتطلب أهداف Apple نظام macOS مع Xcode، وتوجد قيود على الترجمة المتقاطعة بين المنصات
  • تُوزّع المكتبات على هيئة .klib، ويتم التكامل مع iOS عبر الملف الثنائي framework
البدء مجانًا

تعلم Kotlin مع معلم ذكاء اصطناعي — مجانًا

اكتب وقم بتشغيل أكوادك الفعلية في المتصفح، واحصل على مساعدة فورية من معلم ذكاء اصطناعي متاح 24/7، واستمر من حيث توقفت على الويب أو في التطبيق.

الدورات
51
الدروس
203

الأسئلة الشائعة

هل درس «نظرة عامة على Kotlin/Native: الأهداف وسلسلة الأدوات والترجمة» مجاني؟

نعم — نص درس «نظرة عامة على Kotlin/Native: الأهداف وسلسلة الأدوات والترجمة» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة Kotlin Academy، انتقل إلى CoddyKit PRO. تتضمن دورة Kotlin Academy 4 دروس في المجموع.

ماذا ستتعلم في «نظرة عامة على Kotlin/Native: الأهداف وسلسلة الأدوات والترجمة»؟

تعرّف على أهداف Kotlin/Native المتاحة، وترجم ملف CLI ثنائيًا بسيطًا تتمرن على Kotlin Academy مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.

هل أحتاج إلى خبرة سابقة لأبدأ Kotlin Academy؟

لا تُشترط خبرة سابقة. Kotlin Academy على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 1 من أصل 4.

كم من الوقت يستغرق درس «نظرة عامة على Kotlin/Native: الأهداف وسلسلة الأدوات والترجمة»؟

معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.

هل يمكنني كتابة وتشغيل أكواد في درس Kotlin Academy هذا؟

نعم. كل درس في Kotlin Academy يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.

جميع الدروس في هذه الدورة

  1. نظرة عامة على Kotlin/Native: الأهداف وسلسلة الأدوات والترجمة
  2. إدارة الذاكرة في Kotlin/Native: مدير الذاكرة الجديد
  3. التكامل مع C باستخدام cinterop وملفات .def
  4. Kotlin/WASM: الترجمة إلى WebAssembly للمتصفح
← العودة إلى Kotlin Academy