Swift im Jahr 2025: Überblick über Neuerungen und praktische Codebeispiele

Online Python-Trainer für Anfänger

Lernen Sie Python einfach ohne theoretische Überlastung. Lösen Sie praktische Aufgaben mit automatischer Überprüfung und schreiben Sie Code direkt im Browser.

Kurs starten

Swift im Jahr 2025: Was gibt es Neues in der Praxis?



Das Jahr 2025 war ein Meilenstein für das Apple-Ökosystem. Swift 6 wurde veröffentlicht – ein Release, das nicht nur Stabilität, sondern auch grundlegende Veränderungen in der Art und Weise verspricht, wie wir Code schreiben. Wenn Sie ein Entwickler für iOS oder macOS sind, müssen Sie die Neuerungen verstehen, um mit der Branche Schritt zu halten. In diesem Artikel analysieren wir die wichtigsten Änderungen von Swift 6 anhand praktischer Beispiele, die Sie sofort in Projekten anwenden können.



1. Nicht-erschöpfende Aufzählungen (Non‑exhaustive enums)



Eine der am meisten erwarteten Änderungen ist die Möglichkeit, Aufzählungen zu deklarieren, die in Zukunft erweitert werden können, ohne die Abwärtskompatibilität zu brechen. Früher, wenn eine Bibliothek einen neuen Fall in einem enum hinzufügte, brach Ihr Code. Das gehört nun der Vergangenheit an.



Die Deklaration einer solchen Aufzählung sieht so aus:



public enum NetworkError: Sendable {    case timeout    case serverError(Int)    case unknown    @_nonExhaustive case custom(String)}


Bei der Verarbeitung eines solchen enum verlangt der Compiler nicht mehr, dass der switch erschöpfend ist. Sie müssen einen default-Fall hinzufügen:



func handleError(_ error: NetworkError) {    switch error {    case .timeout:        print("Zeitüberschreitung")    case .serverError(let code):        print("Serverfehler: \\(code)")    default:        print("Unbekannter Fehler")    }}


Praktischer Tipp: Wenn Sie eine öffentliche Bibliothek oder ein SDK entwickeln, kennzeichnen Sie Ihre enums mit dem Attribut @_nonExhaustive – das erhält die Kompatibilität mit zukünftigen Versionen Ihres Codes.



2. Makros: Eine neue Stufe der Metaprogrammierung



Makros, die in Swift 5.9 eingeführt wurden, sind im Jahr 2025 wirklich leistungsstark geworden. In Swift 6 gibt es Attribut-Makros und Member-Makros, die es ermöglichen, Code zur Kompilierzeit ohne überflüssigen Boilerplate-Code zu generieren.



Betrachten wir ein Beispiel: Anstatt manuell init und Codable für ein Modell zu schreiben, können Sie das integrierte Makro @MemberwiseInit (Neuerung in Swift 6) verwenden:



@MemberwiseInitstruct UserProfile: Codable {    let id: Int    var name: String    var email: String    var age: Int}

// Der Compiler generiert automatisch:// init(id: Int, name: String, email: String, age: Int)// und die Codable-Implementierung


Ein weiteres Beispiel ist das Makro #Predicate für SwiftData:



let youngUsers = try modelContext.fetch(    FetchDescriptor<UserProfile>(        predicate: #Predicate { $0.age < 25 }    ))


Makros reduzieren die Menge an Boilerplate-Code erheblich und verringern die Wahrscheinlichkeit von Fehlern. Im Jahr 2025 ist ihre Verwendung zum Standard für neue Projekte geworden.



3. Beobachtbare Eigenschaften (Observable) und SwiftUI



In Swift 6 gibt es einen neuen Typ Observable, der ObservableObject aus Combine ersetzt. Jetzt müssen Sie nicht mehr @Published und @ObservedObject schreiben – alles funktioniert über das Makro @Observable.



Beispiel für ein Modell:



import Observation

@Observableclass CounterViewModel { var count = 0 var isPremium = false

func increment() { count += 1 if count >= 10 { isPremium = true } }}


Die Verwendung in SwiftUI ist einfacher geworden:



struct CounterView: View {    @State private var viewModel = CounterViewModel()

var body: some View { VStack { Text("Zähler: \\(viewModel.count)") Button("Erhöhen") { viewModel.increment() } if viewModel.isPremium { Text("Premium verfügbar!") } } .padding() }}


Was hat sich geändert?

Blogs

Buchempfehlungen