0Pricing
Swift Academy · Lektion

Lokale Pakete und Feature-Module

Lagern Sie Features für schnellere Builds und Isolation in lokale Swift-Pakete aus.

Lokale Pakete und Feature-Module ist eine kostenlose Swift Academy-Lektion auf CoddyKit. Dies ist Lektion 2 von 4. Du kannst die komplette Lektion unten kostenlos lesen – dann übst du sie direkt im Browser mit einem integrierten Code-Editor und einem KI-Tutor rund um die Uhr. Sie ist Teil des Swift Academy-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der Swift Academy-Kurs umfasst insgesamt 4 Lektionen.

Warum Feature-Module?

Die Aufteilung einer App in lokale Pakete erzwingt Kapselung, beschleunigt inkrementelle Builds und ermöglicht parallele Entwicklung durch mehrere Teams.

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

Ein lokales Paket erstellen

Erstellen Sie neben Ihrem Xcode-Projekt ein Verzeichnis und führen Sie darin swift package init aus.

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

Zum Xcode-Projekt hinzufügen

Ziehen Sie das Verzeichnis des lokalen Pakets in den Projektnavigator von Xcode. Xcode erkennt es automatisch als SPM-Paket.

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

Ein lokales Paket referenzieren

Referenzieren Sie in der Package.swift Ihrer App (oder über Xcode) lokale Pakete mit .package(path:).

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

Öffentliche API-Oberfläche

Nur public- und open-Deklarationen im lokalen Paket sind aus der App zugänglich. Verwenden Sie Zugriffskontrolle, um die Modulgrenze zu definieren.

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

Interne Implementierung

Alle internal-Typen sind außerhalb des Moduls unsichtbar, wodurch die Kapselung automatisch durchgesetzt wird.

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

Struktur eines Feature-Moduls

Jedes Feature-Modul besitzt intern seine eigenen Domain-, Data- und Presentation-Schichten.

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

Gemeinsam genutztes Core-Modul

Lagern Sie querschnittliche Belange (Netzwerk, Analytics, Designsystem) in ein gemeinsam genutztes Modul aus, das von Feature-Modulen importiert wird.

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

Abhängigkeitsgraph

Feature-Module sollten nicht direkt voneinander abhängen. Gemeinsam genutzte Abhängigkeiten sollten über ein Core-Modul fließen, um Kopplung zu vermeiden.

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

Vorteile für die Build-Zeit

Bei klaren Modulgrenzen erstellt Xcode bei Änderungen an Quelldateien nur betroffene Module neu.

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

Feature-Module testen

Jedes Feature-Modul hat ein eigenes Test-Target, wodurch parallele Testausführung und schnellere CI möglich werden.

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

Kurze Überprüfung

Welche Zugriffsebene ist erforderlich, damit Deklarationen in einem lokalen Swift-Paket vom App-Target verwendet werden können?

Zusammenfassung der Lektion

Erstellen Sie lokale Feature-Pakete mit swift package init, referenzieren Sie sie über .package(path:) und stellen Sie nur public-Typen bereit. Lagern Sie gemeinsam genutzte Hilfsfunktionen in ein Core-Modul aus. Feature-Module sollten nicht voneinander abhängen. Klare Modulgrenzen verkürzen die Zeiten für inkrementelle Builds erheblich.

Häufig gestellte Fragen

Ist die Lektion „Lokale Pakete und Feature-Module“ kostenlos?

Ja — der vollständige Text von „Lokale Pakete und Feature-Module“ ist hier im Web kostenlos zu lesen. Um sie interaktiv zu üben (integrierter Code-Editor und 24/7 KI-Tutor) und den Rest des Swift Academy-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der Swift Academy-Kurs umfasst insgesamt 4 Lektionen.

Was lerne ich in „Lokale Pakete und Feature-Module“?

Lagern Sie Features für schnellere Builds und Isolation in lokale Swift-Pakete aus. Du übst Swift Academy mit praktischem Code, den du direkt im Browser ausführst, und ein 24/7 KI-Tutor beantwortet deine Fragen während du die Lektion bearbeitest.

Brauche ich Erfahrung, um Swift Academy zu starten?

Keine Vorkenntnisse erforderlich. Swift Academy auf CoddyKit ist für Anfänger bis fortgeschrittene Lernende strukturiert, sodass du hier starten oder von Anfang an beginnen und in deinem eigenen Tempo voranschreiten kannst. Dies ist Lektion 2 von 4.

Wie lange dauert die Lektion „Lokale Pakete und Feature-Module“?

Die meisten CoddyKit-Lektionen dauern etwa 5–10 Minuten. Jede ist kompakt und interaktiv, sodass du stetig Fortschritte machst und genau dort weitermachst, wo du aufgehört hast – im Web und in der App.

Kann ich in dieser Swift Academy-Lektion Code schreiben und ausführen?

Ja. Jede Swift Academy-Lektion enthält einen integrierten Code-Editor, sodass du echten Code direkt in deinem Browser schreibst und ausführst und sofort KI-Feedback erhältst — ohne lokale Einrichtung erforderlich.

Alle Lektionen in diesem Kurs

  1. Package.swift: Targets, Produkte und Abhängigkeiten
  2. Lokale Pakete und Feature-Module
  3. Binärziele und XCFrameworks
  4. Versionierung, Konfliktauflösung und Swift-Plugins
← Zurück zu Swift Academy