Configuration des applications Swift (iOS/macOS) : bibliothèques et outils

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

Configuration des applications Swift (iOS/macOS) : outils et bibliothèques



La configuration des applications mobiles et de bureau en Swift est une étape clé du développement, déterminant la flexibilité, la sécurité et la maintenabilité du code. Dans cet article, nous analyserons les principales approches, bibliothèques et outils pour configurer les applications sous iOS et macOS, qui vous aideront à gérer les paramètres à l'exécution, stocker des données sensibles et adapter le comportement à différents environnements.



1. Mécanismes de configuration natifs en Swift



Avant de recourir à des bibliothèques tierces, il convient de maîtriser les outils natifs fournis par Apple.



1.1 UserDefaults — stockage simple des préférences



UserDefaults est le moyen le plus courant de stocker de petites quantités de données : préférences utilisateur, indicateurs, chaînes, nombres. Exemple d'utilisation :



import Foundation

// Sauvegarde d'une valeurUserDefaults.standard.set(true, forKey: "isDarkModeEnabled")UserDefaults.standard.set("ru", forKey: "appLanguage")

// Lecturelet isDarkMode = UserDefaults.standard.bool(forKey: "isDarkModeEnabled")let language = UserDefaults.standard.string(forKey: "appLanguage")


Important : n'utilisez pas UserDefaults pour stocker des mots de passe, des jetons ou de gros volumes de données — utilisez plutôt Keychain et Core Data.



1.2 Property Wrappers — approche moderne en Swift



Depuis Swift 5.1, vous pouvez utiliser @AppStorage (pour SwiftUI) et des Property Wrappers personnalisés pour encapsuler la logique de configuration :



import SwiftUI

struct SettingsView: View { @AppStorage("isDarkModeEnabled") var isDarkMode: Bool = false @AppStorage("appLanguage") var language: String = "en"

var body: some View { Toggle("Thème sombre", isOn: $isDarkMode) Picker("Langue", selection: $language) { Text("Russe").tag("ru") Text("English").tag("en") } }}


Ce code se synchronise automatiquement avec UserDefaults et met à jour l'interface utilisateur.



1.3 Fichiers plist et Info.plist



.plist (Property List) est un format de stockage de configuration utilisé pour les données statiques : version de l'application, identifiant du bundle, autorisations. Vous pouvez également créer vos propres fichiers plist pour stocker la configuration des environnements (dev/stage/prod) :



// Chargement depuis un plist personnaliséif let path = Bundle.main.path(forResource: "Config", ofType: "plist"),   let config = NSDictionary(contentsOfFile: path) as? [String: Any] {    let apiURL = config["apiBaseURL"] as? String ?? ""    print(apiURL)}


2. Bibliothèques pour une configuration avancée



2.1 XCConfig — gestion des schémas de build



Les fichiers .xcconfig sont un outil standard de Xcode pour définir des variables d'environnement. Ils permettent de changer les points de terminaison API, les clés et les indicateurs sans modifier le code :



// Config.xcconfigAPI_BASE_URL = https://api.dev.example.comAPI_KEY = dev_key_123


Dans le code, utilisez Bundle.main.infoDictionary ou un gestionnaire personnalisé :



struct AppConfig {    static let apiBaseURL: String = {        Bundle.main.infoDictionary?["API_BASE_URL"] as? String ?? ""    }()}


2.2 SwiftUI Environment — transmission de la configuration via l'environnement



Dans SwiftUI, vous pouvez injecter des objets de configuration via @EnvironmentObject ou EnvironmentValues. C'est pratique pour les paramètres globaux (par exemple, thème, langue, délais d'attente) :



class AppConfiguration: ObservableObject {    @Published var isPremium: Bool = false    @Published var apiVersion: String = "v2"}

struct ContentView: View { @EnvironmentObject var config: AppConfiguration

var body: some View { Text("Version de l'API : \\(config.apiVersion)") }}<

Recommendations