Book Image

An iOS Developer's Guide to SwiftUI

By : Michele Fadda
Book Image

An iOS Developer's Guide to SwiftUI

By: Michele Fadda

Overview of this book

– SwiftUI transforms Apple Platform app development with intuitive Swift code for seamless UI design. – Explore SwiftUI's declarative programming: define what the app should look like and do, while the OS handles the heavy lifting. – Hands-on approach covers SwiftUI fundamentals and often-omitted parts in introductory guides. – Progress from creating views and modifiers to intricate, responsive UIs and advanced techniques for complex apps. – Focus on new features in asynchronous programming and architecture patterns for efficient, modern app design. – Learn UIKit and SwiftUI integration, plus how to run tests for SwiftUI applications. – Gain confidence to harness SwiftUI's full potential for building professional-grade apps across Apple devices.
Table of Contents (25 chapters)
Free Chapter
1
Part 1: Simple Views
5
Part 2: Scrollable Views
8
Part 3: SwiftUI Navigation
11
Part 4: Graphics and Animation
14
Part 5: App Architecture
17
Part 6: Beyond Basics

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...