0Pricing
Swift Academy · Pelajaran

Paket pustaka vs paket yang dapat dieksekusi

Pahami paket pustaka vs yang dapat dieksekusi SwiftPM: cara mendeklarasikan produk/target, menggunakan pustaka, dan menjalankan program yang dapat dieksekusi.

Paket pustaka vs paket yang dapat dieksekusi adalah pelajaran Swift Academy gratis di CoddyKit. Ini adalah pelajaran 1 dari 3. Kamu bisa membaca pelajaran lengkapnya di bawah secara gratis — lalu praktikkan langsung di browser dengan editor kode bawaan dan tutor AI 24/7. Ini adalah bagian dari jalur belajar Swift Academy, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus Swift Academy mencakup 3 pelajaran total.

Dua tipe produk

Paket SwiftPM dapat dikirim sebagai library (kode yang dapat diimpor) atau executable (alat yang dapat dijalankan).

  • Nyatakan produk dalam Package.swift
  • Atur target dan sumber
  • Gunakan library; jalankan executable

Dasar-dasar produk library

library mengekspos modul yang dapat di-import oleh pihak lain. Titik masuk tidak diperlukan.

// 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

Dasar-dasar produk executable

executable memiliki titik masuk (main.swift) dan membangun biner yang dapat dijalankan (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)")

Bergantung pada library

Gunakan .package dan .product dalam konsumen untuk mengimpor library. Tetapkan versi semantik (misalnya, 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.")

Memisahkan tanggung jawab

Bagikan kode: letakkan logika inti dalam library, dan pertahankan executable sebagai pembungkus tipis.

// 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.")

Perintah membangun dan menjalankan

Bangun library dengan swift build dan jalankan pengujian dengan swift test. Jalankan executable melalui 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.")

Definisi library dan executable

Pemeriksaan singkat: Apa yang membedakan library dari executable dalam SwiftPM?

Ringkasan

Ringkasan: Gunakan library untuk membagikan kode di berbagai aplikasi dan executable untuk mengirimkan CLI/alat. Nyatakan produk dan target dalam Package.swift, lalu bergantunglah pada library melalui .package + .product.

Pertanyaan yang Sering Diajukan

Apakah pelajaran “Paket pustaka vs paket yang dapat dieksekusi” gratis?

Ya — teks lengkap “Paket pustaka vs paket yang dapat dieksekusi” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus Swift Academy, upgrade ke CoddyKit PRO. Kursus Swift Academy mencakup 3 pelajaran total.

Apa yang akan aku pelajari di “Paket pustaka vs paket yang dapat dieksekusi”?

Pahami paket pustaka vs yang dapat dieksekusi SwiftPM: cara mendeklarasikan produk/target, menggunakan pustaka, dan menjalankan program yang dapat dieksekusi. Kamu berlatih Swift Academy dengan kode praktik yang langsung kamu jalankan di browser, dan tutor AI 24/7 menjawab pertanyaanmu saat kamu mengerjakan pelajaran ini.

Apakah aku perlu pengalaman untuk memulai Swift Academy?

Tidak diperlukan pengalaman sebelumnya. Swift Academy di CoddyKit dirancang untuk pemula hingga pelajar tingkat lanjut, jadi kamu bisa memulai di sini atau dari awal dan belajar sesuai kecepatan kamu sendiri. Ini adalah pelajaran 1 dari 3.

Berapa lama pelajaran “Paket pustaka vs paket yang dapat dieksekusi” memakan waktu?

Sebagian besar pelajaran CoddyKit memakan waktu sekitar 5–10 menit. Setiap pelajaran ringkas dan interaktif, jadi kamu membuat kemajuan stabil dan melanjutkan dari tempat kamu tinggalkan di web dan aplikasi.

Bisakah aku menulis dan menjalankan kode dalam pelajaran Swift Academy ini?

Ya. Setiap pelajaran Swift Academy menyertakan editor kode bawaan, jadi kamu menulis dan menjalankan kode nyata langsung di browser dan mendapatkan umpan balik AI instan — tidak diperlukan penyiapan lokal.

Semua pelajaran dalam kursus ini

  1. Paket pustaka vs paket yang dapat dieksekusi
  2. Pembuatan versi semantik dan penandaan rilis
  3. Dasar-dasar CI dengan swift test dan artefak
← Kembali ke Swift Academy