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)

Refactoring views

Our views have too much code, and we should refactor them a bit. Dealing with small chunks of code makes it easier to manage as well as being able to reuse views. We refactor each of the three main views, but if you see a place where you can refactor, have at it.

Refactoring ContentView

The first view we are going to refactor is inside of ContentView. Open ContentView and highlight everything inside of ForEach, and then hit Command + X (cut). Then, open DraftRoundItemView and highlight Text("Draft Round Item View") and hit Command + V (paste) to replace this Text view. Go back to ContentView() and cut the background variable from ContentView() and paste it after the body variable in DraftRoundItemView(). Hit Save.

Back inside of ContentView again, add DraftRoundItemView() inside of ForEach. When you're finished, ContentView should look like the following:

struct ContentView: View {
    var body: some View {