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)

Combine 101 – discussing the basics

Combine is a framework introduced in iOS 13, and it brings a native approach to reactive programming. Before iOS 13, if you wanted a reactive framework, you used RxSwift, ReactiveCocoa, or others. You may be familiar with reactive programming either from Swift or another programming language. Reactive programming typically has a higher learning curve, but I think Apple has done an excellent job of simplifying the topic.

If you are new to reactive programming, you are probably asking why you should learn Combine. Using Combine helps you with synchronous and asynchronous tasks. For example, let's say you have a sign-up form. You typically have a username, two password fields, and a Submit button. Let's say that your usernames are unique, and you need to verify that any new usernames don't already exist. The username will need to check the server to verify, and with passwords, you want to check that both passwords match. While...