Book Image

SwiftUI Projects

By : Craig Clayton
Book Image

SwiftUI Projects

By: Craig Clayton

Overview of this book

Released by Apple during WWDC 2019, SwiftUI provides an innovative and exceptionally simple way to build user interfaces for all Apple platforms with the power of Swift. This practical guide involves six real-world projects built from scratch, with two projects each for iPhone, iPad, and watchOS, built using Swift programming and Xcode. Starting with the basics of SwiftUI, you’ll gradually delve into building these projects. You’ll learn the fundamental concepts of SwiftUI by working with views, layouts, and dynamic types. This SwiftUI book will also help you get hands-on with declarative programming for building apps that can run on multiple platforms. Throughout the book, you’ll work on a chart app (watchOS), NBA draft app (watchOS), financial app (iPhone), Tesla form app (iPhone), sports news app (iPad), and shoe point-of-sale system (iPad), which will enable you to understand the core elements of a SwiftUI project. By the end of the book, you’ll have built fully functional projects for multiple platforms and gained the knowledge required to become a professional SwiftUI developer.
Table of Contents (13 chapters)

Car Detail

As I stated earlier, I break views down into smaller views. I did the same for Car Detail as well. I want to say that breaking up the views in this section was done more for cleaner code than for its reusability. This is how I broke up Car Detail:

Figure 4.4

Figure 4.4

We'll create three smaller views, Basic, Detail, and Photos, and then add them to Car Detail. Let's get started on the Basic view first.

Creating Basic car info view

Now that we have an idea of what we will do in this chapter, let's get started:

  1. Open the CarInfoBasicView file and update the previews with the following previewLayout:
    CarInfoBasicView()
        .previewLayout(.fixed(width: 400, height: 100))

    We have changed our preview layout to be a fixed size. Adding a fixed size helps me focus on the size instead of being inside a giant phone.

  2. Now, add the following code inside of the body variable by replacing Text("Car Info Basic View...