I was doing some introspection on the work I have been doing last year and realized that I have some really strong opinion on stuff which wasn’t there a year back. These opinion are mainly influenced by mobile technologies I have been working on including iOS, Android, Windows Phone and HTML5.
First things first, a year back, as a developer who have worked on enterprise projects; everything was a program. It has to be workable, secure and rock-solid. Mobile world thought me a very important missing ingredient – The HUMAN TOUCH. Well, quite literally. Smartphone( and tabs) are the new workstations; I reckon people do more useful / productive work on their phones than the laptops.
Now, the important thing to take note is a smartphone is too personal a device. Its almost an extension of one’s personality. People love their phone; and if they get some useful stuff going on the phone as app; trust me; that’s it.
So, back to where I started; we wanted to build a platform which can be used to quickly build / deploy apps on devices. It was a long hard discussion on HTML5 v/s native. We decided on BOTH.
APPROACH 1 – Html5 hybrid apps
We decided to build a comprehensive set of learning aid app on HTML5. The premise was great; Write once, Run everywhere. HTML5 seemed quite capable of “The Silver Bullet”. I was deeply involved in coding and deployment of the apps and though the coding language was familiar the deployment wasn’t.
So here is the caveat. Hybrid application do need compilation process of native. And if the app uses some native APIs; a great deal of understanding is required on each mobile platform. But the biggest hurdle comes in form of two things (in that order)
1. Performance. An Html5 app is apparently slow. And as I mentioned; people use their smartphone so intimately that even microseconds matter. trust me. And getting the right UI is al together a different story. Imagine a round cornered button on Windows Phone!!! it can be disaster.
2. iStore / marketplace / Google play approval. After all the hard work and tweaks you may receive a feed back like this app may well be an HTML5 website !!!
This approach fitted well in my enterprise mindset of reusability, quick response and same look and feel everywhere. If something look same in iOS, Android and Windows Phone, it should be easy to use. Same training required and it works exactly the same on any smartphone.
Alas, reality thought me otherwise. The Human Touch was missing.
APPROACH 2 – Go Native
Around the same time; on an another project, we decided to build a framework which can build NATIVE APPS ON THE FLY. This way, we can get best of native apps (performance, look and feel, etc) and simultaneously use the framework to churn out apps.
We have this framework in a pretty stable and evolved state now with lots of customization options to boot.
Below is the link of an app in native iOS build using the framework
and native Android app
and Windows Phone app
Note that all the smartphone UI aesthetics remain true to native UI with performance users love… So a table view showing menu in iOS becomes android navigation bar; while the same becomes a Tile in WP.. All of that “on the fly”…
So, as I was said, THE HUMAN TOUCH is important and imperative in todays scenario. People are used to a certain way of using the phone. The app should be an extension of the device; it should just mix well with it.
Html5 is like pajamas; and native app is like an Armani suit. A pajama may fit all but it may not make you look crisp and smart.
One framework with a web interface to create NATIVE applications on the fly; catering to all major mobile platforms was what we built. You may call it need for perfection; call it innovation.
That’s enterprise apps with human touch.