Cross-Platform Mobile Development – Which is the Right Path?
With the announced availability of the Blackberry Playbook, the growing popularity of Android devices, and the traction that Windows Phone 7 is seeing, is it’s getting more challenging for businesses to develop a mobile applications strategy. There are several different paths to building a mobile application, including:
- Native Development: This involves building a separate application for each platform using the recommended native language.
- Open Plug: A software developer kit (SDK) to build cross-platform native mobile apps using ActionScript/Flex.
- QT: A cross-platform application and UI framework that enables developers to build once and deploy across many platforms.
Native development provides the broadest scope of functionality and ensures that an app is adapted to work well for the specific OS/device. However, development requires specific expertise in proprietary technology (Objective C for iPhone/iPad/iPod, C#/Silverlight for WP7, Java for Android and for Blackberry), and creating a cross-platform app means essentially starting from scratch each time.
For organizations that are looking to package websites and web applications as native apps, solutions like PhoneGap may be a good fit. This open source framework wraps your application to create a native app that leverages a web viewer component. Organizations can also take the web application route, where they build an HTML5-driven application that will run on most systems and devices. This can work if the application is very simple and leverages only the common denominator functionality of HTML5 that is supported across all browsers.
Titanium, Open Plug, and QT all provide efficiencies as they leverage existing skills and allow developers to use a common base of code to package an app for each platform. They also allow for programmers to work in the language they know best, which means fewer errors and faster coding. However, the features they support are the “lowest common denominator”, which limits the functionality of the applications you can create.
Adobe is also releasing more mobile support with its next generation of Flex/AIR and will have tools to cover all mobile platforms.
The best path for an organization really depends on the team’s expertise, budget and time-to-market requirements. While native development offers the most functionality and more options, alternatives like Titanium, QT and OpenPlug provide massive advantages in leveraging a team’s existing skills to deliver an application that is faster-to-market and ultimately cheaper to build.
The answer is not black and white either, as you can use a mix of tools to accomplish your business objectives. For example, you can build an application for one platform using native development and use a tool like Titanium to deliver to other, less important platforms. Or you can use Titanium to quickly deliver a prototype or first version app of an app to the market for user validation and feedback while you are working on a more full-featured native application.
So, which is best? This will depend on the desired functionality of your app, the team you have working on it and their programming knowledge, your budget, and your time to market strategy. There really is no one-solution-fits-all option.