Cross-Device: Native x Web

No comments
Crossdevice applications are those built to run similarly in many devices such as PCs, tablets, mobile phones, TVs, etc. On the other hand, crossplatform applications are built to run on various computing platforms such as Windows, Linux, Android, etc. When we say that an application is crossdevice and crossplatform, we know that once you develop your code, this will run on all predicted devices and platforms, usually producing the same functionality and achieving the same ultimate goal.

Hardly a company will have the luxury of producing specific applications for each of its features and target platforms. It is in this scenario that enters the frameworks and tools that help us building these applications. In the case of mobile applications, we can create a unique code application to be executed in iPhone, Android devices, WindowsPhone, etc. For this, we rely on various frameworks like, for instance, PhoneGap, Appcelerator, Adobe AIR, Sencha, Unity, Corona, Mono, etc.

Although these frameworks are relatively recent, if you look at the big picture, we already have these crossdevice and crossplatforms technologies being developed for over 20 years! A Web application running on a browser like Chrome, Firefox, Internet Explorer, Opera, etc, is by definition crossdevice and crossplatform. We know that these browsers work in various devices (including TVs!) and also in various platforms. So... why reinventing the wheel?

The point where we must focus and where the Web is converging is to allow access to a device functionality directly from the browser. And who is behind this venture is HTML5, which is gaining ground every day in our daily lives. Through the evolution of HTML5, Web applications can behave like native applications and work exactly as if you were accessing the functionality of your device. For example, we can build transparent Web applications that can access the camera and vibration on your device, and even persist data without connecting to a server, working completely offline.

Thus, along with HTML5, we are revisiting the philosophy of focusing part of the application processing on the client, thereby building a fat client. Thus, there is a great challenge that is the maintainability of Javascript code. In fact, there is a steady increase in the complexity and size of the application code and this becomes a problem because the code in this language is not easily maintained and intelligible when it assumes large proportions.

This article starts a series of posts that intends to discuss these problems and some of its solutions we found to deal with. Stay tuned.

No comments :

Post a Comment