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

Clean Architecture

We will focus on the Clean Architecture concept due to its didactic and practical value: it is one of the best architectural styles you can learn about. We will keep focused on using SwiftUI while avoiding some of the worst practices I have witnessed.

There are some practicalities in adapting Clean Architecture to a Swift-based context, as the relevant frameworks are in evolution. Due to recent changes to SwiftUI, which happened during WWDC2023, you may want to give some thought to whether to use SwiftData or whether to implement a data persistence layer yourself. Before WWDC2023, we would have suggested implementing a data persistency layer using Core Data. Now, this choice, which impacts your architectural choices, has become more varied. We will cover this in Chapters 12 and 14 of this book.

Clean Architecture, a concept pioneered by the aforementioned Robert C. Martin (nicknamed “Uncle Bob”), prescribes the design of software systems with...