Ruby Native turns a Rails app into an iOS app, with Android in public beta. This gem is the Rails-side integration: view helpers, a YAML config file, endpoints auto-mounted at /native, and a CLI for previewing and deploying builds. Full docs, including the complete helper reference and config schema, live at rubynative.com/docs.
gem "ruby_native"The engine auto-mounts at /native. No route configuration needed.
Run the install generator:
rails generate ruby_native:installThis creates config/ruby_native.yml. Then:
-
Edit the config with your colors and tabs (see below).
-
Add the stylesheet and
viewport-fit=coverto your layout<head>:<meta name="viewport" content="width=device-width,initial-scale=1,viewport-fit=cover"> <%= stylesheet_link_tag :ruby_native %>
viewport-fit=coveris required for CSSenv(safe-area-inset-*)variables to resolve to real values instead of0. -
Add the tab bar to your layout
<body>:<%= native_tabs_tag %>
-
Preview it on your phone (see below).
The full walkthrough, including safe area layout and hiding web-only navigation with native_app?, is at rubynative.com/docs/setup.
config/ruby_native.yml controls the native shell:
appearance:
tint_color: "#007AFF"
background_color: "#FFFFFF"
tabs:
- title: Home
path: /
icon: house
- title: Profile
path: /profile
icon: personChanges are picked up without restarting the server in development. See rubynative.com/docs for the full schema: appearance and dark mode, navbar branding, Advanced Mode, OAuth, and linked domains.
Preview your app on a real device without deploying:
bundle exec ruby_native previewThis starts a Cloudflare tunnel and shows a QR code for the Ruby Native app to scan. Your Rails server needs to be running separately. Requires cloudflared:
brew install cloudflare/cloudflare/cloudflaredSee rubynative.com/docs/cli for deploy, login, and auto-deploying from CI.
Building with Inertia instead of ERB? @ruby-native/react and @ruby-native/vue provide the same helpers as npm packages, versioned alongside this gem. See rubynative.com/docs/inertia for setup.
MIT.