แพ็กเกจไลบรารีเทียบกับแพ็กเกจโปรแกรมปฏิบัติการ
ทำความเข้าใจแพ็กเกจ ไลบรารี เทียบกับแพ็กเกจ โปรแกรมปฏิบัติการ ของ 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 ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ
บทเรียนทั้งหมดในหลักสูตรนี้
- แพ็กเกจไลบรารีเทียบกับแพ็กเกจโปรแกรมปฏิบัติการ
- การกำหนดเวอร์ชันตามความหมายและการติดแท็กรุ่นเผยแพร่
- พื้นฐาน CI ด้วย swift test และอาร์ทิแฟกต์