A few weeks ago, I've found myself in the nightmare created by Android's built-in WebView component. Nearly every device have it's own version of it, of course there are enhanced versions (like on a Samsung Galaxy Tab, or on Nexus 7), but the real thing is that not every user have these high end devices.
You're going to support more and more devices, because if you are developing an app, you want to enjoy watching the increasing number of downloads.
Cordova and Phonegap doesn't come with an alternate WebViews, so you have two ways to finish your HTML5 project (without rewrite it to be a native application):
- throw out some animations, unsupported CSS3 definitions, so basically you are going to make a lower quality product than the planned version, but the benefit is that you're app is going to look, and work in the same way on all devices.
- you're going to give yourself a hard time finding a solution to import a new WebView for your application.
Well after I wasn't satisfied with the result with the first way, I've decided to take some time to search for a working solution to create an app with a Chromium WebView included. I've finally found a solution, and actually I was quite amazed by the results.
The Crosswalk project is based on Cordova but it can embed a new WebView component, which is actually a Chromium WebView! So finally I had a way to build my projects and get the same results on every device. Of course: there are some performance issues with old devices, which are actually unsupported by the device vendor, and they never got Android 4, or they are low-end.
The features that finally working (and you never get them to work with simply using Cordova / Phonegap):
- HTML5 Audio
- Updated CSS3 rendering
- Hardware accelerated rendering (if you think that it worked, try the tool at the end of the article and look at the differences)
- and there will be much more :)
After Google I/O 2014 one of my colleagues told me that Google released a build system for Google Apps. So I gave it a try:
- It's using Cordova. Meh...
- It's using Crosswalk too. Wooo! "It's worth a try!" - I thought.
So I went to the projects site and installed the toolchain.
Then I've built the app with it. And then I cried. It was the moment when I finally deleted all Cordova / Phonegap builds from my computer.
It's still uses Crosswalk but actually Google have improved the whole thing some way and it's actually faster, more reliable and the produced app can run on lower-end devices too (with a slightly better performance than with the builds with simple Crosswalk).
So if you want to develop Web applications for Android then you should try this toolchain and enjoy the simple tools it gives to your hand.
I hope this help you create a better application without restrictions.