Swift en 2025 : aperçu des nouveautés et exemples de code pratiques

Formateur Python en ligne pour débutants

Apprenez Python facilement sans surcharge théorique. Résolvez des tâches pratiques avec vérification automatique et écrivez du code directement dans le navigateur.

Start Course

Swift en 2025 : quoi de nouveau en pratique ?



L'année 2025 a été marquante pour l'écosystème Apple. Swift 6 est sorti — une version qui promet non seulement de la stabilité, mais aussi des changements fondamentaux dans notre façon d'écrire du code. Si vous êtes développeur iOS ou macOS, vous devez comprendre ces nouveautés pour ne pas prendre de retard sur l'industrie. Dans cet article, nous analyserons les changements clés de Swift 6 à l'aide d'exemples pratiques que vous pouvez immédiatement appliquer dans vos projets.



1. Énumérations non exhaustives (Non‑exhaustive enums)



L'un des changements les plus attendus — la possibilité de déclarer des énumérations qui peuvent être étendues à l'avenir sans casser la rétrocompatibilité. Avant, si une bibliothèque ajoutait un nouveau cas dans un enum, votre code se cassait. Maintenant, c'est du passé.



La déclaration d'une telle énumération ressemble à ceci :



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


Lors du traitement d'un tel enum, le compilateur n'exige plus que le switch soit exhaustif. Vous devez ajouter un default :



func handleError(_ error: NetworkError) {    switch error {    case .timeout:        print("Délai d'attente dépassé")    case .serverError(let code):        print("Erreur serveur : \\(code)")    default:        print("Erreur inconnue")    }}


Conseil pratique : Si vous développez une bibliothèque publique ou un SDK, marquez vos enum avec l'attribut @_nonExhaustive — cela préservera la compatibilité avec les futures versions de votre code.



2. Macros : un nouveau niveau de métaprogrammation



Les macros, introduites dans Swift 5.9, sont devenues véritablement puissantes en 2025. Dans Swift 6, sont apparues les macros-attributs et les macros-membres, qui permettent de générer du code à la compilation sans code passe-partout superflu.



Prenons un exemple : au lieu d'écrire manuellement init et Codable pour un modèle, vous pouvez utiliser la macro intégrée @MemberwiseInit (nouveauté de Swift 6) :



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

// Le compilateur génère automatiquement :// init(id: Int, name: String, email: String, age: Int)// et l'implémentation Codable


Un autre exemple — la macro #Predicate pour SwiftData :



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


Les macros réduisent considérablement la quantité de code passe-partout et diminuent la probabilité d'erreurs. En 2025, leur utilisation est devenue la norme pour les nouveaux projets.



3. Propriétés observables (Observable) et SwiftUI



Dans Swift 6, un nouveau type Observable est apparu, remplaçant ObservableObject de Combine. Il n'est plus nécessaire d'écrire @Published et @ObservedObject — tout fonctionne via la macro @Observable.



Exemple de modèle :



import Observation

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

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


L'utilisation dans SwiftUI est devenue plus simple :



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

var body: some View { VStack { Text("Compteur : \\(viewModel.count)") Button("Augmenter") { viewModel.increment() } if viewModel.isPremium { Text("Premium disponible !") } } .padding() }}


Qu'est-ce qui a changé ?

Blogs

Book Recommendations