28 May 2015

The Truth About Cross-Platform Development

Subscribe to our informative Newsletter

Learn about new product features, the latest in technology, solutions, and updates as well as company news.

Andrzej Schmidt

In recent years there has been a lot of progress in the mobile world. With a split market between Apple and Android devices, new cross-platform app development tools have been cropping up left right and center, which can seem like a blessing to many – why replicate the same app on multiple different platforms when you can kill two birds with one stone?

However, for those who are looking to develop an app, the different terminology can be bewildering, and often it is hard to know what you are really getting for your money. Some cross-platform apps have notoriously un-user-friendly limitations, and often people are quick to tar all cross-platform development tools with the same brush. However as specialists of cross-platform mobile app development, we would like to clear up some misconceptions around cross-platform development, and discuss the benefits and disadvantages of each type of development.

Native Apps

So before we get started, what are native apps? The standard development approach is to build single-platform apps using the appropriate language for that platform. These apps have full access to the UI and hardware of their respective platforms, which means there is complete flexibility for the developer and apps can be targeted to their respective platforms. However With Android and iOS apps both requiring different coding languages, this means you would develop an app for one platform, and then rewrite it to release it to another platform, which is a time consuming and costly process. Maintaining them is also more costly, as this requires updating multiple code bases. You can see why cross-platform development would seem an attractive alternative.

Mobile Web Apps

The first, and most limited type of cross-platform app is a mobile web app. These are basically websites, accessed via a URL like any other site, however they are made for mobile and the user can bookmark the URL to install them on their home screen to access like any other app. Many mobile web apps look similar to an app when accessed, or scale to fit the mobile browser’s dimensions. The main limitation with these is that you need an internet connection for them to load and they don’t use any of the phones native features. However if you are looking to develop a site with lots functionality and are thinking mobile first, then this is the way to go. Check out the financial times for a good example of a mobile web app done right – Financial Times

Hybrid Apps

A step closer to a native app, hybrid apps are web apps that are wrapped in an app. These look and feel like a native mobile app, and can access some of the hardware features of your device, but your user interface is still written in HTML/CSS and rendered by a web browser. This means that you can download the app normally via the App Store or Google Play, however the app will still rely on some webpages (webviews) to work.

Benefits are that they can be developed quickly using tools such as PhoneGap, and anyone who can write HTML, CSS, and even a small bit of JavaScript can develop an app this way. You would be surprised how many of your favourite apps are actually hybrid apps (Instragram for example!). However quality of hybrid apps can vary, as they cannot be extended to the native user-interface, so animations and enhancements have to be made to make the apps interact like a native app.

Many believe that these are the only types of cross-platform apps around, and that it is not possible to achieve a high quality cross-platform app that can effectively harness native device UI and hardware. Enter our specialty: The cross-platform native app!

Cross-Platform Native Apps

While hybrid app development tools (such as PhoneGap) and cross-platform native app tools (such as Appcelerator and Xamarin) both deliver cross-platform apps, that’s really where the similarities end.

Apps developed using Appcelerator are native apps that are written using JavaScript. Core app features that require the same experience across platforms can be reused, and platform specific features, API’s and User interfaces are specifically developed for each platform. It is not a “write once, run everywhere” approach, however much of the same code can be reused (around 60-90%).

So why is Appcelerator different from hybrid app tools:

  1. Appcelerator does not rely on webviews, unlike hybrid app tools like PhoneGap
  2. JavaScript written in Appcelerator framework is not cross-compiled into the respective native languages, but is evaluated in run time.
  3. Appcelerator allows developers to use the same native UI controls and animations as that of a native app, instead of replicating this through CSS or JavaScript toolkits.

The result is a platform that is able to access native device UI, features and hardware, providing apps with the user experience that anyone would expect of a single-platform native app.

While some believe that single-platform native apps are beyond compare, we believe there is a cross-platform solution for every situation. Appcelerator offers a solution that allows you to develop Android and iOS apps without having to learn multiple coding languages and waste resources by doubling up development and maintenance. Not only that but it provides apps with the user experience that would be expected of each of these platforms, including animations and behaviours.

At GearedApp we develop cross-platform apps as we have found that, using the Appcelerator platform, we can effectively half the time required to create and maintain apps, saving our clients money and freeing up more time for us to spend on producing great quality apps. For us this provides a cross-platform app development solution that cannot be rivaled.

Further Reading: