How to Build a Tip Calculator App with Xcode and AI

Team Alex · April 6, 2025

Tutorial

Estimated completion time: 3 min read

How to Build a Tip Calculator App with Xcode and AI

Overview

Welcome to this tutorial series where we'll learn how to build a simple yet practical Tip Calculator app in Xcode, using Swift, SwiftUI, and the power of Alex, an AI assistant for iOS development. You'll see how AI can help speed up the process and reduce bugs. Let’s get started!

To follow along, you'll need:

1. Project Setup & Planning

First, create a new Xcode project. Select Single View App, name it "TipCalculator", and make sure to select SwiftUI for the User Interface option.

Now, let's plan out our app. We need a text field for the bill amount, sliders for tip percentage and number of people, and a display for the final amount per person.

Instead of manually writing these out, we can tell Alex something like, "Create a SwiftUI view with a text field for the bill amount that takes in decimal numbers, two sliders for tip percentage and number of people, and a Text view for our final calculation."

Alex will then generate the initial struct for us with the necessary SwiftUI views.

2. Core Features

Next, we need to bind our data to the UI and add functionality. Let's add a @State property for each of our inputs.

@State private var billAmount = ""
@State private var tipPercentage = 15
@State private var numberOfPeople = 2

Now, we create our calculation logic. This involves converting our bill amount to a decimal, calculating the tip, dividing the total by the number of people, and finally converting that to a string for display.

If you feel stuck, you can ask Alex for help! Just say, "Generate a Swift function to calculate the total per person given a bill amount, tip percentage, and number of people."

3. Data & Storage

We can use UserDefaults to store the last used values. To load and save data, we create two functions: loadData and saveData.

The loadData function reads data from UserDefaults and sets our @State properties, while saveData writes our current state to UserDefaults.

If you're not sure how to do this, ask Alex, "Create Swift functions to save and load bill amount, tip percentage, and number of people to UserDefaults."

4. Polish & Refinement

Finally, we can polish our app by adding some animations, handling loading and error states, and making performance tweaks.

For instance, we can animate the change of our total amount. In SwiftUI, this is done by adding an .animation(.default) modifier to the view.

For error handling, we might want to show an alert if the bill amount is not a valid number. Alex can help here too.

Next Steps

In future tutorials, we will add more advanced features like rounding up the bill, splitting by exact amounts, and even creating presets for common tip percentages.

For now, you might want to try adding a "Clear" button that resets all fields or even change the app's theme.

Conclusion

Congrats on building your Tip Calculator app with Xcode and AI! You've learned how to create a basic SwiftUI app, use @State for data binding, persist data with UserDefaults, and even refine your app with animations and error handling.

AI assistance with Alex can significantly speed up your development process and make it more enjoyable. If you haven't tried Alex yet, head over to https://www.alexcodes.app and get a free trial!

Remember, the more you use Alex, the more time you'll save and the more you'll learn.

Happy coding!