Swift Codable est un typealias combinant les protocoles Encodable et Decodable, permettant la conversion automatique des structures Swift en données binaires et vice versa. Il génère automatiquement les implémentations nécessaires pour les types de base et les structures personnalisées qui s'y conforment, simplifiant ainsi les échanges de données dans les applications client-serveur.

Encodable transforme les données en bytes via JSONEncoder ou PropertyListEncoder, avec des options de personnalisation comme la conversion des clés en snake_case, le formatage des dates ISO 8601, ou l'encodage base64 pour les données brutes. Il permet également de transmettre un contexte via userInfo pour adapter le comportement d'encodage, par exemple pour chiffrer certains champs conditionnellement.

Decodable effectue l'opération inverse en reconstruisant les objets Swift à partir de données JSON ou plist, avec des fonctionnalités comme le support de JSON5 (commentaires, clés sans guillemets) ou l'option assumesTopLevelDictionary pour gérer les entrées sans objet racine. PropertyListDecoder permet également de lire les fichiers de configuration plist, essentiels pour les paramètres d'applications iOS.

Le mécanisme repose sur des conteneurs (keyed, unkeyed, single-value) qui structurent les données durant l'encodage/décodage, offrant une flexibilité pour les cas complexes tout en maintenant une simplicité d'usage pour les scénarios standards.