Building iOS User Interfaces with SwiftUI

Designing efficient and dynamic apps is essential for taking your iOS developer skills to the next level.

In this course, Building iOS User Interfaces with SwiftUI, you’ll build upon the basic knowledge of iOS development you’ve already gained in order to build compelling iOS apps that engage your users.

Course Outline

First, you’ll see the tools and learn how to create iOS apps with adaptive user interfaces that work on multiple devices.

Next, you’ll learn how to manage iOS projects and define the building blocks of your own iOS applications.

Finally, you’ll explore working with data-driven controls and understand navigation options.

When you’re finished with this course, you’ll know current best practices, iOS architecture, and the most important ideas you need to feel comfortable bringing your developer skills into the iOS and Apple developer world.

1 - Designing Interfaces with SwiftUI

In this introductory module, we begin where the iOS Getting Started course left off and prepare you to handle next-level interface building with SwiftUI.

Topics in this module include…

  • Preparing to Design User Interfaces with SwiftUI
  • The Snowhaven Renovation Scenario
  • Defining SwiftUI Views
  • Creating Basic Designs and Layouts
  • Representing Data in User Interfaces
  • Customizing the Appearance of Views
  • Changing the Size and Scale of Views
  • Adding Effects to Views
  • Layering Views with ZStacks
  • Implementing Navigation and Displaying a Modal View

2 - Handling User Input

There’s no such thing as an app without data. In this module, I set you up for building dynamic, interactive applications by unpacking questions like:

  • How do we model real-world objects and concepts as data that SwiftUI can work with?
  • How do we integrate data into an app, so it’s usable in the right views at the right time?
  • And how do we load data that’s been saved… display it… and, most importantly, for this module…change it using different editing controls with SwiftUI…

Topics in this module include…

  • Working with Data in SwiftUI
  • Establishing an App’s Data Flow
  • Loading and Displaying Data
  • Editing Text Data with Text Fields
  • Persisting (or Cancelling) Data Changes
  • Working with Picker Views
  • Switching Between Binary Options with Toggles
  • Editing Numeric Data with Text Fields
  • Displaying Editing Controls in a Form

3 - Bringing Apps to Life with Drawing, Animation, and Gestures

SwiftUI provides you with all the tools necessary to make your apps even more dynamic by responding to user gestures like taps and swipes… The framework also gives you everything you need to express your creativity by drawing your own graphics, and adding animations throughout your apps to bring things to life.

Topics in this module include…

  • Understanding the SwiftUI Drawing System
  • Drawing with Paths
  • Using GeometryReader
  • Applying Transformations to Paths
  • Building Reusable Shapes
  • Understanding Animations
  • Adding Basic Animation
  • Animating View Hierarchy Changes with Transitions
  • Combining Multiple Animations and Transitions
  • Responding to Gestures

4 - Integrating SwiftUI and UIKit

By now, you know that SwiftUI is wonderful, but… it’s not the only Apple UI framework used in today’s Apple Developer world. UIKit is still very widely used and even includes some UI components that are not currently available in the SwiftUI framework.

As we wrap up the course, I explore the answer to this question: How can we, as developers, mix SwiftUI and UIKit to leverage the power of both frameworks?

Topics in this module include…

  • Preparing to Integrate SwiftUI and UIKit
  • Representing UIKit ViewControllers in SwiftUI
  • Making SwiftUI Views Compatible with UIKit
  • Representing UIKit Views in SwiftUI
  • Sharing State Between SwiftUI and UIKit
  • Coordinating User Interaction Between UIViewControllers and SwiftUI
  • Coordinating User Interaction Between UIViews and SwiftUI
  • Applying the Finishing Touches

Feedback Welcome!

From the beginning my unwavering goal is to help you filter the noise and learn as efficiently as possible. My hope is that this course benefits you in your iOS development career!

I welcome feedback on this course, and on other iOS development courses you might be interested in seeing in the Pluralsight library. Happy learning!

comments powered by Disqus