Guide

    How to create a native mobile app in 9 steps in 2026

    From idea to the App Store, with an app written in the platform’s own language that you own from the first build. This guide includes the step most guides skip — deciding whether you need an app at all — and a cost section where every number is checkable.

    Most guides with this title are written by a company that sells one way of building apps, and this one is no different — Modaal is a macOS tool that builds native iOS and Android apps, and you should read everything below knowing that.

    Here is what we will do about it. Every cost in this guide is a number you can verify yourself, on the page of the company charging it. Step 2 will genuinely try to talk half of you out of building an app. And where our way has a real tradeoff — it needs a Mac, it does not build web apps, going to two platforms means two native projects — the guide says so in plain sentences rather than in a footnote.

    "Native" means the app is written in the platform's own language and toolkit: Swift and SwiftUI on iOS, Kotlin and Jetpack Compose on Android. Not a website in a wrapper, not a cross-platform runtime — the same materials the platform's own apps are made of. That is what the App Store's best apps are built from, and, more recently, it is what an AI agent can now build with you.

    Step 1: Define the one thing your app does

    Not the feature list — the sentence. "It tracks my deliveries and tells me before something is late." "It lets our members book the climbing wall." If the sentence needs an "and also", cut the second half; it can come back in version two.

    This matters more with an AI agent than it did before, because an agent will cheerfully build whatever you describe, including a muddle. The single clearest predictor of whether a first app ships is whether its owner can say what it does in one breath.

    Write the sentence down. It becomes the seed of your spec in step 6, and the test in step 7 — if a screen does not serve the sentence, it goes.

    Step 2: Decide whether you actually need a native app

    This is the step other guides skip, because every company writing one sells a way of building apps and would rather you got straight to it. We sell one too. Here is the honest fork anyway.

    Build a website instead if: people will use it occasionally rather than daily; they arrive from links, search or ads; you need to change it hourly; or you are still finding out whether anyone wants it. A link you can send beats an install you have to ask for, and a web tool like Lovable will have something live today, with no Mac and no store review.

    Build a native app if: it belongs on the home screen and in daily habit; it needs the parts of the phone the browser cannot reliably reach — widgets, Live Activities, background work, the camera and sensors at full depth; it should feel like the platform's own apps feel; or being in the App Store is itself part of the product's credibility.

    Genuinely unsure? Ship the website first. Nothing about going native later is harmed by having validated the idea on the web — the screens, flows and data model all carry over, and that thinking is the expensive part. The longer version of this decision, with the cases argued properly, is at Native app or web app?.

    If the fork sent you to the web: close this tab with our blessing. The rest of this guide assumes you need the real thing.

    Step 3: Do the research that changes decisions — skip the rest

    Market research for a first app is usually either skipped entirely or turned into a month of procrastination. The useful middle is small:

    Search the App Store for your sentence from step 1. Read the top results' reviews — one-star reviews of your competitors are the cheapest product research that exists, because they are users of your exact idea telling you where it failed them.

    Find where your users complain today. The subreddit, the Facebook group, the group chat. You are looking for the words they use, because those words become your App Store listing and your onboarding copy.

    Check the query demand if the app will be found through search. Ordinary keyword tools work on App Store queries too, roughly.

    What you are not doing is validating whether to build — you did that in step 2 — or writing a forty-page analysis. Two evenings. The output is a list of the three complaints you will fix and the words your users use.

    Step 4: Cut the feature list, then pick the architecture to match

    Take everything the app could do and sort it into three piles: version one, version two, and never. Version one is the smallest set that serves the sentence from step 1. Be brutal — every feature you defer is weeks sooner in users' hands, and users will reorder your version-two pile for you anyway.

    Then make the one technical decision that is genuinely hard to reverse. Modaal scaffolds two templates: MVVM for quick prototypes — small module structure, view models that stay unit-testable — and RIBs, Uber's module pattern, for production apps: an explicit module tree with protocol boundaries, so the fiftieth feature does not land in the same file as the first.

    Choose by trajectory, not by today. Migrating from MVVM to RIBs is a full rewrite, not a refactor. If there is any real chance this becomes a business, start on the production template; the extra structure costs you little on day one and saves the rewrite later.

    Step 5: Design the screens before anyone builds them

    You do not need to be a designer, and with a native toolkit you inherit more design than you might expect — SwiftUI's system components already behave the way iPhone users' thumbs expect, which is a quiet advantage of building native: the platform has done a decade of design work for you.

    What you do need is to draw the flow. Boxes and arrows on paper are enough: every screen, what is on it, and where each tap leads. Two rules from watching first apps go wrong. Design the empty states first — your app on day one has no data in it, and a new user meets the empty version of every screen before the full one. And count the taps from opening the app to the moment of value; if it is more than three, redraw.

    If you work in Figma, fine — but paper is not a lesser version of this step. The artefact is the flow, not the pixels; the pixels get real in step 6.

    Step 6: Write the spec, then let the agent build against it

    Here is where the AI actually enters, and the order matters: spec first, code second. The failure mode of building with an agent is not bad code — modern agents write competent Swift — it is an agent implementing a vague idea forty plausible ways.

    In Modaal this is a switch called Plan. With Plan on, the agent does not write code. For a new project it researches the architectural approach, confirms the key decisions with you, and writes a PRD — a plain document recording what the app does and, just as important, what it is deliberately not doing yet. Your step 1 sentence, step 4 piles and step 5 flow drop straight into this conversation.

    Then you turn Plan off and it implements against that spec — and this is the part that separates a native tool driving Xcode from a chat window that emits code: after each change, the app is actually compiled and run, and when the build breaks, the agent reads the errors and fixes them in a loop. You watch your app take shape in the simulator, feature by feature, and steer in plain language.

    You bring the agent you already pay for — Claude, Codex, Gemini, Copilot, Cursor and others — and Modaal orchestrates it with no prompt cap, which matters because building is iterative and iteration you are afraid to spend is iteration that does not happen.

    Step 7: Test it like a stranger, on glass

    The simulator got you here; the device tells the truth. An app that felt fine on a Mac reveals its real personality on a phone — thumb reach, glare, a spinner that is suddenly three seconds of your life. Install it on your own phone via Xcode and live with it for a week as your actual self, not as its proud parent.

    Then hand it to five people who match your step 3 research, say nothing, and watch. Where they hesitate is where the design is wrong; what they ask is what the onboarding failed to say. Five is enough — the same problems repeat after that.

    Two mechanical layers under the human one. Your project scaffolds with a passing test suite, and the agent runs build-and-fix loops as it works, so "it compiles and the tests pass" is your continuous floor. And when you are ready for a wider circle, TestFlight is Apple's own beta channel — you invite testers by email or link and ship them updates before the store sees anything.

    Step 8: Launch: the store listing is a product too

    Shipping to the App Store means an Apple Developer account ($99 a year, with identity verification), an App Store Connect listing, and review by an actual human at Apple — typically a day or two, occasionally longer, and everyone's first submission gets rejected for something small. Budget a week of calendar time and no drama.

    The listing deserves the same care as a screen in the app: the name and subtitle carry your keywords, the screenshots are your storefront, and the words your users used in step 3 belong here verbatim. One honest advantage of the native route surfaces at review time — your app is the ordinary case reviewers approve all day, not an edge case that needs explaining.

    Because a Modaal project is a standard Xcode project on your own disk, the submission path is Apple's own: archive in Xcode, upload to App Store Connect, submit. No vendor sits between you and the store, on launch day or any other day.

    This deserves its own guide, and it has one — the App Store submission walkthrough covers the listing, review, and the small rejections everyone hits, step by step.

    Step 9: Iterate — and when Android calls, answer it without a rewrite

    Version one is the beginning of the conversation. Reviews, analytics and support email now reorder your version-two pile better than any planning session could. Ship small and often; native apps update through the store, so a weekly rhythm of little improvements compounds fast.

    And then the question every successful iOS app is eventually asked: when do we do Android?

    The standard answers are both expensive. Rewrite the app in Kotlin and you now maintain two products that drift apart. Or move everything to a cross-platform framework and give back the native feel you chose in step 2.

    Modaal's answer is called Duet, and it splits the difference differently: the two platforms share what is on screen — the logic, the state, the rules — while each renders it in its own native toolkit. iOS renders SwiftUI, Android renders Compose, and neither knows the other exists. There is no cross-platform UI layer to inherit. Parity is not a promise but a test: shared behaviour is gated by fixtures replayed on both platforms and compared at byte equality, so if the two apps ever disagree about what should be on screen, the build fails.

    What that means in practice, from the first app built this way: when Android was added, zero logic files changed. The platform-specific work amounted to six ledger entries covering three regions where the platforms legitimately differ — things like Android's system photo picker against the in-app library on iOS. Everything the app knows was written once.

    So the honest sequencing for a founder: ship iOS first, learn from real users, and treat Android as an outcome you have already paid for rather than a second project. That is the trade Duet makes — two native codebases, one brain — and it is the opposite trade from every wrapper: instead of one codebase pretending to be two apps, two apps provably sharing one mind.

    What a native app actually costs

    Most guides anchor this section on developer salaries or agency quotes — numbers you cannot check and that were stale when they were typed. Here is the itemised version instead. Every line is a price published by the company charging it.

    ItemCostPaid to
    Apple Developer Program$99 / yearApple — required to ship to the App Store
    Google Play registration$25, onceGoogle — only when you ship Android
    A MacOne you may already ownXcode 26+ and ~50 GB free; Apple silicon recommended
    An AI agent subscriptionWhatever you already payClaude, ChatGPT, Gemini, Copilot and others all work — Modaal adds no per-token charge
    Modaal Free€0One active project, unlimited prompts, native iOS or Android, export any time
    Modaal Pro€9 / month billed annually (€15 monthly)Unlimited projects, both platforms, TestFlight and App Store distribution

    The dominant cost of a first app is none of these lines. It is your time — and the honest number for that depends on scope, which is why step 4 exists. What the AI changed is not the bill; it is that time now goes into deciding what to build rather than into typing it.

    How long does it take?

    We are not going to give you a number, because every number in a vendor's timeline section is an advertisement wearing a statistic's clothes — and the honest answer is that it depends almost entirely on step 4.

    What we can tell you is where the time goes, because the shape has changed. Building used to be the long pole; with an agent running build-and-fix loops, the implementation of a well-specified feature is now often the short part. The long parts are the ones no tool compresses: deciding what version one is, testing with real humans, and the week of calendar time the App Store process takes.

    Which is the practical argument for everything above: the steps that feel like delay — the sentence, the fork, the piles, the spec — are the actual work. The typing was never the mountain. It just used to look like one.

    Frequently asked questions

    Yes, and the real question has become which of two shapes suits you. Visual builders let you assemble an app from components in a browser. Agent-driven tools like Modaal have an AI write real native code — Swift and SwiftUI — from your description, compile it, and fix its own build errors, so you direct in plain language and end up owning a standard Xcode project. You do not need to read the code either way; the difference is what exists at the end.

    To build natively, yes — the toolchain that compiles iOS apps is Xcode, which runs only on macOS. Modaal needs a Mac with Xcode 26 or newer and roughly 50 GB free. If you have no Mac and native iOS is a hard requirement, cloud-build services exist that compile on their machines — see our comparisons for the tradeoffs, which mostly concern price and who holds your project.

    The verifiable floor: $99 a year to Apple, $25 once to Google for Android, a Mac, and your tooling. Modaal builds a real native app on its free plan — one project, unlimited prompts — and Pro is €9 a month billed annually. Agency quotes run far higher, but we will not print a figure for other people’s prices; anyone who does is guessing on their behalf.

    Build first where your users are, and if that is genuinely unclear, iOS first is the common default for solo founders — one device family to test, a single store process to learn, and typically stronger early monetisation. The reason this choice feels heavy is the historical cost of the second platform. With Duet that cost changes shape: logic is written once, so in the first app built this way, adding Android changed zero logic files.

    A native app is written in the platform’s own language and toolkit — Swift/SwiftUI on iOS, Kotlin/Compose on Android. Hybrid approaches run one codebase through a shared runtime, from web-in-a-shell wrappers to compiled frameworks like React Native, which are real apps but render through their own layer. The differences that persist: depth of access to OS surfaces like widgets and Live Activities, how quickly you get new platform features, and how much the app feels like the phone’s own. Whether that matters depends on your app — step 2 of this guide is that decision.

    The wrapper answer is one codebase pretending to be two apps. Duet’s answer is two native apps provably sharing one mind: iOS renders SwiftUI, Android renders Compose, and the shared part is the logic and state, gated by fixtures replayed on both platforms at byte equality — if the two apps ever disagree about what should be on screen, the build fails. The tradeoff is real: two codebases exist. The saving is that everything the app knows is written once.

    Join the Apple Developer Program ($99 a year), create the listing in App Store Connect, archive and upload from Xcode, and submit for review — typically a day or two. Expect a small rejection on your first try; nearly everyone gets one and the fix is usually minor. Because a Modaal project is a standard Xcode project, this path is Apple’s own with no vendor in between. The full walkthrough is in our App Store submission guide.

    The durable models: paid up front (rare now outside niches), subscriptions (the App Store’s dominant model), in-app purchases, and ads (which need large audiences to matter). The honest guidance is to decide before you build, because monetisation shapes architecture — subscriptions need account and entitlement logic that is painful to retrofit. Apple takes a commission on digital goods; physical goods and many service apps fall outside it. Model it before step 6 so the spec includes it.

    Start building for free

    Build for as long as you want on the Free plan. Only upgrade when you're ready to launch.

    Keep reading