Ruby Native vs React Native

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.

#What React Native gives you

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.

#Where React Native is the right call

  • The product is mobile-first and the web is secondary. The app is where the interaction detail matters: gestures, offline work, maps, animation, camera-heavy flows.
  • Your team writes React and wants to own mobile as a discipline, with the months that takes. The business comparison on Why Ruby Native puts a rebuild at three to six months of your team.
  • You want the interface itself to be native views, not web pages inside a native shell.

#Where Ruby Native is the right call

  • The product lives on the web, and the app needs to be the same product. Your team makes each decision once, in Rails, and the apps pick it up with the deploy.
  • Nobody is being hired for mobile. The developer who works on the Rails app sets it up in a day or two.
  • You want native where it is noticed: a native tab bar, push and pop transitions in Advanced Mode, navigation bar buttons and menus, push notifications, in-app purchases. The pages themselves are your web pages, which is an honest description of what a Ruby Native app is.
  • Days to weeks to a first release, not months.

#Side by side

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

#Moving between them

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.