TradaZen case study: launching an iPhone app
By Mehdi Azizi
Updated , 8 min
TradaZen from start to finish: first commit to App Store in 26 days, Apple rejections, ad lessons and two pivots. Everything I learned.
TradaZen at a glance
TradaZen is an iPhone app for practicing trading on real market data. I launched it solo, with Claude Code, without being an iOS developer by trade. Here's how it went, step by step.
| Milestone | Date |
|---|---|
| First commit | June 21, 2026 |
| First build on TestFlight | June 25, 2026 |
| Live on the App Store | July 17, 2026 |
| First pivot: a simulator on the real market | September 13, 2026 |
| Second pivot: a Duolingo-style path | September 22, 2026 |
If you want to build your first app, focus on the sections about Apple's rejections and the pivots. That's where you lose the most time.

The original idea: a trading journal with an AI coach
The first version of TradaZen was a trading journal. You logged your trades, and an AI companion helped you stay disciplined: a check-in before the session, another one after, alerts about FOMO and revenge trading after a loss.
One rule never changed: process, not profit. The score rewarded discipline, never an amount won. That rule survived both pivots.
Building fast with Claude Code

The stack is the one I use for all my apps: React Native, Expo, EAS for builds, Supabase for the backend, RevenueCat for subscriptions. I walk through the method step by step in my Claude Code tutorial.
Four days after the first commit, the app was running on TestFlight with its onboarding, its paywall and a demo mode. That's what AI really changes: the first draft comes together very fast.
What it doesn't change is verification. All my automated tests were green the day I found, by playing it myself, a lesson that never ended. A green test doesn't prove an app works: you have to use it.
Apple's rejections
The first submission went out in early July. It sat in "Waiting for Review" for over a week without a word from Apple, so I pulled it and started over with a new build. Then the rejections piled up.
- Permission messages. The app was translated into several languages, but the iOS permission messages stayed in French. Fix: translate every message into every language.
- Guidelines 5.1.1 and 5.1.2, personal data. Consent to send data to the AI went through a truncated alert, shown only on the first message. Fix: a real consent screen, before anything is sent.
- Guideline 3.1.2(c), subscriptions. The weekly price was more visible than the amount actually billed. Fix: put the billed price first, the weekly price second.
- ITMS-91064, when uploading the next version. The app's privacy manifest declared ad tracking without listing the domains involved. Fix: add those domains to the app's configuration.
On July 17, the first version was live. None of these reasons were technical in the code sense: they were all about user trust, their data and their money. That's where Apple doesn't budge. I cover the most common traps in why Apple rejects an app and in the guide on guideline 2.1.
Apple Search Ads: what they taught me
Right at launch, I ran Apple Search Ads campaigns in France, then in other countries. Three lessons:
- Demand matters more than cost per tap. If few people type your keyword into the App Store, the best bid in the world won't get you anything.
- English-speaking countries are expensive. Go there with a product page and a paywall that are already dialed in.
- Turn off Search Match at the start. In the Finance category, Apple was showing the app on bank searches that had nothing to do with it.
Lesson: before paying for ads, check that people are already searching for what you sell.
Why I changed everything
People installed the app, but the promise didn't make them want to go further. Part of the problem was the paywall itself: the buttons said "Continue" instead of mentioning the free trial, and a bug hid the trial offer from people who were eligible. I fixed it.
But the real problem was elsewhere: nobody wakes up in the morning looking for a "mental coach for traders." What beginner traders want is to practice.
I break down the most common paywall mistakes in this guide. They're dangerous because they're invisible: the app seems to work, and you don't see what you're losing.
Pivot 1: a simulator on real charts
On September 13, TradaZen became "TradaZen : Simulateur trading". The idea fits in one sentence: a real chart at a real date, with what comes next hidden; you pick Long or Short, and the market reveals what it actually did.
I removed the AI companion and rewrote the App Store page in several languages. Result: trials came in from China, Germany and Japan, countries where I hadn't run any ads.
Pivot 2: the Duolingo of trading
New observation a week later. Players chained games in their first session, but nothing gave them a reason to come back the next day.
The version live since September 22 adds what brings you back every day in an app like Duolingo:
- a lesson path, from candlestick basics all the way to the trader's craft;
- a day streak, daily quests and chests;
- a weekly league and friends.
The core stays the same: real data, never any promise of profit.
Pricing: test, but in the right place
I adjusted the price grid and the paywall layout several times. Today, the main offer is an annual subscription with a free trial, plus a weekly plan for people who want to try without committing.
Changing prices isn't a problem in itself. The real trap is touching the price when the problem is somewhere else. With TradaZen, it was the promise that needed to change, not the price. If you're torn between a subscription and a one-time purchase, read this comparison.
What I'd do differently
- Check demand before coding. Look at what people actually type into the App Store, in several countries, before writing the first line.
- Validate the promise, not the app. An App Store page and a paywall are enough to see if people want to try.
- Prepare for Apple's rules from day one: consent, price display, translations. These rejections never had to happen.
- Translate the product page right away. Trials came from countries where I'd never run ads.
- Play your app every day. Tests don't catch a lesson stuck in a loop; a player does.
What this means for your first app
Launching an app isn't a straight line: you get the promise wrong, Apple rejects you, ads don't do everything, you fix things, and you start again faster each time.
The difference is knowing what to look at at each step. That's what I put into the iOS Kit: the starter code from my apps and a four-step path, so your first app avoids TradaZen's detours. The homepage shows how to build a mobile app with this code and Claude Code, the tool I used to build TradaZen.
Frequently asked questions
What are the takeaways from the TradaZen case study for launching an iPhone app?
Check demand before coding by looking at what people type into the App Store, in several countries. Validate the promise rather than the app: an App Store page and a paywall are enough to see if people want to try. Prepare for Apple's rules from day one, translate your product page right away and play your app every day.
How was TradaZen built with Claude Code?
I launched TradaZen solo, with Claude Code, without being an iOS developer by trade. The stack is the same as all my apps: React Native, Expo, EAS for builds, Supabase for the backend and RevenueCat for subscriptions. AI speeds up the first draft, not verification: a green test doesn't prove an app works, you have to use it. The step-by-step method is in my Claude Code tutorial.
How long did it take to launch TradaZen?
For TradaZen, 26 days passed between the first commit (June 21, 2026) and going live on the App Store (July 17, 2026). The first build was on TestFlight on June 25, four days after the first commit. Before going live, the first submission sat waiting for over a week without a word from Apple, so I pulled it and started over with a new build.
Which Apple rejections did TradaZen get?
Four reasons, all tied to user trust, data or money. The iOS permission messages stayed in French in a translated app, and consent to send data to the AI went through a truncated alert (guidelines 5.1.1 and 5.1.2). The weekly price was more visible than the billed amount (3.1.2(c)). The app's privacy manifest declared tracking without listing its domains (ITMS-91064).
What are the takeaways from Apple Search Ads for launching an app?
Before paying for ads, check that people are already searching for what you sell: demand matters more than cost per tap. English-speaking countries are expensive, so go there with a product page and a paywall that are already dialed in. Also turn off Search Match at the start: in the Finance category, Apple was showing the app on unrelated bank searches.
Why did TradaZen change concepts twice?
Because the promise didn't make people want to go further: nobody searches for a "mental coach for traders." It was the promise that needed to change, not the price. On September 13, TradaZen became a simulator on real charts, then on September 22 a Duolingo-style path gave people a reason to come back every day.