Enquiry

Crossplatform Mobile Applications

Mobile Apps: Develop Native Apps or Use Cross Platform Tools?

Worldwide consumers and businesses are adopting smart phones at a rapid rate. Along with this there is a proliferation of mobile operating systems available on these smart phones. These mobile operating systems - including Android, BlackBerry, iOS, Symbian, webOS, and Windows Phone 8 - are evolving fast.

Native Development or Cross Platform Tools?

The problem is this: Developers need to make decisions on how to minimize the need to re-write separate code for each of these platforms as well as continue to maintain and evolve each of these code bases. With six major mobile platforms to cater to and increasing pressure to launch early to market, mobile application developers are making tough decisions on how they will work on mobile applications.

A wide variety of mobile platforms with significantly different firmware, capabilities, features and restrictions impose challenges to developing and distributing a solution across multiple mobile platforms. It is critical to exploit the unique capabilities of each device while maximizing software reuse and development efficiency. In most of the scenarios, enterprises end up developing separate versions for each targeted platform, which increases time-to market and maintenance overhead.

Cross Platform Tools:

To address such challenges, there are few cross platform development frameworks available which support "Write once and deploy anywhere" philosophy. Cross Platform application development provide great cost saving advantage by developing one application that run over multiple platforms such as iPhone, Android, Blackberry and others allows a single source development approach to deploy to Android and iPhone OS devices.

Five Cross Platform Mobile application development tools that are widely used in the industry are (from Mashable.com):

  • Rhomobile
  • Appcelerator
  • Widgetpad
  • Phonegap
  • MoSync

Cross platform applications developed using the tools listed above are not simple "mobile web browser” based applications. These applications are better than web browser based applications in the sense that these cross platform apps can use some native functionalities of the mobile OS/platform.

Cross Platform Development in a Nutshell:

With cross platform application development, you have to understand that you will be making compromises on the native look, feel and features of devices. This could be a problem if you are creating a 3D game or an interactive, multimedia, animated app.

Most of the cross platform mobile development tools use HTML, CSS, and JavaScript. They provide JavaScript APIs to access the native features of the device (GPS/Geolocation, Camera, Accelerometer, etc.). Some other cross platform tools are based on Ruby and Rails. These cross platform applications expose the smartphone features through a set of JavaScript APIs, while the application’s logic (html, CSS, JavaScript) runs inside a native WebView control. Through the JavaScript APIs, the “cross platform app” has access to many of the mobile phone functions such as Geolocation, Accelerometer, Camera, Contacts, Database, File system, etc. but not all. It is important to note that native applications have complete access to all device-specific functions but cross platform apps can access only limited number of device-specific functions.

Basically any function that the mobile phone SDK provides can be “bridged” to the JavaScript world. On the other hand, a normal web app that runs on the mobile web browser does not have access to most of these functions (security being the primary reason).

Some of the cross platform tool developers claim that their cross platform tools are written using HTML, CSS and JavaScript – they are compiled into native applications (dependent on the mobile device) and run on the device as standalone applications. These applications have a very powerful API for accessing mobile features such as GPS and Camera, on-device Databases and other awesome features.

It is important to understand that these cross platform applications cannot compile your html, CSS or JavaScript code into “native” code. They are packaged as resources to the executable bundle, much like an embedded image file. When the application runs, these resources are loaded into a UIWebView control and they then run there as JavaScript.

Known challenges with cross platform applications include:

  • Embedded browser widget is limited (no support for HTML5 cache manifest on iOS)
  • Testing on different devices, since code behaves differently on the device than on the simulator or Browser
  • No multithreading in JavaScript: Blocking UI when using synchronous AJAX calls
  • Calls to native code from JavaScript are asynchronous: Timing issues when doing real hybrid work
  • JavaScript still runs in case of errors
  • No JavaScript debugging in XCode
  • Touch animations / transitions of large screens cause flickering

Known challenges with Web-based applications include:

  • Easy deployment, but limited device access
  • One single programming language for different devices
  • Limited offline capabilities

Advantages of Native Mobile Applications over Cross-Platform apps:

Optimized User Experience - Mobile application users expect better performance, better usability, higher quality design and more functionality. Each app is going to have different objectives, and there are many ways in which a native app provide better and optimized user experience than cross platform applications.

Ease of Authentication - Authentication is one of those features that helps deliver a personalized experience to your users, but is also a hurdle. Mobile phones are considered personal and product managers and designers who were accustomed to thinking through use cases for multiple users on a family’s desktop computer are certainly glad not to have to tackle those problems on mobile phones. With the exception of transactional services and other applications for which security is a concern a native app can remove the authentication hurdle from your user’s path, and set up an optimized and more personal experience.

Personalization - On the personalization front there are also many opportunities to enhance the user experience. Setting preferences based on past usage trends helps make the experience more relevant upon the next visit while showing value to the user by overtly demonstrating personalization benefits through simplified interfaces and reducing steps to accomplish a task. This tailored experience will also help increase the app’s stickiness for content consumption and encourage repeat purchases for commerce-based experiences.

Higher Quality Images and Photo Galleries - Since users are downloading the app, and expect app updates to be standard ongoing maintenance - you also gain the opportunity to showcase your products through rich imagery. Ideally this is not something that happens with much frequency and it is important that with each update there is incremental value returned from the update.

After all, you are asking your users to work for you by updating the app and each one of your update requests will provide them a decision point to find value in the product and go forth with the update or to decide that there is not enough value (in which case they will remove you from their device).

Mobile Apps: Develop Native Apps or Use Cross Platform Tools?

In the end, there are as many reasons for developing natively as for using cross platform tools. Are you going to be developing for multiple platforms or one platform? When should you consider using cross platform tools? If you have started developing natively, when is it time to use cross platform tools? Over the years iLink Systems has developed a variety of mobile applications for a multiple platforms and even we don't always choose the same methodology. If you have questions about which method your company should use, please feel free to give us a call or email and we will help you decide.

Have a business inquiry? Fill the form here

BusinessEnquiry






CAPTCHA image
Enter the code shown above in the box below

Microsoft Gold Partner Award

iLink Expertise

Windows Phone 8
Platform: Windows Phone 8
Technologies: XAML


iPhone
Platform: iOS 7
Technologies:Cocoa, Bonjour, Xcode and interface builder

Android Phone
Platform: Andriod ADT
Technologies: Java/ Java ME


Blackberry
Platform: Blackberry
Technologies: Java/ Java ME


iPad
Platform: iOS 7
Technologies: Cocoa, Bonjour, Xcode and interface builder

Surface
Platform: Windows 8
Technology: XAML

Android Tablet
Platform: Andriod ADT
Technologies: Java/ Java ME


News