As the Android and iOS platforms continue to duke it out for mobile dominance, many development shops are faced with a choice: Do you support both platforms or choose one over the other? If you decide to develop both iOS and Android versions of your app, is there a way to share the code or are you essentially looking at two separate projects?
Leveraging a cross-platform mobile development tool is an option worth looking at, but it depends on the type of application you’re building. Business applications with little esoteric functionality usually make a better fit for cross-platform development, while high-end gaming apps tend to be a more difficult prospect, especially if ranking performance is the goal.
Many cross-platform tools have to play catch-up when new features are released in mobile platforms, so don’t expect such a tool to immediately support Inter-App Audio, iBeacons and AirDrop. As the old OS story goes, the simpler the app, the better the chances for easy cross-platform development.
One option for Flash developers looking to target the iOS platform is Adobe’s Flash Professional. This IDE gives you the option to build iOS native apps with ActionScript 3 code, providing access to most of the functionality within the AIR and Flash Player APIs.
Developers are able to optimize graphics rendering using OpenGL ES on iOS. According to Adobe’s Scott Petersen, this is important for overall app performance. “While script optimization does yield benefits, you must also consider rendering performance if you want to optimize your iOS app to the fullest,” says Petersen.
If your development shop is well-versed in C# and the .NET Framework, Xamarin (formerly known as Mono) is an option for targeting iOS, Android and even Mac OS X. It’s particularly useful for enterprise-level business applications with deep class design. Business logic, data access code and networking functionality are all shared no matter the final platform.
The .NET runtime gets bundled with the app code into the delivered native executable, which is ARM compatible on the iOS and Android platforms. Xamarin offers a separate IDE or a plug-in that works within Visual Studio.
Colin Eberhardt, CTO of ShinobiControls, said in an interview with Visual Studio magazine that he actually prefers iOS control design in Visual Studio than Xcode’s Interface Builder. “You can add wizards, design-time data and more,” he said. “I’ve made use of this in the past on previous projects. In fact, the extensibility of Visual Studio in general far exceeds that of Xcode. This provides a wealth of opportunity.”
Oracle’s ADF Mobile framework offers Java developers the opportunity to target the iOS and Android platforms simultaneously using HTML5 for the UI layer. ADF Mobile appears to be primarily suitable for business applications. The compiler embeds both the SQLite database and a lightweight version of the JVM into the ARM-compatible mobile executable.
The HTML5 functionality also makes the tool suitable for building mobile web applications. Infosys industry principal Nikhil Kumar and lead consultant Amit Zutshi discussed ADF Mobile for TechTarget. “It is the easiest way for developing device-agnostic smartphone applications that don’t need offline and device integration features,” the pair wrote. “It supports both Web services-based and point-to-point integration with base applications, though the latter severely restricts the extensibility of the developed mobile application in question.”
So if you are developing a mobile business app for both iOS and Android, a cross-platform mobile development tool is an option that could save you both time and money. Just don’t expect to build a super-fast 3D action video game in a similar fashion.