Vue.js, Angular, React, Mithril.js.. GitHub love and Native Mobile Apps

Lauri Jalonen
Full stack development
5 min readJan 28, 2018
Three currently popular JS frameworks, plus one up-and-comer

If you’re a front end or full stack developer, you’ve surely come across this question: what Javascript framework would you go with if you had to pick one to build a JS application? There are many at first glance, but four of them stand out at the moment.

Okay, I’m an old fart. No one gets this reference.

I’m not going to repeat what has been said in the excellent articles by Jens Neuhaus in his Angular vs. React vs. Vue comparison article, or the equally informative Mithril.js vs. React vs. Vue vs. Angular comparison on Mithril’s own site. Both of them go deep into history, file size, performance, documentation and other aspects of each framework in detail. The only copy/paste I’d add from that article here is the list of questions Jens summarises. It does highlight most of the important things:

How mature are the frameworks / libraries?
Are the frameworks likely to be around for a while?
How extensive and helpful are their corresponding communities?
How easy is it to find developers for each of the frameworks?
What are the basic programming concepts of the frameworks?
How easy is it to use the frameworks for small or large applications?
What does the learning curve look like for each framework?
What kind of performance can you expect from the frameworks?
Where can you have a closer look under the hood?
How can you start developing with the chosen framework?

I’d rather attempt to complement these articles by highlighting a few aspects that I saw in the comments below those articles as well as something that I saw missing in both of them:

  1. What are the Github stats of each framework as of January 2018?
  2. Can my JS compile into a native mobile app? (spoiler: YES!)

Github stats of React, Angular ,Vue.js and Mithril.js

Here they are, as of 28th January:

Stars show general appreciation, forks show involvement, watch shows interest.

So, at the time of this writing, in terms of GitHub love, React and Vue are en par, Angular is falling behind, and Mithril.js is still up and coming. Whatever. This is just one way to look at it, and probably will change throughout

Anyway, let’s look at the second question.

Can my JS compile into a native mobile app?

Angular and Vue use NativeScript, React has its React Native

Short answer: yes, if you’re on React, Angular or Vue. If you’re on Mithril.js, good luck my friend, I have no idea :D keep an eye out.

Long answer: To clarify, there are are currently four ways to create a native mobile application for Android and iOS, in chronological order:

  • Many years back, there was only one way: a truly native app. Java for Android and Objective-C/Swift for iOS. Developers, for various reasons, legacy being one, still take this approach to date. It’s an established practice, so why not? Well, today developers have made a web app and would like to benefit from that time investment in the mobile device world as well, recycling all that code somehow. Along came hybrid apps.
  • As the next alternative, frameworks like the Ionic framework would create an app wrapper with a browser window and encapsulate your web app. This being a hybrid app, a combination of a web application and a nativer app. Ionic and its buddies are still around. However, recently (within the past 2 years) an even cooler way was born: compiled apps.
  • Today, with the help of tools such as NativeScript and React Native, JS apps get a few added components and compile straight into native mobile apps. Hence the name compiled app. Or whatever you want to call it. The main point is that a significant amount of Javascript business logic and functionality code can be directly recycled, and still benefit from the native performance and components of mobile devices.
  • In the background, workbenches like Unity can spit out mobile applications. Ignore that approach for now, that’s a whole separate article, and surely Medium will have what you need if Unity’s your bag.

All of these approaches have their pros and cons. To get an understanding of them, watch Academind’s highly informative video and thorough comparison of ways to create native mobile apps.

Now, the tools. NativeScript and React Native do pretty much the same thing. They take Javascript and compile it into a native mobile app. It’s up to you to decide which one of those two to use, really. If you’ve got existing React, Angular or Just make sure you try both Expo for React Native and NativeScript Playground.

Expo for React Native

React Native is a no-brainer especially if you’re already down the React path. Expo is a natural next step in that evolution. You can read Jani Eväkallio’s plug on React Native and Expo and then, head on down to the Expo test area and have a go. It’s a pretty fun place to be.

Download an app and scan the QR, and you’re good to go.

Playground for Nativescript

Originally, NativeScript made it easy for JavaScript developers to create mobile apps for both platforms, from one JavaScript codebase, using standard components. That codebase was then compiled into actual native app packages that could be released in the App Store and Google Play. As time went by, it also started supporting Angular code, so Angular code could be recycled. Today, it supports NativeScript, Javascript, Angular and (experimentally) Vue.js. I warmly recommend to check out the NativeScript Playground, it’s pretty awesome to see the native app update immediately on publishing the Javascript you write into the Playground window.

Anyway, happy trails with Expo or Playground. I hope this article increases awareness to your evaluation of JS frameworks: keep an eye out for GitHub love, and check out native mobile app possibilities of each framework.

--

--