Which native app technology to pair with Rails
We are currently developing a rails application for a new startup and we are trying to determine which front end and native app technology we should combine with it.
We are looking at React JS and React Native as one option, and also RubyMotion and Emberjs as another option.
Does anyone have experience with either React Native or RubyMotion that can give us some input on their experience?
I'm a huge fan of React and think it's been particularly well thought out. Facebook has spent an enormous amount of time engineering things and came up with a pretty novel approach. One of the clues (for me) that I should avoid Ember was how quickly they were rolling in features and ideas from everywhere else. React's server side rendering is wonderful but Ember chose not to address it for a long time until React came out. They just end up copying a lot of things and I'm afraid that's going to lead towards bloat more than a fantastic framework.
RubyMotion is also a great option. I don't know too much about it, but I believe that this is what Basecamp uses for their iOS mobile app. They have their custom JS framework that works with Turbolinks so I'm sure this made a lot of sense to them.
I think you're pretty solid either way you go. The React community is about a thousand times larger than Turbolinks + RubyMotion I feel like which means you might get a lot more support along the way. This is just a hugely biased opinion from me though, so take it with a grain of salt. ;)
@aaron, any update a year and a half later on what technology you chose to use and any lessons learned?
Hi Chris,
Is it still React Native? What do you think about Flutter for connecting to Rails web app?
Basecamp uses a native frame around a WkWebview. They use this turbolinks wrapper and have given a nice presentation about it.
We’re using Rails and a React Native app, but we’re considering using RubyMotion or Emberjs for the next version.
This is one of those questions where it depends on what kind of technology you have available to you, but generally speaking, we would suggest that if you are building your own technology stack and you want to do cross-platform mobile development, then RubyMotion is probably a better choice.
If however you are looking at a platform that already has a lot of cross-platform support because it is open source at its core (like iOS), then Emberjs would be a good choice. This is definitely not the case for every case — there are many situations where native frameworks like React Native or WebGL work better than Rails in certain circumstances. (For example, if your app runs on multiple platforms and needs to do incremental device updates). But if you don't use native apps so much, Rails may be the right choice for your project due to its simplicity and ease of use.