Your First iOS and SwiftUI App: An App From Scratch
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. By Ray Wenderlich.
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
Part 1: Getting Started with SwiftUI
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.
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!
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.
Learn how to solve problems beginners frequently run into, such as what to do when your code has an error.
Let's review where you are with your programming to-do list, and discuss what's next.
Part 2: SwiftUI Data
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.
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.
Use SwiftUI bindings to keep the value of the slider synchronized with a state variable.
Learn about a very important data type you'll use in your iOS apps, which you can use to store a sequence of characters.
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 basic data model for Bull's Eye, that stores the target, current round, and total score.
Let's review where you are with your programming to-do list, and discuss what's next.
Part 3: Coding in Swift
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.
Learn how something called Swift type inference can help make your code more concise and easy to understand.
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.