In recent years, the demand for mobile applications has grown at a fast pace. In the last quarter of 2011 alone, 157.8 million smartphones were sold, a 54.7% increase compared to the same period in the previous year, according to the IDC consultancy.
As sales grow, the need for applications also grows, both in the corporate environment and in entertainment. From this growth, techniques and tools are increasingly emerging to make this development productive, especially across the three most popular platforms of the moment: iOS, Android, and Windows Phone.
We will discuss three modes of development for mobile devices: native development, cross-platform, and mobile site (mobile web).
Focusing on their main advantages and disadvantages, presenting success stories in order to allow the reader to better understand the three approaches and helping to define the best alternative for each situation.
Native Application
This is the simplest and most direct approach: a version of the application is developed for each platform.
The great benefit of this approach is the superior interface and behavior experience achieved. Mobile applications require excellent user experiences in terms of interface and behavior to stand out and capture the user’s attention. And the user experience is not portable from one platform to another. It must be rethought and built from scratch for each platform on which the application is created.
A simple example can be seen in the position of the tabs: on iOS, the tabs are positioned below the content; whereas on Android, they are above. Presenting a greater difference, on Windows Phone the “tabs” are all on the same plane, accessed by scrolling the content horizontally.
Each platform has its own conventions regarding interfaces and behaviors. These conventions help the user quickly understand how to use the application, since they are accustomed to the platform where all applications follow the same interface and behavior standards.
The capabilities of each device and platform are also accessible without restrictions. With each new platform version, new libraries are added, making the development of various features by applications possible or easier.
These versions are released at a high frequency, one per year or more, and usually coincide with the arrival of new devices whose hardware takes advantage of all these new capabilities. Users of these new devices will demand the new features as soon as possible, and using native development makes it easier to satisfy them (beta versions are released earlier to developers).
Native development also relies on more comprehensive and complete documentation, and the search for solutions or troubleshooting is easier, since most developers choose this alternative.
Despite all the advantages, this approach can have a high cost. Building n versions of the same application for various platforms generally multiplies the project cost at the same rate.
This additional cost is added to maintenance, since there are multiple code bases, and in each of them there may be bugs not found in the others. Another difficulty is obtaining a team capable of developing for multiple platforms or assembling a team for each platform.
Success Story: Facebook
Cross-Platform Application
Cross-platform development consists of a single development for multiple platforms. Currently, there are several tools that allow this approach, where the visual part is usually developed in HTML5 and CSS and “rendered” in a browser embedded in the native language’s standard SDK (iOS Objective-C, Android Java, etc.), thus making development for multiple platforms possible. Below are two of the main tools on the market that were used internally:
Adobe Air
Using Adobe Air, it is possible to program in Actionscript 3.0 in the background and develop the visual part using MXL (Adobe’s markup language) or even using HTML5/CSS. Currently, it is possible to create versions for Android, iOS, and Blackberry Tablet OS. To install an application developed using Adobe AIR, the Adobe AIR Runtime must be installed on the device.
However, when attempting to install an application developed in AIR, the installation of the Adobe Air Runtime is automatically requested. The Adobe Air SDK is completely free, however Flash Builder, an IDE also developed by Adobe with a series of development conveniences, is paid. The language reference (Actionscript) is very detailed, but the documentation for the visual part is not as rich.
Motorola Rhomobile
The Rhodes platform was acquired by Motorola in early 2012, becoming Rhomobile. In Rhomobile, it is possible to develop in Ruby, with a framework similar to the already well-known Rails, while the visual part can be developed in HTML5 and CSS. When creating a new project, a CSS skin for each platform is already included.
The project creation itself already contains a routine that determines which platform the application is running on. It also has a vast database abstraction layer, making this part of development simple. On the other hand, its API part that handles HTTP requests and Threads is still very unstable; furthermore, documentation and support in Brazil leave something to be desired, especially regarding product licensing issues.
Other tools available on the market
- PhoneGap
- Appcelerator Titanium SDK
- MoSync
Applications developed with cross-platform tools generally considerably reduce the cost of a project, especially when multiple platforms are involved. However, because it is generic, access to native resources becomes more laborious and frequently problematic.
The visual part also turns into a problem, because in some tools it behaves substantially differently across the various supported devices. Therefore, it is frequently used in the development of simple applications that do not require as many native features.
Mobile Site (Mobile Web)
With the popularization of HTML5 and its adoption by mobile device browsers, a new front for development opened up: mobile sites.
Access to device resources such as camera, GPS, accelerometer, etc., is possible, although sometimes complicated.
A mobile site does not depend on an app store and its respective review policy. This allows for fast deliveries, featuring agile implementation of new features and bug fixes. The fact that it does not require installation by the user can also be counted as a positive factor.
A mobile site should not simulate the look and feel of a native application. Users know how to distinguish between a great experience on a native app and a great experience on a mobile site. To achieve this great experience, attention must be focused on building a site with great usability on touch and/or small screens.
The cost of building a mobile site is lower than building native applications for each platform. Professionals who know the involved technology are more common. However, mobile sites obviously have a primary requirement: internet access.
Although this is a basic requirement in the United States and Europe, in Brazil the mobile network is still not as common on smartphones and tablets. Therefore, a mobile site becomes more interesting when the application essentially requires web access.
Did you like the article? Then also follow Teclógica’s social media: Facebook, Instagram, Linkedin, Twitter, and Youtube.


