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

Previews and the simulator

Now, for the sake of simplicity, we will start again by creating a simple single-view project.

You can create a new project from the Xcode menu: File | New | Project.

You will see that Xcode will automatically create a simple project and create a view struct and a preview struct inside the ContentView.swift file.

The first struct inside this file describes a simple SwiftUI view (Text) and the second struct is used to pre-render it so that you can have an idea of the finished result without the need to launch the simulator.

You can have multiple previews, even for different devices simultaneously, but that depends heavily on the memory available on your system and has been somewhat error prone in the past.

You can give each preview a name, by using the previewDisplayName modifier on the content view in the preview, for example, name the currently rendered device iPod.

You can also change the desired rendered device in code using the previewDevice...