Your First iOS and SwiftUI App: An App From Scratch

Dec 15 2020 · Video Course (2 hrs, 31 mins) · Beginner

Updated for 2020! If you're a complete beginner to iOS and SwiftUI development and wondering how to get started, this is the course for you.


  • Swift 5, iOS 14, Xcode 12

Getting Started with SwiftUI


3:22 Free

Learn about the first app you'll build - a simple but fun game called Bull's Eye - and get a preview of all the things you'll learn throughout this part.


SwiftUI vs UIKit

6:47 Free

Learn about the differences between SwiftUI and UIKit, and whether you should learn SwiftUI, UIKit, or both.


Make a programming to-do list of all the things you'll need to do to build the game. This helps build a good programming practice of gathering requirements first!


SwiftUI Views

14:05 Free

Learn how to create user interfaces in SwiftUI by constructing a tree of Views, such as Text, Slider, and Button.


Learn how you can use SwiftUI View Modifiers like shadow, corner radius, or border to modify the style of your views.


Learn the basics of object-oriented programming, so you can better understand the Swift code created for you by the SwiftUI Canvas editor.


Practice using SwiftUI View Modifiers by styling the rest of the text views in Bull's Eye.


Solve Problems

4:59 Free

Learn how to solve problems beginners frequently run into, such as what to do when your code has an error.



0:41 Free

Let's review where you are with your programming to-do list, and discuss what's next.


SwiftUI Data


0:33 Free

One part down, two to go! Let's review what you'll be learning in this part, and why it's important.


Learn how to connect your button to some Swift code that prints a message to the console.


SwiftUI State

9:58 Free

Learn about an important concept called SwiftUI state, which helps you keep your user interface and app state always consistent.


Practice what you've learned so far by adding a knock-knock joke to your app.


SwiftUI Bindings

4:52 Free

Use SwiftUI bindings to keep the value of the slider synchronized with a state variable.



2:20 Free

Learn about a very important data type you'll use in your iOS apps, which you can use to store a sequence of characters.



9:09 Free

Learn how to detect when the user moves the slider, and how to store the result in a variable.


Learn how you can use some basic concepts of app architecture to make your code more clean and maintainable.


Create a Model

9:45 Free

Create a basic data model for Bull's Eye, that stores the target, current round, and total score.



0:42 Free

Let's review where you are with your programming to-do list, and discuss what's next.


Coding in Swift


1:11 Free

Let's review what you'll be learning in this part, and why it's important.


Learn about the pre-built data types and functions you can use in your apps to solve a variety of common tasks.


Learn how you can add unit tests to your app to automatically verify your app works the way you expect.


Learn how you can use test driven development to write tests for your code before you write the code itself, and why this can be beneficial to you.


See if you can figure out an algorithm to calculate the positive difference between the target value and the slider value.


Learn how to write if/else statements in Swift, and how you can use them to implement the algorithm.


Try improving the algorithm to calculate the difference so it is written in fewer lines of code.


Finalize the difference algorithm and score calculation, and learn about an important Swift concept: the difference between variables and constants.


Type Inference

4:55 Free

Learn how something called Swift type inference can help make your code more concise and easy to understand.



3:13 Free

Congrats on finishing the course and building your first app! Let's review what you learned and discuss where to go from here to continue your iOS and Swift learning journey.


Version history

iOS 15, Swift 5.5, Xcode 13

Jan 11 2022

iOS 14, Swift 5, Xcode 12 (Selected)

Dec 15 2020

iOS 13, Swift 5, Xcode 11

Sep 3 2019

iOS 12, Swift 4, Xcode 10

Jul 24 2018

iOS 11, Swift 4, Xcode 9

Sep 19 2017

iOS 10, Swift 3, Xcode 8

Nov 7 2016

Swift 2

Sep 1 2015

Who is this for?

Total beginners — no Swift, iOS, or previous developer knowledge required! This course walks you through building an app from scratch.

You'll start by learning the basics of SwiftUI, a new way for iOS developers to build user interfaces for their apps using Swift. You'll also dive into the Swift programming language itself, learning fundamentals like if/else statments, variables, constants, type inference, and the Swift standard library. You’ll add more cool functionality to your game and practice your new coding skills.

You'll even learn useful techniques you'll use as a developer in the real world, like App Architecture and Unit Testing!

This course isn’t suited for intermediate or advanced developers. If that’s you, check out our intermediate or advanced content for more ways to level up your developer skills.

Covered concepts

  • Swift Basics
  • Methods
  • Strings
  • Variables
  • Type Inference
  • SwiftUI Views
  • SwiftUI View Modifiers
  • SwiftUI State
  • SwiftUI Bindings
  • App Architecture
  • Unit Testing
  • Bug Fixes
  • Using Developer Docs