0Pricing
Swift Academy · Pelajaran

Package Lokal dan Modul Fitur

Mengekstrak fitur ke package Swift lokal untuk build yang lebih cepat dan isolasi.

Package Lokal dan Modul Fitur adalah pelajaran Swift Academy gratis di CoddyKit. Ini adalah pelajaran 2 dari 4. 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 4 pelajaran total.

Mengapa Modul Fitur?

Memisahkan aplikasi menjadi paket lokal memberlakukan enkapsulasi, mempercepat kompilasi bertahap, dan memungkinkan pengembangan tim secara paralel.

// Without modules: one giant target recompiles everything
// With modules: changes to FeatureA only recompile FeatureA

Membuat Paket Lokal

Buat direktori di samping proyek Xcode Anda, lalu jalankan swift package init di dalamnya.

mkdir Features/UserProfile
cd Features/UserProfile
swift package init --name UserProfile --type library

Menambahkan ke Proyek Xcode

Seret direktori paket lokal ke navigator proyek Xcode. Xcode akan mendeteksinya secara otomatis sebagai paket SPM.

// In Xcode:
// File → Add Package Dependencies → Add Local...
// Select the package directory

Mereferensikan Paket Lokal

Dalam Package.swift aplikasi Anda (atau melalui Xcode), referensikan paket lokal dengan .package(path:).

.package(path: "../Features/UserProfile"),
// In the target:
.product(name: "UserProfile", package: "UserProfile")

Permukaan API Publik

Hanya deklarasi public dan open dalam paket lokal yang dapat diakses dari aplikasi. Gunakan kontrol akses untuk menentukan batas modul.

// UserProfile/Sources/UserProfile/ProfileView.swift
public struct ProfileView: View {
  public init() {}
  public var body: some View { Text("Profile") }
}

Implementasi Internal

Semua tipe internal tidak terlihat di luar modul, sehingga enkapsulasi diberlakukan secara otomatis.

// Only visible within UserProfile module:
final class ProfileCache { ... }
struct ProfileMapper { ... }

Struktur Modul Fitur

Setiap modul fitur memiliki lapisan Ranah, Data, dan Presentasinya sendiri secara internal.

// UserProfile/
// ├── Sources/UserProfile/
// │   ├── Domain/         (entities, use cases, protocols)
// │   ├── Data/           (repositories)
// │   └── Presentation/   (views, view models)
// └── Tests/UserProfileTests/

Modul Inti Bersama

Ekstrak kebutuhan lintas fitur (jaringan, analitik, sistem desain) ke dalam modul bersama yang diimpor oleh modul fitur.

// CoreNetwork package
// CoreDesign package
// Both imported by FeatureA and FeatureB

Grafik Dependensi

Modul fitur tidak boleh bergantung langsung satu sama lain. Dependensi bersama mengalir melalui modul Inti untuk menghindari keterikatan.

// GOOD:
// FeatureA → CoreNetwork
// FeatureB → CoreNetwork
// BAD:
// FeatureA → FeatureB  (tight coupling)

Manfaat Waktu Kompilasi

Dengan batas modul yang bersih, Xcode hanya mengompilasi ulang modul yang terdampak ketika file sumber berubah.

// Change in UserProfile → only UserProfile recompiles
// App target links the new binary → fast incremental build

Menguji Modul Fitur

Setiap modul fitur memiliki target pengujiannya sendiri, sehingga memungkinkan pelaksanaan pengujian secara paralel dan CI yang lebih cepat.

// Run all tests:
swift test --package-path Features/UserProfile
// Or let Xcode run them as part of the main test plan

Pemeriksaan Singkat

Tingkat akses apa yang diperlukan untuk deklarasi dalam paket Swift lokal agar dapat digunakan dari target aplikasi?

Ringkasan Pelajaran

Buat paket fitur lokal dengan swift package init, referensikan melalui .package(path:), dan ekspos hanya tipe public. Ekstrak utilitas bersama ke dalam modul Inti. Modul fitur tidak boleh bergantung satu sama lain. Batas modul yang bersih secara drastis mengurangi waktu kompilasi bertahap.

Pertanyaan yang Sering Diajukan

Apakah pelajaran “Package Lokal dan Modul Fitur” gratis?

Ya — teks lengkap “Package Lokal dan Modul Fitur” 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 4 pelajaran total.

Apa yang akan aku pelajari di “Package Lokal dan Modul Fitur”?

Mengekstrak fitur ke package Swift lokal untuk build yang lebih cepat dan isolasi. 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 2 dari 4.

Berapa lama pelajaran “Package Lokal dan Modul Fitur” 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. Package.swift: Target, Produk, dan Dependensi
  2. Package Lokal dan Modul Fitur
  3. Target Biner dan XCFramework
  4. Pemberian Versi, Penyelesaian Konflik, dan Plugin Swift
← Kembali ke Swift Academy