/opal-native

React Native in Ruby

Primary LanguageRubyMIT LicenseMIT

Opal Native - React Native in Ruby

JavaScript is an implementation detail.

-- Why React Native Matters

Screenshot

Motivation

To provide a Ruby-friendly tool chain (this doesn't require node / npm) and wrapper over React Native API. 💖

Dependency

  • Opal Ruby is used as Ruby transpiler to transpile your Ruby code into JavaScript.
  • react.rb is a React.js wrapper providing basic DSL support in Ruby.

Usage

  1. Clone or download this project
  2. bundle install
  3. bundle exec pod install to install iOS dependency
  4. open SampleApp.xcworkspace to launch Xcode (xcWorkspace not xcodeProj!)
  5. bundle exec thin -R config.ru start -p 8081 to start packaging server
  6. Build & Run

Note: Switch port other than 8081 is not allowed currently.

Debug

  1. Ctrl + Command + Z to toggle dev menu, and select "Enable debugging".
  2. Open http://localhost:8081/ in Chrome or Safari to debug in inspector (haven't test in Firefox yet)
  3. For details, see Debugging Tutorial of React Native

TODO

  • Source map is broken
  • Publish as a gem
  • Add project generator or provide Xcode template
  • Rewrite the original Movie.app example

Contributions

This project is currently in proof of concept stage, so discussion, bug report and PR are really welcome 😉.

Contact

David Chang @zetachang

License

opal-native is available under the MIT license. See the LICENSE file for more info.