Codable, Encodable, and Decodable protocols
Let’s now examine the protocols used in Swift for automatically encoding and decoding data, as these are fundamental in exchanging data over the Internet.
The Codable protocol in Swift is an alias that groups together both the Encodable and Decodable protocols. The Encodable protocol allows a Swift data type to be encoded, and Decodable allows it to be decoded.
If you specify Codable as a protocol conformance, the data type referred to will conform to both Encodable and Decodable. If you want to just use encoding, use Encodable; if you instead want to restrict the use to decoding, use Decodable.
Introduced in Swift 4, Codable makes it easy to encode and decode custom data types to and from JSON, XML, or even property lists (plists). This functionality becomes particularly valuable when working with networking code when you need to send and receive data to and from a server or when you are persisting data to the filesystem...