22 Jan-2014

The Shift to cross platform

Within the last couple of years, technology has went through a lot of turning points. From being computer-dominated to be mobile-dominated, from desktop application to web services to mobile applications. Organizations in 2011 has shifted their mobile strategies from “good to have” strategy to a “nice to have” one, and this has affected organizations of all sizes. Although companies have started looking into targeting a certain platform to publish their applications on (e.g. iPhone, Android … etc) the last year, this year is again shifting the cross-platform strategy from “good to have” to another “must have” strategy.

Going cross-platform and develop for all the well-known platforms like iOS, blackberry rims, Android, Kindle tablets and windows phones while holding the integration and identity of the software among the different platforms is a real challenge. While HTML-based applications could solve a bit of this problem, it could not offer the functionality of the native application of each of these platforms.

Fortunately, developing tools have foreseen the need of going cross-platform and started creating tools that help the developers to minimize the work needed to create an application that can work on different devices, operating systems and other platforms. Adobe flash builder for example added the functionality to export the final product into native iOS and Android applications. To do this, most frameworks allow users to write apps in a dynamic programming language (JavaScript is the most common, though many frameworks also support Ruby or Python), rather than in Objective-C/Cocoa, Java or C#/.NET. The frameworks will then compile against the native libraries of a specific platform and spit out an app for each platform the developer targets.

As with any development strategy, there are pros and cons to taking a cross-platform approach to mobile application design and development.

The pros of using a cross-platform framework:

  • Code Is Reusable: Rather than having to write the specific action or sequence for each platform, a developer can just write the code once and then reuse those bits in later projects or on other platforms.
  • Reduced Development Costs: This is perhaps the biggest advantage because it allows companies or brands to get an app onto other platforms without having to invest in a team or developer specific to that ecosystem; for individual users, this means less time for giving out the same product.
  • Support for Enterprise and Cloud Services: This comes from the integration between the different versions of the application and the ease of creating APIs that can be called by all versions, and this is needed for the support of cloud services.
  • Easy Deployment: Deploying and compiling apps is much faster in a cross-platform scenario. This is especially true with many of the new cloud-based build tools that various frameworks are starting to push out.

### The cons of using a cross-platform framework:

  • Code Might Not Run as Fast or stable: The cross-compilation process can sometimes be slower than using native tools and calls for an app, and stability of the output product can not be approved to work bug-free as an application natively developed.
  • The Framework Might Not Support Every Feature: If Google, Apple or Microsoft adds a new feature, the framework you are using will need to be updated to support those new additions. You Can't Always Use Your Own Tools: Most frameworks want users to use their own development tools and suites, and that can mean that a developer has to forgo his or her own IDE preferences and use something else.