Skip to content

v0.14.0

Choose a tag to compare

@joemasilotti joemasilotti released this 19 Aug 23:06
· 53 commits to main since this release

Added

  • Attach a native menu to any element on the page with native_menu_tag. Tapping the element pops a menu right on it, with icons, checkmarks, and red destructive rows: an anchored UIMenu on iOS, a Material dropdown on Android. Picking an item navigates or clicks a web element, exactly like a nav bar menu item. React and Vue get a matching NativeMenu component. Both platforms, both modes.
  • Menu items can render red with destructive: true, for delete-style actions, in nav bar menus and in-content menus alike. Both platforms, both modes.
  • ruby_native deploy now relays notices from the server, like a heads-up that a lapsed subscription payment sent an iOS release to TestFlight only. Future notices need no gem update.
  • YAML anchors and aliases now work in config/ruby_native.yml, both in Rails and the CLI.
  • Android chrome is now a clean neutral gray in light and dark mode, instead of a Material-tinted surface you didn't pick. The navigation bar, tab bar, and floating action button all go neutral, with your tint_color on the selected tab and accents, matching iOS. Advanced Mode gets the biggest fix: its bars and button previously ignored tint_color entirely and rendered Material's default purple. Both modes.
  • Override Android's bar colors with appearance.android. Set background_color on android.navbar or android.tab_bar (the navbar also takes foreground_color), each a hex string or { light:, dark: } for dark mode. Wins over the neutral defaults on Android without touching iOS, whose Liquid Glass bars Apple doesn't let apps recolor. Both modes. Docs
  • Color the floating action button right from the page: native_fab_tag icon: "plus", color: "#D97706". The button is tinted with it — tinted Liquid Glass on iOS, a colored Material FAB on Android — with the icon color derived automatically to stay readable. Pass color: :tint to inherit your tint_color instead of repeating the hex. React and Vue NativeFab take the same color prop. Both platforms, both modes. Docs

Fixed

  • Network problems no longer crash the CLI with a backtrace. Connection failures say what went wrong and what to try next, and ruby_native deploy rides out brief blips while waiting for a build instead of dying mid-build.
  • ruby_native deploy --if-needed now asks you to log in again when your token expires, instead of failing CI with an unhandled error. Auth errors also call out RUBY_NATIVE_TOKEN when it is set, since it overrides ruby_native login, and an empty RUBY_NATIVE_TOKEN no longer hides a valid login.
  • An empty config/ruby_native.yml no longer crashes Rails boot. The file is skipped with a warning, and YAML syntax errors now name the file.
  • ERB tags in config/ruby_native.yml no longer break ruby_native deploy. The CLI renders the file the same way Rails does.
  • ruby_native login always prints the authorization URL, so you can sign in over SSH or in a container with no browser. The wait for authorization also survives network blips and reports what the server returned when something else goes wrong.
  • ruby_native preview explains a failed tunnel, with cloudflared's exit status and last output, instead of hanging or exiting silently. It also tells you when config/ruby_native.yml is missing or empty rather than reporting the tunnel ready.
  • Deploying to a deleted or archived app no longer dead-ends. The error points to the dashboard first and only suggests re-linking if you meant to switch apps, and a build that disappears mid-deploy stops the wait with a clear message instead of polling silently for 10 minutes.
  • Typos fail fast. Unknown commands and unknown --platform= values exit with an error instead of quietly building iOS, and ruby_native usage now lists every flag.
  • A missing config/ruby_native.yml now returns a real error from /native/config.json instead of null, so apps show a setup message instead of a confusing parse failure.
  • The CLI works in containers without a home directory when RUBY_NATIVE_TOKEN is set.
  • The branded navbar no longer flickers while pushing a screen. It dropped to a plain white title bar mid-push before snapping back. Advanced Mode, Android only.
  • Pushing a screen now slides, like iOS, instead of cross-fading when the navbar is branded. The whole screen used to wash out mid-transition. Advanced Mode, Android only.