SeamFramework.orgCommunity Documentation

Chapter 2. Mobile Programmer's Dilemma

2.1.
2.2. WebApp ("Browser based") Development
2.2.1. Advantages
2.2.2. Disadvantages
2.3. App ("Native") Development
2.3.1. Advantages
2.3.2. Disadvantages
2.4. Popular Mobile Platforms (in no particular order of preference or market share)
2.4.1. Blackberry
2.4.2. Google Android
2.4.3. iPhone
2.4.4. Symbian
2.4.5. Windows Mobile
2.5.
2.6. Back to the Future

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.

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 pluggable nature of the Mobile MVC framework makes it easier to port an app across multiple platforms. Most of the GUI level plumbing is provided by the Mobile Cloud runtime. Only thing that requires porting are the Screen and Command components that are implemented using the native programming language/API.
  • Having a consistent messaging spec across all the device level components. This makes the API features lot more consistent and only thing that varies across platform code is the syntax of the programming languge.
  • Provide the same exact framework API in case where the programming languages are the same. For instance, Blackberry OS and Google Android are based on the same 'Java' programming language. In that case the API of the various frameworks have the same exact syntax. This cuts down the porting effort dramatically. Only code that would require porting is the code that uses the low level platform API. The code cannot be platform independent, but it can be language-portable.