//
you're reading...

Ideas

What Are Web And Mobile Apps?

mobile_appsThe line between web and mobile apps can be somewhat confusing at times. While both existed prior to the iPhone, the terminology and basic understanding of the issue essentially is due to Apple. This is also where some of the confusion and difficulty comes from.

In the early days of the iPhone, Apple was heavily pushing the idea of all mobile applications essentially living on the Web. In theory it was a fine idea. In practice, they were pushing an ideology before the infrastructure was ready for it. The first generation iPhone had a limited CPU and data speeds that were capped at speeds only a little better than a dial up modem. The first generation of iPhones didn’t have the processing speed to run a modern web browser, and it lacked the data speeds to download full web based mobile applications. Later Apple moved to applications based on their OSX development model, and these became known as mobile apps.

However, web and mobile app development wouldn’t stay separate forever. The second generation of iPhone featured full 3G data connections and a faster processor which allowed for more robust processing of web pages. Android devices were also gaining popularity, and as expected from Google they featured a robust browser. This was the point where Web apps began to gain popularity again.

One of the biggest boons was that both Android and iPhones were now able to make use of something known as JIT. JIT stands for “just in time” compilation, and it gives a huge speed boost to web based applications. Essentially when one loads a web page with a JIT enabled browser, the JavaScript is compiled to something closer to native code rather than forcing the phone to interpret each and every line on a continual basis.

One of the more exciting aspects of JIT compilation is that it finally realizes a long held dream of developers. Ever since there were competing platforms for home computing, developers have wished that they could share a single program between multiple systems. Web based applications have almost reached that level of ubiquity.

What’s standing in the way of Web based applications becoming fully platform independent? At the moment it comes down to extensions to Web apps which allow one to make use of the underlying hardware. Android based Web applications for example can make full use of a phone’s hardware or native menus, but only if running in an offline process which wraps up the app in a native shell. Apple takes almost the opposite approach, and disallows full JIT compilation for Web technology wrapped in another system process.

There are exciting changes in progress which are taking care of the compatibility issue. The HTML5 specs are still in development, and one of the most innovative additions are coming in the form of allowing access to more and more features of the browser’s underlying hardware. For example, most modern mobile browsers do allow for one to make use of GPS. Additionally, mobile operating systems are putting focus on creation of native seeming integration for Web based apps. For example, it’s possible to create application icons in either an iPhone or Android device on one’s home screen.

Discussion

No comments yet.

Post a Comment