There’s a lot of talk about web based apps being the future of cross platform mobile development, but for now, apps that are mostly or entirely native rule the roost, with Apple’s App Store reportedly accounting for 99% of all app sales.?
A native app written in the device’s native programming language, be it C++, ObjectiveC or Java (albeit Java is not as ‘native’ strictly speaking), offers the best possible integration with the device, and the best performance, important for games but also important with today’s user’s expectations of an animated and responsive UI.
The lack of commonality in language, APIs and application structure between mobile operating systems means porting is, more often than not, rewriting from scratch. In theory, web apps are the solution for this.?
By web app we mean something akin to a website but which has one or more attributes that make it more than that - using standard (such as HTML5, JIL or BONDI) or proprietary (offered by Nokia, Opera and others) means to behave more like a standalone application, accessing file storage and resources such as GPS and camera, and perhaps coming packaged as a ‘widget’.
In theory, a web app has many advantages - reuse of assets and code across both desktop and mobile platforms, and reuse of the in-house New Media skills you may already possess. Also greater speed of development, speed of deploying updates, and the ability to produce highly customised and stylish interfaces with HTML/CSS.
However, the current generation of web apps are bound by the limitations of the web browser they are built on. Competing standards and more significantly having to support different versions of WebKit with different bugs and different compatibility issues, negate many of those advantages.
Is there a third way? Some apps already embed a web view for their UI and use native code for the engine underneath. Others are little more than websites wrapped in an app shell for App Store distribution and perhaps access to location. This sounds like the perfect solution. But the performance and memory overheads of a web app, and the complexity of developing two different codelines results in an unsatisfactory user experience and a higher cost of development, making this approach the worst of both worlds.
In conclusion, the reality is that the advantages of web apps are still a fantasy for now, but the topic is definitely worth revisiting in a year or two. ?