# Cross-platform app development: one codebase for iPhone and Android with React Native and Expo

> ODEL builds iPhone and Android apps from one React Native and Expo codebase, or Capacitor for games, and publishes both under your own store accounts.

ODEL builds cross-platform apps with React Native and Expo, or Capacitor for games, so one codebase ships to both the App Store and Google Play under the client's own developer accounts. It suits founders and small businesses that need both platforms without paying for two separate apps. You talk directly to the developer who builds the app; the project runs from a written scope and clickable screens to milestone builds on your own phones, store setup on both sides and launch. Widgets, subscriptions through StoreKit and Google Play Billing, push notifications and 16 or more interface languages are all things ODEL already ships this way. You own the code and both store accounts. Proof: DishBook runs on Expo with iPhone and Android widgets in 16 languages, Unvay ships with widgets on both platforms, and Toddly, Warmify and Cluekin are live in both stores.

## Who it is for

- Founders who need iPhone and Android at launch on one budget
- Small businesses whose customers use both platforms
- Apps that also need a web admin or landing page sharing TypeScript code
- Casual and kids games built on the web stack with Capacitor

## When ODEL is not the right fit

- Apps whose core is heavy native work on one platform, such as advanced camera pipelines or Apple Watch-first apps: native Swift fits better
- Teams already committed to Flutter: hire a Flutter developer rather than switching stacks
- Large enterprise programs with many parallel teams and fixed short deadlines

## What you get

- Written scope with the shared and platform-specific parts named
- One React Native and Expo (or Capacitor) codebase in your repository
- Test builds on iPhone and Android at every milestone
- Subscriptions or purchases through StoreKit and Google Play Billing
- iOS and Android widgets or quick actions where they help
- Localization setup for the languages you sell in
- App Store Connect and Play Console setup in your accounts
- Release on both stores and a documented update process

## How the project runs

1. **Discovery and stack choice**: We check whether cross-platform fits your features. If a feature needs native code, the scope says where and why.
2. **Accounts in your name**: You hold the Apple Developer Program membership and the Play Console account; ODEL is invited as a team member.
3. **Design once, check twice**: One design system, checked against iPhone and Android conventions before code.
4. **Milestone builds**: Each milestone lands on both platforms at once through TestFlight and a Play testing track.
5. **Launch on both stores**: Listings, privacy answers, Data safety form, review and release, then optional updates.

## Technology

React Native, Expo, TypeScript, Capacitor, StoreKit and Google Play Billing, iOS and Android widgets, i18next localization, Node.js, PostgreSQL or Supabase backends

## Apps ODEL built and runs

- [DishBook](https://www.odel.dev/app/dishbook.md): DishBook is a recipe keeper and meal planner that suggests dinner ideas from everyday ingredients.
- [Unvay](https://www.odel.dev/app/vapeless.md): Unvay is a quit smoking and vaping app with a personal quit plan and tools for handling cravings.
- [Toddly](https://www.odel.dev/app/toddly.md): Toddly is a set of calm, ad-free learning games for toddlers aged 2 to 5.
- [Warmify](https://www.odel.dev/app/warmify.md): Warmify is a warm-up workout game where your phone camera counts reps and checks your form.
- [Cluekin](https://www.odel.dev/app/nesivar.md): Cluekin is an offline team word guessing game for parties and family game nights.
- [Anamur](https://www.odel.dev/app/anamur.md): Anamur is an iPhone app that turns your photo into a new AI portrait using style templates.

## Questions

### Native or React Native or Flutter: which should my app use?

For most first apps that need both platforms, a cross-platform framework is the practical choice; go native when one platform's deep features are the product. React Native's own docs recommend starting new apps with Expo. In the Stack Overflow 2024 survey, Flutter (9.4 percent) and React Native (8.4 percent) were the most used cross-platform frameworks. ODEL ships React Native with Expo and Capacitor, not Flutter, and says so up front.

### Does cross-platform cost less than two native apps?

Usually, because most code is shared, but the saving depends on how much native work your features need. Vendor blogs claim about 30 to 40 percent less engineering cost than two native apps (Idealogic 2026, a vendor estimate). ODEL quotes your project after a discovery call.

### How long does a cross-platform app take?

It depends on scope and decision speed. Vendor estimates in 2026 put a simple cross-platform MVP at 10 to 14 weeks (Idealogic). Plan extra time on Android if your Play account is a new personal account, which needs a 14-day closed test with 12 testers.

### Will users notice it is not native?

Not if it is built with care. DishBook and Unvay are React Native apps with home screen widgets on iPhone and Android; Toddly and Warmify run on both stores. You can install them and judge for yourself.

### Who owns the app, the source code and the developer accounts?

You do. The app is published under your own Apple and Google developer accounts, the repository is yours, and the written agreement assigns the code and design to you; under US law, for example, a contractor owns the code by default unless there is a written assignment, so ask for that clause from anyone you hire. ODEL is added to your accounts as a team member and can be removed at any time.

## Sources

- https://reactnative.dev/docs/environment-setup
- https://survey.stackoverflow.co/2024/technology
- https://idealogic.io/blog/mobile-app-development-cost
- https://support.google.com/googleplay/android-developer/answer/14151465?hl=en
- https://flutter.dev/
- https://capacitorjs.com/docs
- https://echai.ventures/startingup/finding-developers/how-do-i-make-sure-i-actually-own-the-code-my-freelancer-writes

Start a project: https://www.odel.dev/services#start (form) or info@odel.dev. ODEL quotes each project after a short discovery call; it does not publish fixed prices.

Page: https://www.odel.dev/services/cross-platform-app-development
