Perhaps you have heard of the topic “cross platform development”, but aren’t really sure what it is, or you aren’t sure why you would want to use cross-platform technologies. If this is the case, then this post is especially for you. I’ll try to shed some light onto what it is, and why you would want to use cross-platform development strategies.
What is cross-platform development?
Cross platform development is a concept in computer software development where you write application code once, and it runs on multiple platforms. This is very much inline with the “write once, run everywhere” concept pioneered in the 90s, and brought to a mainstream reality with Flash in the browser, and AIR on the desktop. The standard evolution of technology has been to make everything faster, smaller, and more portable, and it is only natural that that this concept has now come into the mobile development world. In mobile scenarios, it is applied by writing an application using a codebase & technology that allows the application to be deployed and distributed across multiple disparate platforms/operating systems/devices.
Using Adobe AIR, this includes Apple’s iOS devices (iPhone and iPad), Android (a plethora of devices), BlackBerry Playbook & upcoming BBX platform, and soon Windows Metro (the tablet offering of Windows 8). Using PhoneGap, this includes Apple iOS, Android, BlackBerry 4.6 and higher, HP WebOS, Symbian, Samsung Bada, and Windows Phone 7 – Mango platforms.
In case you’re wondering why I offered 2 cross platform technologies, that is because Adobe will soon have 2 cross-platform product offerings. Adobe has entered an agreement to purchase Nitobi, the creators of PhoneGap.
Adobe AIR is a cross-platform technology with roots in the Flash Player and the AIR desktop runtime. AIR allows you to build cross-platform mobile applications using ActionScript and the open source Flex framework. AIR apps can be built from the Flash Professional timeline-based design/animation tool, Flash Builder (an Eclipse-based development environment), or other open source solutions using the freely available AIR SDK. Applications developed with Adobe AIR can target desktop platforms (Mac, & Windows), smart phone and tablet platforms (iOS, Android, BlackBerry, soon Windows), and even smart televisions.
PhoneGap (Apache Callback)
More Devices, Less Code
The driving factor behind cross-platform technologies is that you will be able to use those technologies to target more devices & platforms, with writing a minimal amount of source code. There are many advantages with this approach. Here are a few of the major reasons…
Lower Barrier of Entry
Reduce the Number of Required Skills for the Development Team
Reduced Development & Long Term Maintenance Costs
Cross-platform mobile applications can originate from a single codebase, which requires a single development skillset. You don’t need to have staff for each individual platform. Instead, resources working on the shared codebase can cover all target platforms. Having a single codebase also reduces long term maintenance costs. You no longer need to have bug tracking for X number of codebases, and do not need to maintain a larger staff to support each platform. Did I also mention that you have one codebase to maintain?
Having a single codebase doesn’t reduce the need for QA/testing on each target platform – nothing can get rid of this. It is absolutely imperative that you test your codebase on physical devices for all platforms that you intend to support. Emulators and Simulators can go a long way during development, but they will undoubtedly not cover all scenarios possible on a physical device, and they will not have the same runtime performance as a physical device.
Play the Strengths of a Technology
Some technologies make tasks easier than others. For example, programmatic drawing and data visualization are very easy using Flex & ActionScript. Developing equivalent experiences in native code can be significantly more complex and time consuming. Use the the features of the language to their fullest potential, to your advantage- that’s why they exist.