Your First iOS and SwiftUI App: Polishing the App

This course is the sequel to "Your First iOS and SwiftUI App: An App from Scratch." In this course, we'll finish off our "nice-to-haves" on our programming to-do list for Bull's Eye, resulting in a professional and polished app. By Ray Wenderlich.

See course reviews 4.7 (29) · 1 Review

Download materials
Save for later
Share

Who is this for?

This course is for students who have completed "Your First iOS and SwiftUI App: An App from Scratch", where we developed the "must haves" on our programming to-do list for a simple iOS game called Bull's Eye.

In this course, we'll finish off our "nice-to-haves" on our programming to-do list, resulting in a professional and polished app.

Not only will the app look much better, but the code will be much cleaner and well organized too. You'll learn how to extract your SwiftUI views in order to keep your code clean, reusable, and maintainable, and you'll continue to use test-driven development to build out and expand your app's data model.

You'll also learn about tons of handy techniques that you'll be using all the time as a professional iOS Developer, including how to use SFSymbols, SwiftUI Animation, Size Classes, and so much more.

By the end of this course, not only will you have created your first app, but you'll have created a polished app that you can carry around in your pocket, and show off to your family and friends.

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

Covered concepts

  • More SwiftUI View Modifiers
  • Colors & Gradients
  • Supporting Dark Mode
  • Extracting SwiftUI Views
  • Filling & Stroking Shapes
  • SFSymbols
  • The Xcode Debugger
  • The Environment Property Wrapper
  • Xcode Shortcuts
  • Size Classes
  • Swift Arrays
  • App Icon & Display Name
  • Running on Your Own Device

Part 1: SwiftUI Views and View Modifiers

1
Toggle description

Get a preview of all the things you'll learn throughout this course.

Toggle description

Learn about more view modifiers including padding, foregroundColor, background, and cornerRadius, and use those to style the "Hit Me" button in Bull's Eye.

Toggle description

Learn how to apply custom colors and gradients to your SwiftUI views.

Dark Mode 3:30
Toggle description

Learn how to support dark mode in your iOS apps.

Toggle description

Try adding a new color to the asset catalogue for the text views, and then apply that to all the views in the app.

Toggle description

Learn how to keep your SwiftUI code clean and organized by extracting your views.

Toggle description

Practice extracting views by extracting reusable slider text, slider, and hit me button views.

Toggle description

Learn how you can draw shapes in SwiftUI and fill and stroke them with color.

SFSymbols 6:37
Toggle description

SFSymbols is a massive collection of symbols and icons that you can use in your apps. Let's learn how this works.

Toggle description

Practice drawing some shapes by applying them to your reusable views.

Toggle description

Put together everything you have learned by creating a reusable background view, with buttons to reset the game and show the leaderboard.

Toggle description

Practice everything you've learned so far in this course, by creating the views necessary for the background view's bottom views.

Conclusion 0:57
Toggle description

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

Part 2: Swift Coding Challenges

Toggle description

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

Toggle description

Try adding a new method to your Game data model that you can use to start a new round of the game.

Toggle description

There's a subtle bug where Bull's Eye doesn't calculate the correct score. Learn why this is happening, and how to fix it, with the power of the Xcode Debugger.

Toggle description

Get some practice with coding basics by giving the user bonus points if they are very close to the target.

Toggle description

Get some more coding practice by implementing the "Start Over" button in Bull's Eye.

Toggle description

Draw the cool rings in Luke's design with the power of SwiftUI's ForEach.

Toggle description

Try changing the color of the rings from black to a nice gradient.

Toggle description

Learn how you can use the environment property wrapper to detect if the app is in light mode or dark mode.

Toggle description

Try fixing the slider so it is centered on the screen and within the rings.

Conclusion 0:42
Toggle description

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

Part 3: A Custom Alert

Toggle description

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

Toggle description

Try implementing several more text styles that we need for the custom alert.

Toggle description

Try creating the custom alert itself, by using the building blocks we created earlier.

Toggle description

Learn how to display a custom alert in SwiftUI by dynamically modifying view hierarchy.

Toggle description

Get a crash course in SwiftUI animation and use it to make the custom alert smoothly animate onto the screen.

Toggle description

Learn why it's important to avoid magic numbers in your code, and how you can avoid them by using named constants.

Toggle description

Learn about some of the most helpful Xcode shortcuts you can learn to supercharge your day-to-day development.

Conclusion 0:39
Toggle description

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

Part 4: A Second Screen

Toggle description

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

Toggle description

As the first step to create our leaderboard view, we'll start by creating a view for a single row inside the leaderboard.

Toggle description

Now that we've implemented a view for a row within the leaderboard, we can start putting together the main view for the leaderboard.

Toggle description

Learn how you can use iOS size classes to adjust the layout of the view based on whether there is a compressed amount of horizontal space.

Toggle description

Learn one way you can display an extra screne of content in your SwiftUI app, using View's sheet() method.

Toggle description

Learn the basics of using Swift arrays using Swift Playgrounds.

Toggle description

Using what you learned about Swift ararys, try integrating leaderboard entries into the app's data model.

Toggle description

Learn how to hook up the leaderboard data model to the leaderboard view.

Toggle description

Learn how to set up your app icon, and how to change the display name of your app.

Toggle description

Learn how to run your app on your own physical device so you can carry it around and show it off to your friends!

Conclusion 1:29
Toggle description

Let's review what you learned in this course and discuss where to go from here to continue your iOS and Swift learning journey.