React Native app development: Android and iOS apps from one codebase

We build phone apps in React Native: one codebase for Android and iOS, with native Kotlin only where a platform API needs it, and every phone app we have built so far is React Native. Trainr, a UAE fitness marketplace, and LetSlic, a social app, are live on Google Play, with their iOS builds on TestFlight rather than the App Store. Pakka's customer and driver apps are being prepared for Google Play, LeafRanger runs as a signed production Android build, and Temphera is built but not released.

  • Businesses that need one app on Android and iPhone without two teams
  • Products built around chat, live location, payments or the camera
  • Teams with React web engineers who will look after the app after launch
159
screens in Trainr's React Native app for clients and trainers
93
screens in LeafRanger's app, counted in July 2026
28
defects found and fixed in Pakka's pre-Play Store QA pass

What makes React Native apps hard, and how we handled it

Subscriptions inside the stores' billing rules

Google Play requires its own billing for digital subscriptions sold in an app, so LetSlic's Premium is built on Play Billing via RevenueCat. LeafRanger replaced RevenueCat with our own Kotlin module over Play Billing Library 9.1.0, behind the purchases wrapper its screens already called. Pakka's driver plans, which the stores could read as a digital feature, are paid from the driver's wallet instead of by card.

Live updates on every device a user has open

In LetSlic every socket a person opens joins a personal room, so a new message lands on the chat list and in the open thread on each of their devices, and the last-active time is stored so a chat header shows a status before live presence arrives.

Release builds that ship only what they should

Trainr's release builds strip 540 console calls while keeping errors and warnings for Sentry, upload source maps so crashes are readable, and carry native libraries for arm64-v8a and armeabi-v7a only. Before the live-payments build we checked the shape of every key and caught a Stripe secret pasted into the Google Places field, where it would have been readable in every installed copy.

Getting the iOS build through

Trainr's iOS uploads had failed since 25 May with a signing error that looked like a permissions problem. The App Store Connect record had always been fit.trainr.mobile and a brand rename had changed the identifier, so we reverted it, added the six privacy purpose strings Apple required, and build 22 reached TestFlight. Like LetSlic's, Trainr's iOS app is on TestFlight, not the App Store.

Case studies

Trainr store screenshot showing the app home and a trainer profile cardFeatured
Mobile Appfor Trainr

Trainr — Two-Sided Fitness Marketplace App

Trainr is a two-sided fitness marketplace for the UAE. We built the React Native app for clients and trainers, two Node.js backends and the admin console: bookings, packages, Stripe payments and payouts, workouts, diet plans, check-ins and chat. The Android app is live on Google Play.

React NativeTypeScriptRedux ToolkitNode.js+10
199Screens and page routes across the app and console
Case study
Superadmin stories grid with photo storiesFeatured
Mobile Appfor Slic Solutions Private Limited

LetSlic — Social Media App with Group Chat, Stories and Premium

LetSlic, listed on Google Play as Slic, is a social app for photo posts, 24-hour stories and real-time chat with group moderation. We built it for Slic Solutions Private Limited: the React Native app, two Node.js APIs, the superadmin console and the website, plus Premium and ads.

React NativeTypeScriptReduxNode.js+13
13Months from first commit to handover (Jun 2025 – Jul 2026)
Case study
Pakka Logistics home page hero on desktopFeatured
Mobile Appfor Pakka Logistics

Pakka Logistics — Porter-Style Delivery Platform

Pakka Logistics is a Porter-style delivery platform for India. We built all of it: Android apps for customers and drivers, a business portal, an operations console and the website. The web platform is live; the Android apps are being prepared for Google Play.

React NativeTypeScriptRedux ToolkitNode.js+12
96.3%API routes exercised by a probe before launch (260 of 270)
Case study
LeafRanger home page hero with headline 'Your plants have an expert now' and a Herb chat cardFeaturedLaunching
Mobile Appfor LeafRanger

LeafRanger — AI Plant Care App and Plant Marketplace

LeafRanger is CountryDevs' own AI plant-care app. We built the Android and iOS app, two Node.js backends, the admin and vendor consoles and leafranger.com: photo plant ID and diagnosis, light-mapped rooms, weather-aware watering and a multi-vendor plant shop.

React NativeTypeScriptRedux ToolkitKotlin+11
~$0.004Measured cost of one AI vision scan
Case study
Temphera features page header and feature listsBuilt
Mobile Appfor Temphera

Temphera — Journal Planner App with a Privacy-First Admin Console

Temphera is a journal-planner app for individuals and couples, built by CountryDevs: journal, moods, habits, goals and money in one React Native app, plus an admin console that lets staff run support and moderation without reading what users write.

React NativeTypeScriptNode.jsExpress+11
86Screens in the mobile app
Case study

What we build

  • Android and iOS apps from one React Native codebase
  • Native Kotlin modules where a library falls short
  • Google Play Billing, directly or through RevenueCat
  • Real-time chat, presence and push notifications
  • Camera, GPS and barcode flows: photo uploads, proof of delivery, scanning
  • Signed release builds, crash reporting, TestFlight and Play testing tracks

Stack we use

  • React Native
  • TypeScript
  • Redux Toolkit
  • Kotlin
  • Socket.IO
  • Firebase Cloud Messaging
  • RevenueCat
  • Google Play Billing Library
  • Sentry

Related services

Not ready for a full build? Start with a fixed price

  • Code Audit & Takeoverfrom ₹90,000 / $1,900A severity-ranked audit and a fixed-price fix or takeover quote
  • App Maintenance Plansfrom ₹20,000 / $350 a monthUpdates, fixes and small features every month, from the engineers who know the code

All fixed-price offers

React Native App Development: questions we get asked

How do you test a React Native app before submitting it to Google Play?

The way store testers do. For Pakka's customer and driver apps we click-tested and break-tested both, screen by screen, on an Android 16 emulator: back gestures, killing the app mid-flow, double taps on submit, airplane mode and a stopped server. All 28 defects logged were fixed before release builds 1.0.13 and 1.0.14 were cut.

Which phone features have your React Native apps used?

The camera and photos (LeafRanger reads a spot's light from a photo; LetSlic compresses photos and converts HEIC, HEIF and WebP to JPEG before upload), live GPS and photo proof of delivery in MedTrakr's driver app, barcode scanning in its pharmacy app, phone OTP sign-in in LetSlic, and push notifications through Firebase Cloud Messaging.

Can a React Native app show ads and still follow the store rules?

Yes, if consent comes first. LetSlic shows AdMob native ads styled like posts after every fifth post on Android, runs Google's consent form before the ads SDK starts, and treats anyone under 18, or without a date of birth, as a minor who sees only G-rated ads.

How do you make sure a release build talks to the right server?

We check the built file, not the build log. One Pakka build said BUILD SUCCESSFUL but still pointed at the build laptop, because Metro had cached the bundle. A verifier now reads the API address out of every APK and checks its signing certificate, and each APK is recorded with its git tag, commit and sha256.

Have a project like these?

Tell us what you are building. We reply with a scope, a timeline and a fixed price, usually within 48 hours.

Start a project