SwiftUI Apprentice is a series of epic-length tutorials where you’ll learn to build three complete apps from scratch,
using Apple’s new user interface technology: SwiftUI! Each app is more advanced than the one before, and together,
they cover everything to make your own apps using SwiftUI. By the end of the book, you’ll be experienced enough
to turn your ideas into real apps you can sell on the App Store. You also get full
source code, image files, and other resources you can re-use for your own projects.
If you’re new to iOS and Swift, or to programming in general, learning how to write an app can seem incredibly overwhelming.
That’s why you need a guide that:
Shows you how to write an app step-by-step.
Uses tons of illustrations and screenshots to make everything clear.
Guides you in a fun and easy-going manner.
You’ll start at the very beginning. The first section assumes you have little to no knowledge of programming in Swift for iOS but still
shows you how to build an entire fitness app from scratch using SwiftUI.
SwiftUI Apprentice doesn’t cover every single feature of iOS; it focuses on the absolutely essential ones.
Instead of just covering a list of features, SwiftUI Apprentice does something much more important: It explains how all the
building blocks fit together and what is involved in building real apps. You’re not going to create quick example programs that
demonstrate how to accomplish a single feature. Instead, you’ll develop complete, fully-formed apps, with beautiful,
professionally-designed user interfaces, that are good enough to submit to the App Store!
How is this book different than SwiftUI by Tutorials?
Our other book on building apps with SwiftUI, SwiftUI by Tutorials, is designed for developers who have a solid background in iOS development, and are looking to make the leap from building apps with UIKit, to building apps with SwiftUI.
This book, SwiftUI Apprentice, is designed to teach new developers how to build iOS apps, using a SwiftUI-first approach. Its goal is to teach you fundamental development practices as you build out some fully-functional and great-looking apps!
Before You Begin
This section tells you a few things you need to know before you get started, such as what you’ll need for hardware and software, where to find the project files for this book, and more.
At WWDC 2019, Apple surprised and delighted the developer community with the introduction of SwiftUI, a declarative way of building user interfaces. With SwiftUI, you build your user interface by combining fundamental components such as colors, buttons, text labels, lists and more into beautiful and functional views. Your views react to changes in the data they display, updating automatically without any intervention from you!
In this section, you’ll begin your journey to becoming a SwiftUI developer by developing an app called HIITFit, a High Intensity Interval Training Fitness tracker. Along the way, you’ll:
Learn how to use Xcode.
Discover how to plan and prototype an app.
Explore the basic components of SwiftUI.
Understand how data moves in a SwiftUI app and how to make it persist.
Learn fundamental concepts of Swift, the programming language, needed to build your app.
Check your tools are working so nothing slows you down when you dive into this book.
Install Xcode and create a new project to take a quick tour of Xcode and Swift basics.
You’ll learn some tips for using Xcode efficiently.
Learn about the ways SwiftUI manages data through your view hierarchy. Discover how to answer the question "struct or class"? Explore the natural architecture pattern for SwiftUI apps: Model-View-ViewModel (MVVM).
Get a bird’s eye view of the whole Apple app development ecosystem with
a brief history of SwiftUI, a summary of Apple Developer resources and
tips on housekeeping and trouble-shooting.
Section II: Your second app: Cards
Now that you’ve completed your first app, it’s time to apply your knowledge and build a new app from scratch. In this section, you’ll build a photo collage app called Cards and you’ll start from a blank template. Along the way, you’ll:
Dive more deeply into Swift’s ways of representing data.
Learn how to support user gestures.
Discover how Xcode and iOS manage app assets such as images and colors.
Learn to use UIKit components in your SwiftUI app.
Explore more robust ways of saving and restoring data.
Translate a designer’s vision into reality in your app.
Learn to add assets of all varieties — icons, images, colors — to your app. Along the way, you’ll learn how to adjust these assets for different traits such as device size and dark mode. Finally, learn to load assets lazily to keep your app responsive.
Make your app sparkle by adding animations, view transitions, a share sheet and more!
Section III: Your third app: RWFreeView
You’ve now built two apps with beautiful user interfaces. But, you’re probably wondering how to build an app that accesses resources on the internet. Fear not! In this section, you’ll build RWFreeView, an app that allows you to view all the free video episodes on raywenderlich.com. Along the way, you’ll:
Learn how to build lists of information and navigate between views using SwiftUI.
Discover the intricacies of REST APIs and how to use them.
Explore iOS’s networking support using a Swift Playground.
Learn to how add support for iOS Widgets to your app.
Use URLComponents to create a query URL and send it in a URLSession dataTask.
Learn how to decode nested JSON values into your app’s data model, flattening
the JSON response and using date formatters to convert date strings.
Copy and adapt the previous chapter’s playground code into your app,
then implement all the query filters and options.
Set a breakpoint to inspect the decoded network response.
Look for opportunities to improve your users’ experience.