AI DevelopmentMay 20267 min read

Building an AI App: From Idea to App Store in 6 Months

We built an iOS app that generates interior designs using AI. Here's the technical stack, the challenges, and what we'd do differently.

The Idea

In late 2024, we asked: what if homeowners could redesign their rooms using AI?

Not with expensive designers. Not with complicated software. Just upload a photo, describe what you want, and get a photorealistic design in seconds.

That idea became Aspire Interiors — an iOS app with three ways to generate room designs:

  • Text Only: Describe your dream room, get 4 design variations
  • With Inspiration: Upload a mood board, AI extracts colours and styles
  • Copy a Room: Upload a photo of any room, AI replicates the design for your space

Six months later, the app is in pre-launch, preparing for App Store submission.

Here's how we built it.

The Technical Stack

LayerTechnologyWhy We Chose It
FrontendSwift + SwiftUINative iOS performance, Apple's design language
BackendSupabase (PostgreSQL)Real-time database, auth, storage — all in one
AI GenerationVertex AI (Google Cloud)Cost-effective, high-quality interior design generation
Image AnalysisCloud Functions + OpenAI VisionExtract design elements from uploaded photos
AuthenticationSign In with AppleRequired for App Store, privacy-focused
StorageSupabase StorageDirect image hosting, CDN delivery
AnalyticsCustom events in SupabaseLightweight, no third-party dependencies

Total development cost: Under £10,000 (AI tools + cloud services + developer time).

Team: Mark (strategy), 2 full-time developers, 3 AI developers.

The Build Process

Phase 1: Design Concept (Weeks 1-4)

Before writing code, we built the design system:

  • 40+ database tables for materials, colours, styles, and room types
  • Complete design guidelines (13 materials, colour psychology rules)
  • User flow wireframes (6 screens, 3 bespoke options)
  • Prompt engineering framework for consistent image generation

Lesson: Spend more time on design than you think. Changing a database schema after launch is painful.

Phase 2: Core Generation (Weeks 5-12)

The heart of the app is the design generation pipeline:

  1. User selects room type (living room, bedroom, bathroom)
  2. User inputs preferences (style, materials, colour, budget)
  3. AI generates 4 unique designs using Vertex AI
  4. Images stream back to the app in real-time
  5. User can edit, regenerate, or save designs

Technical challenge: Vertex AI has a 60-second timeout. For complex rooms, generation could take 45-55 seconds. We built a progressive loading system that shows a preview while the full image generates.

Phase 3: Bespoke Options (Weeks 13-20)

The three bespoke options required different technical approaches:

Option 1 — Text Only:

  • Straightforward: user inputs → AI generates
  • Challenge: making 4 variations feel distinct, not just colour swaps

Option 2 — With Inspiration (Mood Board):

  • Technical: Upload image → Cloud Function extracts colours and styles using OpenAI Vision → feed into generation prompt
  • Challenge: Extracting accurate colour hex codes from photos with mixed lighting

Option 3 — Copy a Room:

  • Technical: Upload room photo → AI extracts 6 design elements (materials, colours, lighting, layout, furniture, style) → map to user's room type
  • Challenge: Avoiding "hallucination" — when AI invents elements that don't exist in the photo

Phase 4: Polish & Persistence (Weeks 21-24)

  • Added design history (all generated designs saved to profile)
  • Built full image viewer (pinch-to-zoom, share, save to camera roll)
  • Implemented Sign In with Apple (required for App Store)
  • Added analytics tracking (generation counts, option usage, completion rates)

The Challenges (And How We Solved Them)

Challenge 1: Database Constraints

The app_designs table had a NOT NULL constraint on original_image_path. But Option 1 (text only) doesn't have an original image. The app crashed every time a user tried to save a text-only design.

Fix: Removed the NOT NULL constraint. Added validation logic in the app instead.

Lesson: Database design should match actual user flows, not idealised ones.

Challenge 2: AI Commentary

Early versions of the extraction API returned verbose commentary like "this warm beige tone from the mood board inspires the colour palette." Users didn't want commentary. They wanted clean data.

Fix: Rewrote the extraction prompt to output only field assignments (no commentary, no mood board references).

Lesson: AI output needs to be designed for the user, not for the developer.

Challenge 3: App Store Requirements

Apple requires:

  • Privacy manifest (PrivacyInfo.xcprivacy)
  • Sign In with Apple
  • App Review notes explaining non-obvious features
  • Age rating if AI generates content

Fix:

  • Created privacy manifest documenting all data collection
  • Implemented Sign In with Apple before any other auth method
  • Wrote detailed App Review notes explaining AI generation process
  • Prepared for 17+ age rating (AI-generated imagery)

Lesson: Read App Review guidelines before you build, not after.

What We'd Do Differently

If we started again:

  1. Build Android from day one — React Native or Flutter. iOS-only limits market by 50%.
  2. Add a free tier — 3 free generations before paywall. Current model requires subscription upfront, which kills conversion.
  3. Implement social sharing sooner — "Share your design" drove 40% of Aspire's social traffic. The app should have built-in sharing.
  4. Use a simpler database — Supabase is powerful but overkill for v1. SQLite + Cloud sync would have launched faster.
  5. Test with real users earlier — We waited until month 5 for beta testing. Should have started at month 2.

The Result

App Status: Pre-launch (TestFlight beta with 20 users)

Metrics:

  • 6 months from first sketch to TestFlight
  • 3 bespoke design options working end-to-end
  • 4 design variations per generation
  • Under £10,000 total development cost
  • 40+ database tables for design intelligence

Next Steps:

  • Sign In with Apple (in progress)
  • App Store submission (preparing privacy manifest and review notes)
  • Public beta (targeting 100 users)
  • Android version (Q3 2026)

The Bottom Line

You don't need a team of 10 developers to build an AI app. You need:

  • A clear concept
  • The right technical stack
  • A willingness to iterate
  • And AI tools that handle the heavy lifting

The barrier to building AI-powered products has never been lower. The barrier to good AI-powered products is still high — and that's where strategy matters.

Have an App Idea?

Book a Free Strategy Call — we'll tell you if it's technically feasible and what it would cost.

Got an App Idea?

We'll tell you if it's technically feasible, what it would cost, and how long it would take.

Book a Free Strategy Call