0Pricing
Swift Academy · درس

حزم المكتبات مقابل الحزم التنفيذية

افهم الفرق في SwiftPM بين حزم المكتبات والحزم التنفيذية : كيفية تعريف المنتجات والأهداف، واستخدام المكتبات، وتشغيل الملفات التنفيذية.

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

نوعا المنتج

يمكن لحزم SwiftPM أن تُوزَّع على هيئة مكتبة (شفرة لاستيرادها) أو ملف تنفيذي (أداة قابلة للتشغيل).

  • صرّح عن المنتجات في Package.swift
  • نظّم الأهداف والمصادر
  • استخدم المكتبات؛ وشغّل الملفات التنفيذية

أساسيات منتج المكتبة

تُعرِض المكتبة وحدات يمكن للآخرين استيرادها باستخدام import. ولا تتطلب نقطة دخول.

// Package.swift (illustrative library)
// import PackageDescription
// let package = Package(
//   name: "GreeterLib",
//   products: [
//     .library(name: "GreeterLib", targets: ["GreeterLib"]),
//   ],
//   targets: [
//     .target(name: "GreeterLib"),
//     .testTarget(name: "GreeterLibTests", dependencies: ["GreeterLib"]),
//   ]
// )
//
// Sources/GreeterLib/Greeter.swift
public struct Greeter {
    public init() {}
    public func hello(_ name: String) -> String { "Hello, \\(name)!" }
}
print(Greeter().hello("Ana")) // demo run

أساسيات المنتج التنفيذي

يحتوي الملف التنفيذي على نقطة دخول (main.swift) وينشئ ملفًا ثنائيًا قابلًا للتشغيل (swift run).

// Package.swift (illustrative executable)
// import PackageDescription
// let package = Package(
//   name: "greeter",
//   products: [ .executable(name: "greeter", targets: ["App"]) ],
//   targets: [ .executableTarget(name: "App") ]
// )
//
// Sources/App/main.swift
let args = CommandLine.arguments.dropFirst()
let who = args.first ?? "world"
print("Hello, \\(who)")

الاعتماد على المكتبات

استخدم .package و.product في المستهلك لاستيراد مكتبة. ثبّت الإصدار باستخدام الإصدارات الدلالية (مثل from: "1.0.0").

// In the consumer's Package.swift (illustrative):
// dependencies: [
//   .package(url: "https://example.com/GreeterLib.git", from: "1.0.0")
// ],
// targets: [
//   .executableTarget(
//     name: "App",
//     dependencies: [ .product(name: "GreeterLib", package: "GreeterLib") ]
//   )
// ]
//
// Sources/App/main.swift
// import GreeterLib
struct Dummy {}
print("Add import GreeterLib in your app to use its APIs.")

فصل المسؤوليات

شارك الشفرة: ضع المنطق الأساسي في مكتبة، وأبقِ الملف التنفيذي غلافًا رقيقًا.

// Package.swift can expose both a library and an executable:
// products: [
//   .library(name: "GreeterLib", targets: ["GreeterLib"]),
//   .executable(name: "greeter", targets: ["GreeterCLI"]),
// ],
// targets: [
//   .target(name: "GreeterLib"),
//   .executableTarget(name: "GreeterCLI", dependencies: ["GreeterLib"]),
// ]
//
// Reuse logic in the library; keep CLI thin.
print("Tip: put reusable logic in the library; the CLI depends on it.")

أوامر البناء والتشغيل

أنشئ المكتبات باستخدام swift build واختبرها باستخدام swift test. شغّل الملفات التنفيذية عبر swift run <name>.

// Library: build & test
//   swift build
//   swift test
//
// Executable: run & release
//   swift run greeter Ana
//   swift build -c release
//
// Artifact:
//   .build/release/greeter
print("Use swift run for executables; import libraries into apps.")

تعريف المكتبة والملف التنفيذي

مراجعة سريعة: ما الفرق بين المكتبة والملف التنفيذي في SwiftPM؟

مراجعة

مراجعة: استخدم مكتبة لمشاركة الشفرة بين التطبيقات، وملفًا تنفيذيًا لتوزيع CLI أو أداة. صرّح عن المنتجات والأهداف في Package.swift، واعتمد على المكتبات عبر .package + .product.

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

هل درس «حزم المكتبات مقابل الحزم التنفيذية» مجاني؟

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

ماذا ستتعلم في «حزم المكتبات مقابل الحزم التنفيذية»؟

افهم الفرق في SwiftPM بين حزم المكتبات والحزم التنفيذية : كيفية تعريف المنتجات والأهداف، واستخدام المكتبات، وتشغيل الملفات التنفيذية. تتمرن على Swift Academy مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.

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

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

كم من الوقت يستغرق درس «حزم المكتبات مقابل الحزم التنفيذية»؟

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

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

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

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

  1. حزم المكتبات مقابل الحزم التنفيذية
  2. الإصدار الدلالي ووسم الإصدارات
  3. أساسيات CI باستخدام swift test والمخرجات
← العودة إلى Swift Academy