Skip to content
§
§ · react native development

React Native development, one shared codebase.

Expo-Router-first React Native. One TypeScript codebase for iOS and Android, OTA updates, and store-ready deployments.

tl;dr
  • React Native ships ~92% of code once across iOS and Android; the discipline is knowing which 8% needs native branches (StoreKit vs Play Billing, HealthKit vs Health Connect).
  • Expo with dev client + Expo Modules now covers ~85% of what once forced bare workflow; bare is reserved for deep native (specialized Bluetooth, custom camera pipelines).
  • Expo Router for file-based routing; React Query + Zustand + MMKV + Secure Store; React Hook Form + Zod; the whole stack TypeScript-strict.
  • EAS Update ships JavaScript-bundle changes without store review , canary/beta/production channel rollouts, command-line rollback live in minutes.
  • Engagements open with a 2-week scoping audit (Expo vs bare, native-module surface, store readiness), refundable against the build.
2,000+
brands shipped
55+
countries served
92%
code shared, one base
48 h
scoped quote
§ 01 · one shared codebase

One codebase. Two runtimes. Ninety-two percent shared.

React Native ships 92 percent of code once across iOS and Android. Platform-specific native bridges handle the remaining 8 percent.

The discipline is knowing which 8 percent lives on each branch. CoreLocation vs Android Camera2. StoreKit vs Play Billing. HealthKit vs Health Connect. Get the boundary right, and your app feels native on both platforms. Get it wrong, and it feels like a compromise on both.

shared · 92%

TypeScript + React + business logic.

Screens, navigation, state, API calls, data models, validation, styling, animations. Written once in TS + React, runs the same on both platforms.

ios-only · 4%

Swift bridge + CoreX frameworks.

CoreLocation, CoreBluetooth, HealthKit, StoreKit, specific WidgetKit or Live Activities work. Either via an Expo module or, for deep work, native Swift code.

android-only · 4%

Kotlin bridge + Jetpack.

Camera2, Play Billing, Android Keystore, specific Health Connect integration, background services. Via Expo module or Kotlin for deep work.

§ 02 · expo vs bare

Expo wins in 85 percent of 2026 React Native briefs.

The old "Expo cannot do X" argument is largely outdated. Expo with dev client and the Expo Modules API covers 85 percent of what once forced bare workflow.

We use bare only for deep native work: specialized Bluetooth, custom camera pipelines, background audio processing. For everything else, Expo's speed, OTA updates, and EAS Build pipeline win.

dimensionExpo (managed + dev client)Bare workflow
setup timeminutesdays (Xcode + Android Studio + signing)
OTA updatesEAS Update, built-inCodePush or self-hosted
build pipelineEAS Build (cloud)Fastlane + local Xcode/Android
custom native codevia Expo Modules APIdirect Swift/Kotlin
team ramp-upReact devs productive in daysnative expertise required
best for85% of modern RN workdeep native integration, specialized hardware
§ 03 · the shared trunk, in motion

The branches know which side they grow on.

Every React Native project is a trunk of shared TypeScript that branches at the platform-specific API boundary. The animation below shows where code is shared and where iOS and Android diverge.

Fig. 1 · the shared trunk · one tree, two platforms
§ 05 · eas + ota updates

Fix on Sunday. Ship on Sunday.

EAS Update ships JavaScript bundle changes to users without store review. Bug fixes and content updates reach users in minutes, not days.

Native changes still need store submission. We set up channel-based rollouts: canary for early testers, beta for opt-in users, production for everyone. Rollbacks happen from the command line and go live in 5 minutes.

eas build

Cloud signed builds.

Signed iOS and Android binaries built in the cloud. Credentials managed by EAS, rotate without touching local machines. Production builds typically 20-40 minutes.

eas update

OTA JS updates.

JS bundle updates over the air, reach users in minutes not days. Channels for staged rollouts. Rollback from CLI if issues surface.

eas submit

Store submission automated.

App Store and Play Store submissions from CLI. Release notes, metadata, screenshots handled declaratively in EAS config.

§ 06 · performance SLA

App-launch and scroll numbers we ship.

metrictargetmeasured on
cold start to first screen< 1.8smid-tier Android, iPhone 12
warm start< 600msboth platforms
list scroll fps60 fpsFlashList or Reanimated 3
time to interactive< 2.5sfirst meaningful interaction
crash-free users> 99.7%Sentry, 30-day rolling

Two archetype shipped apps.

archetype 01 · DTC subscription brand

Expo app, 120K MAU.

Companion app for a Shopify subscription brand. Order history, skip + swap flows, loyalty tier, push campaigns. Expo + Expo Router + TanStack Query. 12 weeks to production, 4.7 App Store rating, 4.6 Play Store.

MAU
120K
12 months post
cold start
1.4s
p75 Android
crash-free
99.84%
30-day
archetype 02 · B2B field service

Offline-first app, 3K daily users.

Field technician app for a B2B service company. Works offline on site, syncs when network returns, signature capture, barcode scan, photo upload queue. WatermelonDB for offline store, Expo Modules API for custom barcode scanner. 18 weeks.

offline sync
conflict-free
18 months
time saved
42 min/day
per tech
adoption
97%
of field team
§ 08 · engagement shapes + fit

Four shapes. Audit names the right one.

shape 01

Readiness audit.

2 weeks. Expo vs bare, native surface, store readiness. Refundable.

shape 02

MVP.

10-16 weeks. 15-25 screens, auth, push, OTA, store submit.

shape 03

Production build.

14-22 weeks. Native modules, offline, IAP, deep links.

shape 04

Native rewrite.

16-26 weeks. iOS or Android native → React Native.

right fit
  • Need both iOS and Android from a shared codebase
  • Your team already works in React and TypeScript
  • OTA update velocity matters (fast bugfix cycle)
  • Native needs can be expressed in Expo Modules API
wrong fit
  • ×Games with 60fps Unity/Unreal needs; go native or game engine
  • ×Deep platform-specific work (ARKit, Core ML, Widgets); see iOS
  • ×Only shipping to one platform; native may be faster
  • ×Consider Flutter if Dart fits your team better

Eight answers.

Expo or bare workflow - which should we pick?

Use Expo (managed with dev client) for 85 percent of modern React Native projects. The dev client workflow lets you add most native modules Expo doesn't include out of the box. So the old objection "Expo cannot do X" is outdated in 2026.

Use bare workflow only when you need deep native work that cannot live behind an Expo config plugin: custom Bluetooth stacks, specialized camera pipelines, background audio processing, or hardware-specific integrations.

Team size matters. For 2 to 4 engineers shipping a standard app, Expo wins. For teams with dedicated iOS and Android engineers doing specialized native work, bare may fit better.

How much does a React Native app cost in 2026?

Senior React Native engineers run $145-200/hour at boutique agencies in the US and UK, and $85-140/hour in India.

An MVP with Expo Router, auth, push notifications, OTA updates, and store submission takes 10-16 weeks. A production build with native modules, offline sync, in-app purchases, and deep links takes 14-22 weeks. A rewrite from native iOS or Android takes 16-26 weeks depending on features.

A 2-week audit is refundable. You'll get a scoped quote in 48 hours.

What does OTA update mean and why does it matter?

Over-The-Air (OTA) updates via EAS Update let you ship JavaScript bundle changes to users without App Store or Play Store review. JS-only changes reach users in minutes, not 1-7 days. These include bug fixes, content updates, feature flags, and new screens using existing native modules.

Native changes still need store submission. OTA matters because it decouples JS velocity from review cycles. You can roll out fixes same-day and use staged rollouts (beta, canary, production).

How do you handle native iOS and Android modules in Expo?

Three paths. One: use an existing Expo module like expo-camera, expo-notifications, or expo-location. Two: use a community module with an Expo config plugin. Most major libraries have these now. Three: write a custom Expo module when the need is unique.

The Expo Modules API is mature enough to write Swift and Kotlin code inside an Expo project. So "we need custom native code" is no longer a reason to leave Expo. We recommend bare only when native work is large enough to justify dedicated iOS and Android engineers.

Can React Native handle offline-first apps?

Yes. For simple offline (cached API responses, offline write queues), TanStack Query with persistent cache via AsyncStorage or MMKV handles most cases.

For full offline-first with collaborative editing and complex sync, WatermelonDB or Legend State plus a custom sync layer is our pattern. For the hardest cases (offline with CRDTs or operational transforms), Replicache or PowerSync via a managed backend.

Offline-first adds 4-8 weeks to scope. We map offline requirements in week one.

How do you handle push notifications?

expo-notifications handles the client side. Firebase Cloud Messaging (FCM) on Android and APNs on iOS deliver the payloads. On the backend, we integrate with a provider: Expo Push for small volumes, OneSignal or Customer.io for marketing and rich notifications, or direct APNs/FCM when you need full control.

Critical UX details: permission prompts appear at the right moment, not on app launch. Not-opted-in state is handled gracefully. Silent push for background data is measured and respected by iOS throttling rules.

How do you submit to App Store and Google Play?

EAS Submit handles both stores from the command line. Before your first submit, we set up App Store Connect and Google Play Console accounts under your organization. We configure signing certificates (managed via EAS), write store listings, and create screenshots in every required size using our Figma template.

We prepare privacy labels and data safety forms. First submit typically takes 1-3 days of review on Apple, same-day on Google. We run a dry-run internally against the review guidelines before submitting. Rejection is rare; if it happens, we fix and resubmit within a week.

Who owns the codebase, signing certificates, and store accounts?

You do, fully. GitHub repository under your organization. Apple Developer Program membership and Google Play Developer account under your legal entity. EAS account and signing certificates under your EAS organization with DH engineers as named collaborators removable any time. Push notification provider (Expo Push, OneSignal) under your billing. On exit: repository transferred, credentials rotated, store access handed off, 30-day support tail. No lock-in through signing, tooling, or vendor choice.

Start with a readiness audit.

Two weeks. Expo vs bare, native module surface, store readiness. Refundable against any engagement that follows. Scoped quote in 48 hours.

client reviews

What clients say after launch.

Published reviews from our Fiverr profile, reproduced word for word. 397 public reviews across 4 gigs, from clients in 36 countries. Read them all on Fiverr.

incredible experience with this team They built my website exactly how I envisioned clean, modern and optimized for conversions they kept me updated throughout, and even suggested improvements I hadn’t thought of. Everything was delivered on time and works perfectly across devices. You can tell they genuinely care about the quality of their work highly recommended !!
novianjaxor
United States · $50-$100 · 3 weeks
Great experience working together! The website looks amazing and everything works perfectly. All my requests were implemented quickly, and communication was smooth throughout. Definitely recommend!
moritzmierke
United States · $800-$1,000 · 5 weeks
Very impressed with the quality of work The developer understood our requirements quickly and delivered a powerful well-structured website
emmet_cross
United States · $100-$200 · 6 days
Working with this developer was an excellent experience They completely understood what we wanted for our pet accessories brand and translated it beautifully into a clean website Very impressed with the attention to detail, animations and overall execution Highly recommended
olipax
United States · $200-$400 · 8 days
Completed Phase 1 of my project. Looking forward to starting and completing Phase 2. The level of work thus far on Phase 1 has been absolutely exceptional! The communication was easy and I am very pleased with the project and how it's coming along so far!
thrillpay
United States · $1,500-$2,000 · 3 weeks
We’re extremely impressed with the outcome. The system is clean, structured, and works exactly as we wanted it to be. The team was supportive, really helpful, and ensured everything was executed perfectly. We’re excited to continue working together.
lucajoel12
United States · $100-$200 · 4 days

Reviews are reproduced as published on Fiverr, captured 2026-08-03. Fiverr shows the buyer's username and country publicly; no other client detail is used here.

Why work with Digital Heroes

Shopify Premier Partner accreditation United Nations Global Marketplace Tier 1 registration Upwork Top Rated Plus status Trustpilot rating from verified client reviews DUNS registered business verification Clutch Top Web Designers 2024 listing GoodFirms verified development company listing DesignRush ranked agency listing Clutch Top 1000 Global B2B Companies listing

115 people across five studios in New York, Delhi, London, Sydney and Lucknow, shipping ecommerce, web, software and mobile work for founder-led brands. Senior engineers only, no account-manager relay, and the same team from kickoff to launch.

  • Shopify Premier Partner, the tier Shopify reserves for agencies with a sustained delivery record on Plus builds
  • Tier 1 registered supplier on the United Nations Global Marketplace, which requires audited company documentation
  • Top Rated Plus on Upwork, the bracket for the top 3% of talent by client outcomes
  • 397 public five-star-weighted reviews across four Fiverr gigs, from clients in 36 countries
  • DUNS verified business, No. 650878346, so procurement can check us before signing
  • Listed by Clutch in Top 1000 Global B2B Companies and Top Web Designers 2024
  • Verified profiles on GoodFirms, DesignRush, Digital.com, AppFutura and TopDevelopers
  • 2,000+ brands built across 55+ countries, with $50M+ in client revenue scaled

Published · Last updated .

Online now

Talk to a Developer Now

Reply