How can we compare React Native and Ionic with Meteor's way of building hybrid apps?

How can we compare tools like React Native and Ionic with Meteor’s ability to build mobile apps? I’m not talking about using the same code of the web app to mobile. Let’s say we are going to write a separate app for mobiles with meteor?

1 Like

Both Ionic and Meteor are based on Cordova. A Cordova app is a regular web app, written using HTML, CSS, and JavaScript, but it runs in a web view embedded in a native app instead of in a stand-alone mobile browser. The Cordova platform also opens up access to certain device-native features through a plugin architecture. But it doesn’t allow you to use native views. You’ll have to recreate all mobile UI elements using HTML and CSS (although frameworks like Ionic can help here, what they do is the same you could do by hand, trying to make web elements look and feel like platform UI elements).

React Native has a completely different architecture: instead of writing your UI using web technologies, it uses the React component model to render to native views. A React Native app is in every respect a native app, although with most of the logic written in JavaScript. This makes it more performant and also allows it to blend in more with the native platform.

6 Likes

Great! So if our app does not want to look like a native app and need heavy customization, we should go for Ionic or Meteor right? Can we do it in React?

How can we compare the performance?

Yes, I think that makes sense. You can use React or any other view layer to create your web app.

Comparing performance is difficult without a concrete example of what you’re trying to do, and it also makes a huge difference what platforms and devices you’re targeting.

There is an app showcase on the Cordova home page, so you may want to try out some apps to see how they perform.

1 Like

Traditional Cordova apps indeed use a Webview, but today, frameworks like https://tabrisjs.com/ allow you to use Cordova plugins while writing native UI in javascript (with a native bridge similar to React native).

I do suggest checking it out!

1 Like

You can absolutely do a non-standard look and feel using React Native. But if you choose to have more of a native experience, it’s a lot easier in React Native than in Cordova, in my experience.

2 Likes

If you want to use React, have a look at my port of Meteoric here: https://github.com/pors/reactionic

Kitchen-sink demo: http://pors.github.io/reactionic/#demo

Works fine with Meteor and Cordova, we are using it for an iOS and Android app.

Great thanks! I’ll look at the app showcase.

It looks like a very new system. But i’ll have a look at it thanks!

Hmm… Then what’s the main difference between React and Cordova?

Ionic in React? The main reason I didn’t went with Ionic is Angular. :slight_smile:

Non-technically speaking, React Native is… “more native” than Cordova. :slight_smile: For instance, on iOS, you know how you can swipe from the left edge to go back? That happens for free in React Native. In Cordova, it’s not there, and apparently is a massive pain to get that native navigator behavior.

Apps built with Cordova, I can immediately spot, because it often feels like a web app, whereas React Native apps feel truly native.

Someone feel free to correct me if I’m wrong about any of these points.

1 Like

For someone still developing blaze-cordova apps, a quick and dirty way to get native transitions is by using this plugin - https://github.com/Telerik-Verified-Plugins/NativePageTransitions

I’m still using Blaze + Meteoric (Ionic without Angular) to build iOS and Android apps. I know this doesn’t even come close to the ‘native-ness’ of React Native (which I briefly experimented, but couldn’t continue as I quickly realised it needed a lot more learning time and the documentation is pretty cryptic for my abilities. I’m aware there are tutorials out there in efficiently getting DDP into react native, but that means more research time).

http://pors.github.io/reactionic/#demo looks very promising to me since I’m still stuck to Blaze and Meteoric. And yet to make a complete transition to React.
I would like to hear from someone who migrated a Blaze-Meteoric-Cordova app to React-Meteoric-Cordova and whether they have seen significant performance improvement. In which case, I would want to make the switch to ReactIonic too (instead of learning react native - which for me is like leaving the comfort of Meteor-land)

2 Likes

So, native means the look and feel right being native? I think i go it thanks!

Cool! Let’s see… If we can find time, I might use React native or else use the dirty way :slight_smile: