Swift Academy · Ders

Yerel Paketler ve Özellik Modülleri

Daha hızlı derlemeler ve yalıtım için özellikleri yerel Swift paketlerine çıkarın.

2. ders / 413 adım

Yerel Paketler ve Özellik Modülleri, CoddyKit'te ücretsiz bir Swift Academy dersidir. Bu, 4 dersinin 2. dersidir. Aşağıdan dersin tamamını ücretsiz okuyabilir, sonra tarayıcıda yerleşik kod editörü ve 7/24 yapay zeka koçu ile uygulamalı olarak pratik yapabilirsin. Bu, Swift Academy öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. Swift Academy kursu toplamda 4 dersten oluşur.

Özellik Modülleri Neden Kullanılır?

Bir uygulamayı yerel paketlere bölmek kapsüllemeyi zorunlu kılar, artımlı derlemeleri hızlandırır ve ekiplerin paralel geliştirme yapmasını sağlar.

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

Yerel Paket Oluşturma

Xcode projenizin yanında bir dizin oluşturun ve içinde swift package init komutunu çalıştırın.

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

Xcode Projesine Ekleme

Yerel paket dizinini Xcode'un proje gezginine sürükleyin. Xcode bunu otomatik olarak bir SPM paketi olarak algılar.

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

Yerel Pakete Başvurma

Uygulamanızın Package.swift dosyasında (veya Xcode aracılığıyla) yerel paketlere .package(path:) ile başvurun.

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

Genel API Yüzeyi

Yerel paketteki yalnızca public ve open bildirimlerine uygulamadan erişilebilir. Modül sınırını tanımlamak için erişim denetimini kullanın.

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

Dahili Gerçekleme

Tüm internal türler modülün dışında görünmez; böylece kapsülleme otomatik olarak uygulanır.

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

Özellik Modülü Yapısı

Her özellik modülü kendi Alan, Veri ve Sunum katmanlarına dahili olarak sahip olur.

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

Paylaşılan Çekirdek Modülü

Ağ iletişimi, analiz ve tasarım sistemi gibi ortak altyapı ihtiyaçlarını özellik modüllerinin içe aktardığı paylaşılan bir modüle çıkarın.

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

Bağımlılık Grafiği

Özellik modülleri doğrudan birbirine bağımlı olmamalıdır. Sıkı bağımlılıktan kaçınmak için paylaşılan bağımlılıklar bir Çekirdek modülü üzerinden akar.

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

Derleme Süresi Avantajları

Temiz modül sınırları sayesinde kaynak dosyaları değiştiğinde Xcode yalnızca etkilenen modülleri yeniden derler.

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

Özellik Modüllerini Test Etme

Her özellik modülünün kendi test hedefi vardır; bu da testlerin paralel yürütülmesini ve CI süreçlerinin hızlanmasını sağlar.

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

Kısa Kontrol

Yerel bir Swift paketindeki bildirimlerin uygulama hedefinden kullanılabilmesi için hangi erişim düzeyi gereklidir?

Ders Özeti

swift package init ile yerel özellik paketleri oluşturun, bunlara .package(path:) üzerinden başvurun ve yalnızca public türleri dışa sunun. Paylaşılan yardımcı programları bir Çekirdek modülüne çıkarın. Özellik modülleri birbirine bağımlı olmamalıdır. Temiz modül sınırları artımlı derleme sürelerini büyük ölçüde azaltır.

Başlamak ücretsiz

Yapay zeka eğitmeniyle Swift öğren — ücretsiz

Tarayıcında gerçek kod yaz ve çalıştır, 7/24 yapay zeka eğitmeninden anında yardım al; web'de ya da uygulamada kaldığın yerden devam et.

Kurslar
122
Dersler
409

Sıkça Sorulan Sorular

“Yerel Paketler ve Özellik Modülleri” dersi ücretsiz mi?

Evet — “Yerel Paketler ve Özellik Modülleri” dersin tüm metni burada web'de ücretsiz olarak okunabilir. Etkileşimli olarak pratik yapmak (yerleşik kod editörü ve 7/24 yapay zeka koçu) ve Swift Academy kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. Swift Academy kursu toplamda 4 dersten oluşur.

“Yerel Paketler ve Özellik Modülleri” dersinde ne öğreneceğim?

Daha hızlı derlemeler ve yalıtım için özellikleri yerel Swift paketlerine çıkarın. Swift Academy ile uygulamalı kodu tarayıcıda doğrudan çalıştırarak pratik yaparsın ve 7/24 yapay zeka koçu dersi çalışırken sorularını yanıtlar.

Swift Academy öğrenmeye başlamak için deneyim gerekli mi?

Önceden deneyim gerekmez. CoddyKit'te Swift Academy, başlangıçtan ileri seviyeye kadar yapılandırıldığı için buradan başlayabilir veya başından başlayıp kendi hızında ilerleme yapabilirsin. Bu, 4 dersinin 2. dersidir.

“Yerel Paketler ve Özellik Modülleri” dersi ne kadar sürer?

Çoğu CoddyKit dersi yaklaşık 5–10 dakika sürer. Her biri kısa ve etkileşimli olduğu için sabit ilerleme yaparsın ve web ile uygulama arasında tam olarak bıraktığın yerden devam edebilirsin.

Bu Swift Academy dersinde kod yazıp çalıştırabilir miyim?

Evet. Her Swift Academy dersi yerleşik bir kod editörü içerir, bu sayede tarayıcıda gerçek kod yazıp çalıştırabilir ve anlık yapay zeka geri bildirimi alırsın — yerel kurulum gerekli değildir.

Bu kursun tüm dersleri

  1. Package.swift: Hedefler, Ürünler ve Bağımlılıklar
  2. Yerel Paketler ve Özellik Modülleri
  3. İkili Hedefler ve XCFramework'ler
  4. Sürümleme, Çakışmaları Çözme ve Swift Eklentileri
← Swift Academy Sayfasına Dön