You do not need to know Swift. You do need a Mac, a couple of free hours, and a willingness to paste error messages back at Grok until they stop appearing.
That last part is the whole skill. Everything below is scaffolding around it.
What you need before you start
- A Mac. iOS apps are built with Xcode, and Xcode runs on macOS only. There is no way around this one.
- Xcode, free from the Mac App Store. It is a large download; start it before you read the rest of this page.
- An Apple ID. The one you already have is fine.
- Grok, in whatever place you normally use it.
To put an app in the App Store you eventually need the paid Apple Developer Program, but nothing on this page requires it. Running your own app on your own phone does not.
1. Decide what the app does: in one sentence
Write the sentence before you open anything. "A tip calculator that remembers the last percentage I used." "A list of the books I own, with a search box." "A timer with three buttons: 5, 15 and 25 minutes."
The sentence has to be small enough that you could describe every screen out loud. First apps fail because they were three apps.
If you cannot get it into a sentence, it is too big. Cut it until you can, and keep the cut parts in a note for later.
2. Make the empty project
Open Xcode and create a new project: a multiplatform or iOS App, using SwiftUI for the interface and Swift for the language. Give it your sentence as a name. Save it somewhere you will find again.
Press the Run button (the triangle in the toolbar). The Simulator opens with a white screen saying "Hello, world!".
Checkpoint: you have a running app. It does nothing, and that is fine. If you never get here, no amount of Grok will help; get this working first.
Xcode's menus move between releases. When a path here does not match what is in front of you; Apple's own documentation is the source of truth, it is linked at the bottom of this page.
3. Ask Grok for the first screen
Open the file called ContentView.swift. That is the "Hello, world!" screen.
Now ask Grok, and be this specific:
I am building an iOS app in Xcode using SwiftUI. I have a new empty project and I am editing ContentView.swift. Write the complete contents of that file for a tip calculator: an amount field, a row of tip percentage buttons for 15, 18 and 20 percent, and a total underneath that updates as I type. Give me the whole file, not a fragment, and do not use any third-party libraries.
Three things in that prompt are doing the work:
- The whole file, not a fragment. Fragments are the single biggest source of wasted time for someone who cannot yet see where a fragment goes.
- Which file. Grok cannot see your project. Tell it what it is editing.
- No third-party libraries. Otherwise you may get an answer that assumes a package you have not installed, and the error that follows is confusing.
Select everything in ContentView.swift, paste the answer over it, and run.
4. When it does not build: the loop that matters
It often will not build the first time. This is normal and it is not a sign you picked the wrong tool.
Xcode shows errors in red down the left. Click the first one. Copy the exact error text and the line it points at, and send it back:
Building that gave me this error on line 24:
Cannot find 'tipPercentage' in scope. Here is the current file: [paste the whole file]. Fix it and give me the corrected file back.
Then run again. Repeat.
Two rules keep this loop short:
- Fix one error at a time, from the top. One real mistake often produces five red messages. Fixing the first frequently clears the rest.
- Always send the current file back. After two or three rounds, the file in front of you and the file Grok has in mind have drifted apart, and you will get fixes for code you do not have.
Checkpoint: the app runs in the Simulator and does the thing in your sentence, even if it is ugly.
5. Change one thing at a time
Now build it out, one small request per round:
Add a switch that lets me split the bill between 1 and 8 people, and show the per-person amount under the total. Give me the whole updated file.
Run after every change. If you make five changes and it breaks, you have five suspects; if you make one, you have one. This is the habit that separates an afternoon from a week.
When you like where it is, screenshot it. You are further along than most people who say they want to build an app.
6. Put it on your own phone
Plug your iPhone into the Mac and unlock it. In Xcode, sign in with your Apple ID in Settings, pick your phone from the device list at the top instead of the Simulator, and run. The first time, your phone will ask you to trust the developer certificate in its own settings; iOS tells you exactly where.
An app signed with a free Apple ID stops working after a while and needs rebuilding from Xcode. That is Apple's rule, not a bug, and the current terms are in Apple's documentation.
Checkpoint: your app, made today, on your own home screen.
What to expect from this: honestly
Grok is genuinely good at the first eighty percent of a small app: layout, state, a list, a form, arithmetic. It is weaker where your app meets the wider world (permissions, background behaviour, anything involving a payment or an account. When you get there, slow down, and check what it tells you against Apple's documentation rather than trusting the code because it compiled.
Compiling is not the same as correct. It only means the sentence was grammatical.
Where to go next
- Prompting fundamentals that survive model updates, why the specific prompt above works.
- Code review and debugging prompts, copy-ready prompts for the error loop in step 4.
- Checking Grok's answers without doubling your work, how much to verify, and when.