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)

Complete Order design

We are moving to the Complete Order view; this view appears when you tap on the Complete Order button. This view will be a modal that lays on top of our main view:

Figure 4.15

We'll break this view up into two sections, Top Order and Bottom Order:

Figure 4.16

We could break this up into more; for example, if we were using MapKit here, we could create a view with all the code for displaying the map and the arrival time. Since we are just displaying an image, we are keeping it simple. We will do a few more screens together, and at the end of this chapter, you will get to try it out on your own.

Let's work on the order view, starting with the Top Order view.

The Top Order view

Now that we have a better idea of the direction, let's open the TopOrderView file; before the last curly brace, add the following variable:

var closeBtn: some View {
    Group {