All articles
Mobile

One Codebase for iOS and Android: What to Know

One codebase for iOS and Android with React Native and Expo: what you share, mobile app costs from $13,000, and how it beats two native builds on price.

AXAXYL Studio7 min read

For most businesses, an app that runs on only one platform is only half an app. Your customers carry iPhones and Android phones in roughly equal measure, and asking half of them to wait, or building two separate native apps from scratch, is rarely a good use of budget. This is why building one codebase for iOS and Android with React Native and Expo has become the default starting point for so many founders, and why it usually costs far less than two native builds. The real question is rarely whether to go cross-platform, but how much of your specific product can safely live in shared code.

How a shared codebase works

React Native lets you write your app in JavaScript and TypeScript, using components that map to real native interface elements underneath. Instead of drawing fake buttons, it renders genuine iOS and Android controls, so the app feels native rather than like a website in a shell. Expo sits on top and handles much of the tedious setup: build pipelines, over-the-air updates, and access to device features like the camera or push notifications through ready-made modules. Crucially, one language and one toolchain power the whole app, so the engineer who builds a screen for iPhone has effectively built it for Android in the same motion. For a founder that means budget flows into product features rather than into paying twice for the same underlying plumbing, and every engineer you hire immediately contributes to both platforms at once.

The practical result is that a single team writes one codebase and ships to both stores. A button, a screen, a data flow, or a bug fix is written once and appears on every device. For a small or medium business, that is the difference between maintaining one product and maintaining two, and it is the root of the cost savings that follow. It is also why timelines compress: a full cross-platform build usually fits a two-to-four-month window instead of running two native projects end to end.

What you can share, and what you save

In a well-structured app, the large majority of the code is shared. Business logic, screens, navigation, forms, and network calls almost always live in one place. The savings compound over time, because every future feature is built once instead of twice, and your team needs one set of skills rather than separate iOS and Android specialists whose salaries you would otherwise pay in parallel. That single skill set also makes hiring simpler and reduces the risk of a situation where only one specialist understands one half of your product. Quality assurance benefits as well, because one automated test suite covers behavior on both platforms rather than two suites that slowly drift apart and double the testing effort.

  • Business logic and data handling are written a single time.
  • Screens and navigation are shared across both platforms.
  • Bug fixes and new features reach iOS and Android together.
  • One team and one skill set instead of two parallel efforts.

What one codebase costs versus two native builds

Concrete numbers make the case clearer. At AXYL Studio a cross-platform mobile app for both iOS and Android typically ranges from about $13,000 to $25,900, and the tiers break down as roughly $13,000 for an MVP, $27,000 for a production-grade app, and $48,600 for a complex build. Two separate native apps, by contrast, mean writing and maintaining most of that work twice, which pushes the combined budget close to double for a comparable result. A shared codebase does not make everything half price, but it removes the largest source of duplicated effort, and it keeps every future feature from being quoted twice. If your idea is still unproven, starting at the MVP tier lets you validate demand on both platforms at once before committing to a larger production budget. Because the same code serves both stores, a later move from MVP to production upgrades one project rather than two, which keeps that second invoice smaller than a fresh native build would ever be.

When you still need platform-specific work

Sharing does not mean everything is identical, and pretending otherwise leads to an app that feels off. Some situations genuinely call for platform-specific attention. The two operating systems have different design conventions, and respecting them makes an app feel right rather than foreign. Deep integrations, such as certain payment flows, background processing, or specialized hardware, sometimes need native code written for each side. Expo covers most needs out of the box, but when you outgrow it, React Native still lets you drop down to native modules where required, so you rarely pay for a full native rewrite. The goal is not to share for its own sake but to share everything customers cannot see, and to spend native effort only where it visibly improves the experience. In practice, most teams keep that native list short and well defined, so the occasional platform-specific detour never undermines the savings a single codebase brings.

App store and payment fees to budget for

The build is not the only cost of shipping a mobile product, and these fees apply equally to native and cross-platform apps. If your app sells digital goods or subscriptions, Apple and Google take a commission on in-app purchases, typically 15 to 30 percent, with the lower 15 percent rate available under their small-business programs. If you charge for physical goods or services through cards, Stripe runs about 2.9 percent plus $0.30 per transaction on US cards. None of this changes because you chose one codebase, but it belongs in the plan from the start. Modeling these percentages against your expected revenue often matters more to your margins than the one-time build price, especially for a subscription app where the commission recurs every month.

  • Apple App Store and Google Play: 15 to 30 percent on in-app purchases and subscriptions.
  • The lower 15 percent rate applies under Apple and Google small-business programs.
  • Stripe: roughly 2.9 percent plus $0.30 per transaction on US cards.
  • These fees are identical whether you build native or cross-platform.

The maintenance payoff

The biggest long-term benefit is quieter than the launch. Every app needs updates, security patches, and small improvements for years, and with a shared codebase that ongoing work is roughly halved, releases stay in sync, and your product does not slowly drift into two divergent versions. Ongoing support typically starts around $2,700 per month, and because that work is not duplicated across two native apps, the retainer stretches further. Over a two-year horizon, that halved upkeep frequently saves more than the gap between an MVP and a production build in the first place. For teams without a large engineering budget, this predictability is often worth more than any single feature. Compounded across the full life of the app, that steady, non-duplicated upkeep is where a single codebase quietly pays for itself, long after the launch headlines have faded.

If you are weighing whether cross-platform fits your product, we would be glad to look at your case. At AXYL Studio we build mobile apps with React Native and Expo every day, and we can give you an honest estimate, tier by tier, of what one codebase would mean for your timeline and budget.

Frequently asked questions

Yes. React Native lets you write the app once in JavaScript and TypeScript using components that map to real native iOS and Android controls, while Expo handles build pipelines, over-the-air updates, and device features like the camera or push notifications. A single team writes one codebase and ships to both stores, so a button, screen, or bug fix is written once and appears on every device. In a well-structured app the large majority of code, including business logic, screens, navigation, and network calls, is shared.

Have a project in mind?

Tell us what you're building and we'll help you scope it, estimate it, and ship it.