SeamFramework.orgCommunity Documentation
The Mobile Platform is a relatively new beast in the world of computer programming. For the longest time (atleast since 1996 that I know of), companies have tried to come up with ways to squeeze the power of the Internet into a device that conveniently sits in your pocket. After many stop and go linear approaches, one company changed the game. Apple with their iPhone release in 2006. A whole new Computer with different architectural rules, and user expectations was born. The notion of native Apps was created. Even though "The Browser" is a perfectly mainstream gateway to the Internet on a desktop, the same rule does not translate naturally to the mobile environment. In fact that was the very reason why Mobile Internet has been the next big thing atleast for the last 15 yrs. Companies lazily expecting their users to adopt "The Browser" on the mobile phone without realizing this is a completely different beast. Its a paradigm shift in computer programming. The Mobile Computer is turning out to be the next step in evolution of the Personal Computer.
Web App Development involves accessing the Mobile App via a native browser located on the device. Programming can be done using standard web technologies like HTML, CSS, and Javascript>. Just like the PC world, the App executes completely on the server, while the mobile browser serves as a dumb terminal rendering just the UI. Some Javascript/Ajax approaches try to add some thickness to the architecture, but for the most part the App is fully reliant on the server and an active network connection.
Native App Development involves developing the App using the programming language and APIs provided by the native platform. It provides the most flexible approach to implementing complicated functionality and provide the best user experience possible. Here are some of the advantages of developing a native app.
Here is a list of some of the popular smartphone platforms available in the market
In other words, whether to use the native approach or the web based approach is purely a business decision. For simple apps that only need to access data via a dumb terminal, native approach is overkill. For complex apps that fully utilize the power of the underlying platform, a native app is the best route.
The OpenMobster Mobile Cloud Platform aims to deliver the low level infrastructure that provides services needed to build easy to use, innovative native apps. It takes away the hardwork of writing middleware infrastructure, so that the app developer can focus their development effort on implementing their business requirements. Here are some of the ways, OpenMobster tries to alleviate some of the disadvantages of native app development
The ideal scenario would be to have a standard API/programming language across all platform for native apps. This is highly impractical considering we still have not achieved this in a desktop environment, and a mobile computer has many differentiating factors that prevent this from happening.
However, what is possible are native apps that use HTML, and CSS for the GUI presentation layer, and Javascript for event handling code. This is in fact possible in theory with HTML5. HTML5 aims at providing a standard for developing cross platform native apps, with all the features and services that are desirable for a native app. However, this is still an on-going effort at the spec level. HTML5 based native apps are probably a couple of years away from fruition.