On hybrid apps

After recently spending some time (lots of time…) building a hybrid application for the first time, I thought I would share a few thoughts on the subject, based on experience and what I’ve learnt whilst actually doing it.

There are varying opinions on hybrid apps, ranging from “they’re awesome” to “they’re crap.” Of course these are two extremes and the reality, in my opinion, lies somewhere in between, albeit more towards the “they’re awesome” one.

Not native

As obvious as it seems, something that people – especially customers – fail to grasp is is that a hybrid app is not a native app. No matter how well designed it is, a hybrid app will not look as good as a native app. It also won’t work as well or as smoothly as a native app – this is a given, since that which is native is bound to be faster than that which is not.

So part of this is managing a customer’s expectations. If they want to go down the hybrid route, for whatever reason (usually cost), then they have to be aware of those points I just mentioned. Sadly it can be the case that the customer may have had an iOS native app before and therefore that’s what they compare the first release of the hybrid app against. And when compared to a native app, the hybrid app will always fail.

Tools

Obviously one of the main attractions of a hybrid app is that you can have one code base and deploy it on multiple devices. In theory anyway. On the project I worked on, I used a combination of jQuery Mobile and PhoneGap Build.

This particular client wanted the app to also run on the web, in a browser, including Internet Explorer 8. It also means that this app was a hybrid web app as it was to be installable on devices (only iOS and Android is this case) whilst also being available to desktop and mobile browsers. For these reasons, jQuery Mobile was the framework of choice, given its wide range of browser support.

PhoneGap Build was officially launched on the with the following claim:

The PhoneGap framework allows developers to build native mobile applications using the standard web tech: HTML, CSS and JavaScript

The only thing I have a problem with here is the claim that it allows you to “build native mobile applications” which, as I’ve stated above, isn’t correct as a hybrid application isn’t a native application and to claim otherwise can be misleading for the other reasons I’ve mentioned above.

It is very useful however as it does allow you to upload a zip version of your web application and turns it into native-like code that allows you to install the hybrid app on Android, iOS and other devices as a native-like app. This of course allows you to make your app available via the Google Play and iTunes Store – which is very useful. Note that I keep saying “native-like” as it’s not native.

The app itself did require a lot of tweaking here and there for different OSes so it’s not plain sailing, but then again when is it ever?

In conclusion

Overall I think that hybrid apps do have their place, but it’s a matter of understanding that the resulting app will not be as good as a native app, and ensuring that the customer understands this also.