Transmission Line Noise

Native or Web or Compiled SPWA Choices?

Fri, Jul 15, 2016
Android IoS Phonegap Ionic Cordova

Native or Web or Compiled SPWA?

Choices.

Which devices? I think this is easy. Android and IoS they are effectively the only players in the market.

More choices.

Native or Web.

It would appear Steve Jobs original intention was not to have end users build apps. Then it was trimmed to doing so but using html/js/css then on both platforms native evolved. IoS on iPhones Java for Android.

So the choice is to go Native or Web based (but please note the waters will get muddy in this.)

Native

Have two sets of developers (or one smart one) and build in IoS & Java and maintain the two. With IoS you have to contend with the App Store, although for installing for corporates rather than the public there are other ways of doing it. For Android i am less sure of the mechanism but suspect you can just give the app to whomsoever you want as there is not the same level of policing that Apple do.

If you then update the app there needs to be mechanisms to do this and ensure your user base has the right code. Even if not onerous, and Apple have simplified their process recently it still consumes time and effort.

Web Based

Build a web application and then get the users to access it via the browser. This has the advantage of just one platform and no distribution overhead. Also means users get updates instantly.

The problems are in a few areas

Users need to be connected to the web.

You cannot use on phone tools such as camera, gps, tilt and swing sensing in the device, magnetometer etc.

Also the Gestures that user expect. Swiping left and right, double tap etc.Although these can be alleviated by using various libraries than emulate them (See hybrid below)

Hybrid and SPWA and Phonegap

The way round making a non-native app feel native is to use one of the many libraries that help you to build apps collectively called Single Page Web Application (SPWA) (this is a bit of a simplification sorry)

Using Javascript and CSS multiple pages are built into one page that is located on your device. So when you use gestures you are just swapping between different parts of the same page. Fast and looks like the real thing. A SPWA can be built and then accessed via the web.

Compiling to native. Many of the libraries/toolsets will then also allow you to “compile” this SPWA into a native app than can be installed on a mobile and many of them allow you to build one source and compile to multiple (IoS, Android,Windows) targets. A good accessible (in terms of getting the notion) is Intel’s XDK package https://software.intel.com/en-us/xdk/docs/intel-xdk-introduction Other tools/packages that do this are Ionic. Sencha, Ext JS (an old one) and probably more. I have used XDC it is very good and i completely free. Other are probably just as good but can cost. You can of course do it all manually or with libraries. Query and JQuerty Mobile etc.

PhoneGap/Cordova

This package/library allow you add those things back in such as the camera, messaging, maps, gps phone coordinates (tilt, shift etc.) this is open source project and is often built into some off the libraries (XDK for example) allowing this type of functionality to be attached to non-native apps.

Databases.

All of the above is about the code and the devices. Data can always be accessed by apps form the web and stored locally this is not an issue other than being frugal with bandwidth and device storage sizes (especially Apples cheapskate at high prices approach)

Management Summary (no not really)

Native for really solid apps that need to use the built-in phone hardware and do not need updating (code-wise) to often.

There are good devs out there that can handle both devices coding and minimise the cost and disparity.

Web based. Fast changing code and look and feel, short lived web sites, low cost for small specialist audiences

Web then compiled for applications which vary between the two extremes.