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

Adding Interactivity to a SwiftUI View

So far, we have explored how to create complex views in SwiftUI by adding more elements, but all these views have been static; that is, they don’t respond to user interaction such as tap events. This limitation would be just acceptable if we only needed to draw pretty pixels on a user’s mobile screen, but we normally want those pretty pixels to respond dynamically to the user’s interactions and be “responsive.” By user interaction, we mean whatever gestures the user may perform in order to control the UI (e.g., tapping on a button, pinches, sliding, etc.).

In SwiftUI, views are created by means of structs, which are normally immutable. So, how can we make these views respond to user actions and change their appearance in real-time? In SwiftUI, views are not objects with delegate methods that will get invoked when a user action takes place, as they are in UIKit; rather, SwiftUI views get rapidly re-created...