React Native rebuilds your product's interface in React, rendered with native components, with Rails behind it as an API. Ruby Native ships the interface you already have. The question is whether you want a second frontend.
React Native's own description is "written in JavaScript, rendered with native code." Every screen is a tree of React components that becomes real platform views, so lists scroll, gestures respond, and transitions animate the way the platform does. The project recommends starting with Expo, which adds routing, native modules, and a build service that can build without a Mac. Since React Native 0.76 the New Architecture is on by default.
What it asks of you is a second codebase. Each screen your Rails app renders today is rebuilt in React, your controllers grow a JSON API, and the two frontends move together from then on. Shipping is yours too: both app stores, Xcode when something native needs attention, and whatever each React Native or OS release changes.
| React Native | Ruby Native | |
|---|---|---|
| Your screens | Rebuilt as React components | Your Rails views, as they are |
| Codebases to maintain | Two frontends and an API | One Rails app |
| Interface | Native views throughout | Native navigation and controls around your web pages |
| Team | React developers who own mobile | Your Rails developers |
| Time to first release | Months | Days to weeks |
| New web features in the app | Rebuilt for the app | With every deploy |
| Store listing and submission | Yours, in App Store Connect and Play Console | A file in your repo, one command, or your agent |
| Cost | Three to six months of your team | $199 a month per app |
From Ruby Native to React Native later, your Rails app is unchanged, and nothing you did for Ruby Native blocks a rebuild. Shipping Ruby Native first tells you what customers do in an app before you commit a team to one.
From React Native to Ruby Native is possible whenever Rails still renders the product for the web. If the web is React too, Inertia is the setup Ruby Native supports.
The business comparison, against hiring a mobile team, an agency, or a React Native rebuild, is on Why Ruby Native. Try the demo app on your phone from /try, or email Joe at [email protected] with your app's URL.