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

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 est une partie essentielle du développement sous iOS et macOS. Elle permet de gérer flexiblement le comportement de l'application sans modifier le code, de paramétrer les réglages pour différents environnements (dev/staging/prod) et de personnaliser l'expérience utilisateur. Dans cet article, nous examinerons les principaux outils et bibliothèques Swift pour la gestion de la configuration.



1. Outils intégrés iOS/macOS



Apple fournit plusieurs mécanismes intégrés pour stocker et lire les données de configuration.



1.1 PropertyList (Info.plist)

Méthode classique pour stocker une configuration statique. Le fichier Info.plist contient les paramètres de base de l'application : version, bundle identifier, orientations supportées, etc.



// Lecture d'une valeur depuis Info.plistif let appVersion = Bundle.main.object(forInfoDictionaryKey: "CFBundleShortVersionString") as? String {    print("Version de l'application : \\(appVersion)")}

// Lecture d'une clé personnaliséeif let apiURL = Bundle.main.object(forInfoDictionaryKey: "APIBaseURL") as? String { print("URL de base de l'API : \\(apiURL)")}


1.2 UserDefaults

UserDefaults est un moyen simple de stocker de petites quantités de données (chaînes, nombres, valeurs booléennes). Idéal pour les préférences utilisateur.



// SauvegardeUserDefaults.standard.set(true, forKey: "isDarkModeEnabled")UserDefaults.standard.set("fr", forKey: "appLanguage")

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


1.3 SwiftUI @AppStorage

Wrapper moderne autour de UserDefaults pour SwiftUI. Permet de synchroniser automatiquement l'état avec l'interface utilisateur.



struct SettingsView: View {    @AppStorage("isDarkMode") private var isDarkMode = false    @AppStorage("username") private var username = "Invité"        var body: some View {        Form {            Toggle("Thème sombre", isOn: $isDarkMode)            TextField("Nom d'utilisateur", text: $username)        }    }}


2. Bibliothèques pour une configuration avancée



2.1 Firebase Remote Config

Configuration cloud de Google. Permet de modifier les paramètres de l'application sans publier de mise à jour sur l'App Store.



import FirebaseRemoteConfig

class RemoteConfigManager { static let shared = RemoteConfigManager() private let remoteConfig = RemoteConfig.remoteConfig() func setup() { let defaults: [String: NSObject] = [ "welcome_message": "Bienvenue !" as NSObject, "max_items_count": 20 as NSObject ] remoteConfig.setDefaults(defaults) remoteConfig.fetch(withExpirationDuration: 3600) { status, error in if status == .success { self.remoteConfig.activate() } } } var welcomeMessage: String { remoteConfig.configValue(forKey: "welcome_message").stringValue ?? "" } var maxItemsCount: Int { Int(remoteConfig.configValue(forKey: "max_items_count").numberValue ?? 20) }}


2.2 SwiftyUserDefaults

Wrapper pratique autour de UserDefaults avec support de Codable et de clés typées sécurisées.



import SwiftyUserDefaults

extension DefaultsKeys { static let isFirstLaunch = DefaultsKey<Bool>("isFirstLaunch", defaultValue: true) static let userProfile = DefaultsKey<Data?>("userProfile")}

struct UserProfile: Codable { let name: String let age: Int}

// UtilisationDefaults[.isFirstLaunch] = false

let profile = UserProfile(name: "Ivan", age: 30)if let data = try? JSONEncoder().encode(profile) { Defaults[.userProfile] = data}

if let profileData = Defaults[.userProfile], let decoded = try? JSO

Recommendations