Performance of Cordova/Ionic/PhoneGap. When Is Slower Fast Enough?

It always annoying having to do the same piece of work twice, so the ideal of ‘hybrid’ mobile apps where most of it is built using standard web technologies and can run on both Android and iOS (and more) sounds like a great way to go.

But as you might know hybrid apps have sometimes had a bad rap because mainly because of performance and to a lesser extent Cordova (along with other cross-platform mobile technologies) having their own quirks and issues.

Hybrid apps will always be slower than native apps, there’s no way around the extra overhead of rendering with HTML5/CSS/JS.

And for a long time that has an issue with the limited CPU and memory on smart phones. But now it’s 2015 and new phone are packing faster quad CPU cores and 3GB of RAM. Also the faster GPUs can perform animations using the appropriate CSS3 styles.

One of the main reasons of having the demo of Cloneder on the is so you can test the performance of the app yourself and decide if it’s fast enough and provides a good enough experience for your users.

Faster Sooner!

So what will make Cloneder and other hybrid apps run faster?

While the state-of-the-art in JavaScript engines and HTML rendering has been developing at a solid pace, most Android phones are stuck with the WebView that it came with.  And the default iOS WebView has been lagging behind to, so older phones are at a double disadvantage, but not for long…

When building Android apps there is already the option of using Crosswalk which bundles in the latest Chrome (actually referred to as Chromium) WebView which improves performance and compatibility with the latest web specifications.

On the Apple side with iOS8 there is a new WebView called WKWebView. It’s not currently included in Cordova as they are still working through some issues.  When that’s ready soon iOS hybrid apps will get a performance boost.

The Ionic team has been hard at work on their awesome hybrid framework which Cloneder is built with.  They have been working on native scrolling for Android and a list component which only renders the visible portion of the list, which help when browsing large lists.

Also they are in close contact with the Google team developing Angular 2, the JavaScript framework which Ionic is built on.  Angular 2 will also provide a performance boost as it is more efficient and than Angular 1.  This is still a ways off yet, but another boost we can look forward to later in the year along with faster phones.

A poorly coded app will always be slow, so its important for the developers for your app understand Angular well so performance isn’t wasted on poor code. Cloneder utilises a number of performance tips such as one-way bindings and sets a particular configuration flag which removes debug data in production builds.

Another possible performance jump down the track could be from projects like SoundScript (https://developers.google.com/v8/experiments) This sub-set of JavaScript will enable the Google V8 JavaScript virtual machine to further optimise the runtime performance.

Build, Now, Go!

Good enough means you can customise Cloneder using the popular standards and frameworks and get your app out there ASAP on both major platforms at a fraction of the price of building for both natively from scratch. If your app is a big hit and you get a big chunk of venture capital then you might consider re-writing your app natively.  Or by then with the latest WebView’s, Angular 2 and faster phones you might not even need to 🙂