0Pricing
Swift Academy · บทเรียน

แพ็กเกจไลบรารีเทียบกับแพ็กเกจโปรแกรมปฏิบัติการ

ทำความเข้าใจแพ็กเกจ ไลบรารี เทียบกับแพ็กเกจ โปรแกรมปฏิบัติการ ของ SwiftPM: วิธีประกาศผลิตภัณฑ์/เป้าหมาย เรียกใช้ไลบรารี และรันโปรแกรมปฏิบัติการ

แพ็กเกจไลบรารีเทียบกับแพ็กเกจโปรแกรมปฏิบัติการ เป็นบทเรียน Swift Academy ฟรีบน CoddyKit นี่คือบทเรียนที่ 1 จากทั้งหมด 3 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 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

คำถามที่พบบ่อย

บทเรียน “แพ็กเกจไลบรารีเทียบกับแพ็กเกจโปรแกรมปฏิบัติการ” ฟรีหรือไม่

ใช่ — ข้อความเต็มของ “แพ็กเกจไลบรารีเทียบกับแพ็กเกจโปรแกรมปฏิบัติการ” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส Swift Academy ให้อัปเกรดเป็น CoddyKit PRO คอร์ส Swift Academy มีบทเรียนทั้งหมด 3 บทเรียน

คุณจะเรียนรู้อะไรในบทเรียน “แพ็กเกจไลบรารีเทียบกับแพ็กเกจโปรแกรมปฏิบัติการ”

ทำความเข้าใจแพ็กเกจ ไลบรารี เทียบกับแพ็กเกจ โปรแกรมปฏิบัติการ ของ SwiftPM: วิธีประกาศผลิตภัณฑ์/เป้าหมาย เรียกใช้ไลบรารี และรันโปรแกรมปฏิบัติการ คุณปฏิบัติ Swift Academy ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน

คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน Swift Academy หรือไม่

ไม่จำเป็นต้องมีประสบการณ์มาก่อน Swift Academy บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 1 จากทั้งหมด 3 บทเรียน

บทเรียน “แพ็กเกจไลบรารีเทียบกับแพ็กเกจโปรแกรมปฏิบัติการ” ใช้เวลานานแค่ไหน

บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย

ฉันเขียนและรันโค้ดในบทเรียน Swift Academy นี้ได้ไหม

ได้ บทเรียน Swift Academy ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ

บทเรียนทั้งหมดในหลักสูตรนี้

  1. แพ็กเกจไลบรารีเทียบกับแพ็กเกจโปรแกรมปฏิบัติการ
  2. การกำหนดเวอร์ชันตามความหมายและการติดแท็กรุ่นเผยแพร่
  3. พื้นฐาน CI ด้วย swift test และอาร์ทิแฟกต์
← กลับไปที่ Swift Academy