Apr 28, 2025 · 57m · startup-ideas

How he built iOS apps that PRINT with Cursor + Claude

Chris Raroque · 45m spoken Greg Isenberg · 6m spoken
0:00 / 0:00
▶ Watch on YouTube →

gold bands on the timeline = statements, start to end. Hover to read, click to jump. CC turns on captions

Indie developer Chris demonstrates an end-to-end blueprint for building polished, agentic native iOS apps in Swift using Cursor, Claude 3.7, and OpenRouter, showcasing how solo builders can achieve enterprise-scale productivity.

How this conversation actually went

Every chapter scored 0–10 on four independent dynamics. Hover any point for the reasoning behind the score. Greg holds 12.8% of the talking time here. How this is scored →

Greg as informed peer 2.7 Guest teaching 6.6 Guest disagreement 0.2 Greg pushing back 0.1
05100:0015:0030:0045:001:04–6:34 · Greg as informed peer 2/10 Welcoming Chris and Setting Expectations for Native Development Greg sets the stage by asking what listeners will uniquely learn, and Chris provides an in-depth breakdown of his native iOS stack using Cursor and Claude 3.7. The tone is welcoming and collaborative.6:34–9:55 · Greg as informed peer 1/10 Sponsor Break: Startup Empire Community After Greg's brief community sponsor read, Chris details the specific technical caveats of running Xcode projects in Cursor and why manual framework setup is required. Greg reacts with genuine surprise at the workflow.9:56–16:10 · Greg as informed peer 2/10 Feature Ideation and UI-First Generation for the Luna App Chris walks through his UI-first methodology, explaining why decoupling frontend generation from backend data prevents LLM hallucinations. Greg listens and encourages the demonstration.16:10–25:53 · Greg as informed peer 5/10 Refining Mobile Chat UX and Prompting with Visual Screenshots Greg contributes his experience building mobile chat apps and UX standards, while Chris educates on integrating OpenRouter and indexing Apple documentation into Cursor. Greg playfully challenges Chris to prove the live demo functions.25:54–30:30 · Greg as informed peer 4/10 Prompt Optimization Using Claude and Structured XML Chris demonstrates how structuring system prompts with XML tags in Claude produces concise, conversational responses. Greg reinforces the value of prompt engineering for end-user experience.30:30–34:16 · Greg as informed peer 4/10 Generating Realistic Mock Data for Testing and Social Proof Chris shares his technique for prompting localized, realistic mock data to improve testing fidelity. Greg immediately builds on this by explaining how high-quality dummy data helps startup demo videos go viral on X.34:17–45:12 · Greg as informed peer 2/10 Implementing Local Tool and Function Calling Agents Chris delivers a technical walkthrough on implementing local tool and function calling to prevent context window bloat and manage API costs. Greg observes intently as Chris validates the dynamic date-range queries.45:12–48:33 · Greg as informed peer 1/10 Displaying Real-Time Token Metrics and Model Telemetry Chris explains how displaying token telemetry and generation pricing in-app helps optimize LLM unit economics during development. He openly corrects an erroneous cost display on screen during the walkthrough.48:33–53:32 · Greg as informed peer 4/10 Generating Consistent Mascot Assets with ChatGPT-4o Chris shares his workflow for creating consistent app mascots and empty states using GPT-4o image generation. Greg advises listeners to use AI to humanize bare-bones UI components with delightful micro-moments.53:33–57:06 · Greg as informed peer 2/10 Final Advice: Navigating AI Coding for Developers and Beginners Chris shares concluding advice, warning non-developers about Cursor's security risks like API key leaks and recommending beginner tools like Lovable or Replit. Greg wraps up the conversation warmly.1:04–6:34 · Guest teaching 6/10 Welcoming Chris and Setting Expectations for Native Development Greg sets the stage by asking what listeners will uniquely learn, and Chris provides an in-depth breakdown of his native iOS stack using Cursor and Claude 3.7. The tone is welcoming and collaborative.6:34–9:55 · Guest teaching 7/10 Sponsor Break: Startup Empire Community After Greg's brief community sponsor read, Chris details the specific technical caveats of running Xcode projects in Cursor and why manual framework setup is required. Greg reacts with genuine surprise at the workflow.9:56–16:10 · Guest teaching 7/10 Feature Ideation and UI-First Generation for the Luna App Chris walks through his UI-first methodology, explaining why decoupling frontend generation from backend data prevents LLM hallucinations. Greg listens and encourages the demonstration.16:10–25:53 · Guest teaching 7/10 Refining Mobile Chat UX and Prompting with Visual Screenshots Greg contributes his experience building mobile chat apps and UX standards, while Chris educates on integrating OpenRouter and indexing Apple documentation into Cursor. Greg playfully challenges Chris to prove the live demo functions.25:54–30:30 · Guest teaching 6/10 Prompt Optimization Using Claude and Structured XML Chris demonstrates how structuring system prompts with XML tags in Claude produces concise, conversational responses. Greg reinforces the value of prompt engineering for end-user experience.30:30–34:16 · Guest teaching 6/10 Generating Realistic Mock Data for Testing and Social Proof Chris shares his technique for prompting localized, realistic mock data to improve testing fidelity. Greg immediately builds on this by explaining how high-quality dummy data helps startup demo videos go viral on X.34:17–45:12 · Guest teaching 8/10 Implementing Local Tool and Function Calling Agents Chris delivers a technical walkthrough on implementing local tool and function calling to prevent context window bloat and manage API costs. Greg observes intently as Chris validates the dynamic date-range queries.45:12–48:33 · Guest teaching 6/10 Displaying Real-Time Token Metrics and Model Telemetry Chris explains how displaying token telemetry and generation pricing in-app helps optimize LLM unit economics during development. He openly corrects an erroneous cost display on screen during the walkthrough.48:33–53:32 · Guest teaching 6/10 Generating Consistent Mascot Assets with ChatGPT-4o Chris shares his workflow for creating consistent app mascots and empty states using GPT-4o image generation. Greg advises listeners to use AI to humanize bare-bones UI components with delightful micro-moments.53:33–57:06 · Guest teaching 7/10 Final Advice: Navigating AI Coding for Developers and Beginners Chris shares concluding advice, warning non-developers about Cursor's security risks like API key leaks and recommending beginner tools like Lovable or Replit. Greg wraps up the conversation warmly.1:04–6:34 · Guest disagreement 0/10 Welcoming Chris and Setting Expectations for Native Development Greg sets the stage by asking what listeners will uniquely learn, and Chris provides an in-depth breakdown of his native iOS stack using Cursor and Claude 3.7. The tone is welcoming and collaborative.6:34–9:55 · Guest disagreement 0/10 Sponsor Break: Startup Empire Community After Greg's brief community sponsor read, Chris details the specific technical caveats of running Xcode projects in Cursor and why manual framework setup is required. Greg reacts with genuine surprise at the workflow.9:56–16:10 · Guest disagreement 0/10 Feature Ideation and UI-First Generation for the Luna App Chris walks through his UI-first methodology, explaining why decoupling frontend generation from backend data prevents LLM hallucinations. Greg listens and encourages the demonstration.16:10–25:53 · Guest disagreement 0/10 Refining Mobile Chat UX and Prompting with Visual Screenshots Greg contributes his experience building mobile chat apps and UX standards, while Chris educates on integrating OpenRouter and indexing Apple documentation into Cursor. Greg playfully challenges Chris to prove the live demo functions.25:54–30:30 · Guest disagreement 0/10 Prompt Optimization Using Claude and Structured XML Chris demonstrates how structuring system prompts with XML tags in Claude produces concise, conversational responses. Greg reinforces the value of prompt engineering for end-user experience.30:30–34:16 · Guest disagreement 0/10 Generating Realistic Mock Data for Testing and Social Proof Chris shares his technique for prompting localized, realistic mock data to improve testing fidelity. Greg immediately builds on this by explaining how high-quality dummy data helps startup demo videos go viral on X.34:17–45:12 · Guest disagreement 0/10 Implementing Local Tool and Function Calling Agents Chris delivers a technical walkthrough on implementing local tool and function calling to prevent context window bloat and manage API costs. Greg observes intently as Chris validates the dynamic date-range queries.45:12–48:33 · Guest disagreement 1/10 Displaying Real-Time Token Metrics and Model Telemetry Chris explains how displaying token telemetry and generation pricing in-app helps optimize LLM unit economics during development. He openly corrects an erroneous cost display on screen during the walkthrough.48:33–53:32 · Guest disagreement 0/10 Generating Consistent Mascot Assets with ChatGPT-4o Chris shares his workflow for creating consistent app mascots and empty states using GPT-4o image generation. Greg advises listeners to use AI to humanize bare-bones UI components with delightful micro-moments.53:33–57:06 · Guest disagreement 1/10 Final Advice: Navigating AI Coding for Developers and Beginners Chris shares concluding advice, warning non-developers about Cursor's security risks like API key leaks and recommending beginner tools like Lovable or Replit. Greg wraps up the conversation warmly.1:04–6:34 · Greg pushing back 0/10 Welcoming Chris and Setting Expectations for Native Development Greg sets the stage by asking what listeners will uniquely learn, and Chris provides an in-depth breakdown of his native iOS stack using Cursor and Claude 3.7. The tone is welcoming and collaborative.6:34–9:55 · Greg pushing back 0/10 Sponsor Break: Startup Empire Community After Greg's brief community sponsor read, Chris details the specific technical caveats of running Xcode projects in Cursor and why manual framework setup is required. Greg reacts with genuine surprise at the workflow.9:56–16:10 · Greg pushing back 0/10 Feature Ideation and UI-First Generation for the Luna App Chris walks through his UI-first methodology, explaining why decoupling frontend generation from backend data prevents LLM hallucinations. Greg listens and encourages the demonstration.16:10–25:53 · Greg pushing back 1/10 Refining Mobile Chat UX and Prompting with Visual Screenshots Greg contributes his experience building mobile chat apps and UX standards, while Chris educates on integrating OpenRouter and indexing Apple documentation into Cursor. Greg playfully challenges Chris to prove the live demo functions.25:54–30:30 · Greg pushing back 0/10 Prompt Optimization Using Claude and Structured XML Chris demonstrates how structuring system prompts with XML tags in Claude produces concise, conversational responses. Greg reinforces the value of prompt engineering for end-user experience.30:30–34:16 · Greg pushing back 0/10 Generating Realistic Mock Data for Testing and Social Proof Chris shares his technique for prompting localized, realistic mock data to improve testing fidelity. Greg immediately builds on this by explaining how high-quality dummy data helps startup demo videos go viral on X.34:17–45:12 · Greg pushing back 0/10 Implementing Local Tool and Function Calling Agents Chris delivers a technical walkthrough on implementing local tool and function calling to prevent context window bloat and manage API costs. Greg observes intently as Chris validates the dynamic date-range queries.45:12–48:33 · Greg pushing back 0/10 Displaying Real-Time Token Metrics and Model Telemetry Chris explains how displaying token telemetry and generation pricing in-app helps optimize LLM unit economics during development. He openly corrects an erroneous cost display on screen during the walkthrough.48:33–53:32 · Greg pushing back 0/10 Generating Consistent Mascot Assets with ChatGPT-4o Chris shares his workflow for creating consistent app mascots and empty states using GPT-4o image generation. Greg advises listeners to use AI to humanize bare-bones UI components with delightful micro-moments.53:33–57:06 · Greg pushing back 0/10 Final Advice: Navigating AI Coding for Developers and Beginners Chris shares concluding advice, warning non-developers about Cursor's security risks like API key leaks and recommending beginner tools like Lovable or Replit. Greg wraps up the conversation warmly.

speaking balance: gold is Greg, purple is the guest (3 minute bins)

0:00 · Greg 79.9% · guest 20.1%0:00 · Greg 79.9% · guest 20.1%3:00 · Greg 0% · guest 100%3:00 · Greg 0% · guest 100%6:00 · Greg 32.3% · guest 67.7%6:00 · Greg 32.3% · guest 67.7%9:00 · Greg 0.6% · guest 99.4%9:00 · Greg 0.6% · guest 99.4%12:00 · Greg 0% · guest 100%12:00 · Greg 0% · guest 100%15:00 · Greg 17.7% · guest 82.3%15:00 · Greg 17.7% · guest 82.3%18:00 · Greg 2.2% · guest 97.8%18:00 · Greg 2.2% · guest 97.8%21:00 · Greg 1.1% · guest 98.9%21:00 · Greg 1.1% · guest 98.9%24:00 · Greg 4.5% · guest 95.5%24:00 · Greg 4.5% · guest 95.5%27:00 · Greg 14.6% · guest 85.4%27:00 · Greg 14.6% · guest 85.4%30:00 · Greg 34.9% · guest 65.1%30:00 · Greg 34.9% · guest 65.1%33:00 · Greg 1.8% · guest 98.2%33:00 · Greg 1.8% · guest 98.2%36:00 · Greg 0% · guest 100%36:00 · Greg 0% · guest 100%39:00 · Greg 0% · guest 100%39:00 · Greg 0% · guest 100%42:00 · Greg 0.4% · guest 99.6%42:00 · Greg 0.4% · guest 99.6%45:00 · Greg 0% · guest 100%45:00 · Greg 0% · guest 100%48:00 · Greg 0% · guest 100%48:00 · Greg 0% · guest 100%51:00 · Greg 32.7% · guest 67.3%51:00 · Greg 32.7% · guest 67.3%54:00 · Greg 19.4% · guest 80.6%54:00 · Greg 19.4% · guest 80.6%57:00 · Greg 50.6% · guest 49.4%57:00 · Greg 50.6% · guest 49.4%
Sharpest disagreement ▶ 54:40 Warning against raw Cursor usage for beginners

Chris firmly pushes back against the premise that complete beginners should jump straight into Cursor, citing serious security risks like automated bots scraping exposed API keys from frontend deployments.

Hardest push from Greg ▶ 25:40 Trust and verify the live build

Greg playfully presses Chris to verify that the generated code actually executed after a failed on-screen interaction, joking about holding the demo to high verification standards.

Biggest teaching moment ▶ 36:25 Architecting local function calling agents

Chris methodically breaks down how to construct local function calling loops in mobile apps, illustrating how to query local databases rather than blindly stuffing entire user histories into LLM context windows.

Greg holds their own ▶ 32:23 Leveraging realistic mock data for viral distribution

Greg demonstrates his product and marketing expertise by explaining how realistic mock data dramatically improves social proof and conversion when demoing MVPs publicly on social media.

the scores for every segment, with the reasoning behind each
ChapterTopicGreg as informed peerGuest teachingGuest disagreementGreg pushing backWhy
Welcoming Chris and Setting Expectations for Native Development 2600 Greg sets the stage by asking what listeners will uniquely learn, and Chris provides an in-depth breakdown of his native iOS stack using Cursor and Claude 3.7. The tone is welcoming and collaborative.
Sponsor Break: Startup Empire Community 1700 After Greg's brief community sponsor read, Chris details the specific technical caveats of running Xcode projects in Cursor and why manual framework setup is required. Greg reacts with genuine surprise at the workflow.
Feature Ideation and UI-First Generation for the Luna App 2700 Chris walks through his UI-first methodology, explaining why decoupling frontend generation from backend data prevents LLM hallucinations. Greg listens and encourages the demonstration.
Refining Mobile Chat UX and Prompting with Visual Screenshots 5701 Greg contributes his experience building mobile chat apps and UX standards, while Chris educates on integrating OpenRouter and indexing Apple documentation into Cursor. Greg playfully challenges Chris to prove the live demo functions.
Prompt Optimization Using Claude and Structured XML 4600 Chris demonstrates how structuring system prompts with XML tags in Claude produces concise, conversational responses. Greg reinforces the value of prompt engineering for end-user experience.
Generating Realistic Mock Data for Testing and Social Proof 4600 Chris shares his technique for prompting localized, realistic mock data to improve testing fidelity. Greg immediately builds on this by explaining how high-quality dummy data helps startup demo videos go viral on X.
Implementing Local Tool and Function Calling Agents 2800 Chris delivers a technical walkthrough on implementing local tool and function calling to prevent context window bloat and manage API costs. Greg observes intently as Chris validates the dynamic date-range queries.
Displaying Real-Time Token Metrics and Model Telemetry 1610 Chris explains how displaying token telemetry and generation pricing in-app helps optimize LLM unit economics during development. He openly corrects an erroneous cost display on screen during the walkthrough.
Generating Consistent Mascot Assets with ChatGPT-4o 4600 Chris shares his workflow for creating consistent app mascots and empty states using GPT-4o image generation. Greg advises listeners to use AI to humanize bare-bones UI components with delightful micro-moments.
Final Advice: Navigating AI Coding for Developers and Beginners 2710 Chris shares concluding advice, warning non-developers about Cursor's security risks like API key leaks and recommending beginner tools like Lovable or Replit. Greg wraps up the conversation warmly.

Statements from this episode (3)

Opinion
Isenberg: Native iOS apps offer superior polish over React Native
“Native iOS apps, but I've just seen sort of your react native apps. And there's just a level of polish that you get with native apps.”
Greg Isenberg Apr 28, 2025 ▶ 2:42
Insight
Isenberg: Realistic mock data makes social media demo videos more viral
“So what you can do is you can come up with an idea for a startup, use cursor to build it, use some of this mock data, record, you know, compile, build, record a video. Now with that data, that's way more interesting. Post it on X. See if people actually want t…”
Greg Isenberg Apr 28, 2025 ▶ 32:26
Prediction Not checkable as stated
Isenberg: AI builders will mostly churn out bare-bones shadcn clone apps
“My take on that is I think most people are going to create the shad CN apps, the apps that are sort of bare bones.”
Greg Isenberg Apr 28, 2025 ▶ 51:54
Made with StarZero

Turn any episode into a week of clips.

This entire site, over 300 episodes transcribed, diarized, checked and made playable, runs on the StarZero media pipeline. Drop in your own episode and the podcast clipper finds the moments worth sharing, cuts them, captions them, and reframes them for every feed.