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

Different ways to decouple

In Swift, there are many ways to implement dependency injection. In this section, I will show you three methods by means of abstraction: get used to a humble protocol being described this way: calling it abstraction when we are speaking about decoupling via DIP. I won’t show you the versions that are not decoupled via an abstraction, as that is not what I want to teach you.

The three approaches I will show you are as follows:

  • Initializer injection
  • Property injection
  • Method injection

Let’s look at these in more detail next.

Initializer injection

In a Mermaid diagram, due to the limitations of UML diagrams, which originated much earlier than Swift, we have to represent a Swift protocol with an abstract class. This is the closest concept to a Swift protocol, as UML was created with languages such as C++ and Java in mind, not Swift:

Figure 10.3 – Initializer injection

Figure 10.3 – Initializer injection

Initializer...