The market for mobile applications is constantly growing, and more and more companies want applications for these devices. The main problem facing these companies is that the different mobile platforms are currently in fierce competition, and the cost of a presence in all of them would be very high.
This heterogeneity implies multiple development platforms which even for simple applications makes projects more complicated, increasing the risk of errors and the costs of development and maintenance.
But alternatives have appeared on the market, with frameworks that attempt to unify developments as much as possible on any platform, so that a single implementation (or with slight modifications) can create native applications for different mobile platforms. The two that we consider to be the most mature and promising are PhoneGap and Titanium.
PhoneGap consists of a series of utilities that help implement and build applications for multiple platforms through HTML5, CSS and JavaScript. Its main features are:
- A platform to create mobile applications with HTML5 and a number of libraries.
JavaScript using Web standards. - High-level API to operate on devices for each platform.
- Open source.
Alvantia has developed several projects with this framework and this experience has enabled us to identify their pros and cons. To support using this framework, we have the following points:
- Development with Web Standards (HTML5, CSS and JavaScript).
- Exploits the versatility of JQuery and JSON.
- Easy development, virtually no learning curve.
- The design (HTML5 and CSS) is totally independent of the PhoneGap framework, so there is total freedom in the look & feel, which can be almost entirely identical across platforms.
- Applications are generated for nine different platforms (iPhone iOS, Android, WebOS, BlackBerryOS, Windows Phone 7 and 8, Windows 8, Symbian and Bada).
- Possibility of debugging from a Web browser.
Some of the weaknesses of this framework are:
- Not all devices support HTML5, so you cannot use all the power offered by this language.
- Some problems with the API: utilities are not available for all platforms and the implementation of complex applications is not easy.
- Installing the XCode or Eclipse environment is non-trivial and is done manually.
Titanium is a comprehensive development framework based on JavaScript that has many tools for generating native applications for both Android and iOS. It ranges from a free version with multiple services to three plans with different costs and levels of support. The main features of the Titanium ecosystem are:
- Titanium Studio, Aptana Studio-based IDE, in turn based on Eclipse.
- Titanium Mobile SDK / Tools, high-level API and tools to generate native code.
- Titanium Marketplace, where hundreds of features are available to extend the base platform.
- Titanium Cloud Service, which provides storage, email delivery, push notifications, calls to APIs, etc.
- Alloy open source MVC framework for application development.
Having developed apps with Titanium, we feel that its strengths include:
- Using JavaScript for development, adding many of Titanium’s own functions.
- Unified API for all platforms.
- Familiar development environment (Eclipse).
- Easy to develop specific native modules for each of the platforms integrated within the framework.
- Availability of third-party modules in the Marketplace.
Points against the use of Titanium include:
- Despite being based on JavaScript, a steep learning curve is required to use Titanium components.
- Debugging is complicated by the characteristics of code generation from Titanium code, especially after the inclusion of Alloy MVC.
- There is no graphic design environment in the application: it is all based on XML.
- The design is limited to the specific theme of each platform, and alternative designs are not immediately implemented.
- Being event-driven programming, errors are not very clear, which makes their identification and finding their location more difficult.
PhoneGap is simpler to use than Titanium, which has a steeper learning curve, although Titanium can develop more complex applications than PhoneGap. Regardless, we believe that the two frameworks are very interesting options for the development of mobile applications.