One of the main cruxes of converting an interesting idea into an application is deciding on what the target platform should be. Currently, iOS and Android are the main contenders for introducing a new app; both have advantages over others in certain areas.
However, there are now many more cross-platform mobile application development tools available. These help to reduce development time of applications by enabling applications developers to re-use code across multiple platforms, resulting in less room for error as the code is shared between multiple platforms, and a codebase which is more easily maintained and updated. The tools also provide a side by side comparison for consistency in design under one environment.
When it comes to stand-alone consumer apps that target the Play Store and App Store, we’d recommend that it’s best to choose one platform to approach first, as the potential user base is in the millions. Once established, then approach the others.
There are cases where simultaneous development and release across multiple platforms are a key part of products feature set; for example, apps that talk and integrate with specific hardware for additional functionality.
Read on to discover the Top 5 Tools for Cross Platform Mobile Development.
Native vs Cross Platform
First, though, it’s important to note that cross development tools come in mainly two flavours – native cross development and Hybrid cross development. Each has their own strengths and weaknesses:
Native versus Hybrid
|
Native |
Hybrid |
Shared Code |
Core Application Logic, Communications |
GUI, Core Application Logic, Communications |
Platform -specific Code |
Code: GUI and user interaction/experience |
Device and platform specific application flow and API calls |
Strengths |
Lower code reuse, higher performance and ability to interface with native libraries |
High code re-use, HTML/JS is a widely practised skill therefore, reduction in learning time. Useful for front end applications interfacing with back-end services which handle the majority of the application logic |
Weaknesses |
Larger development time over Hybrid; lower level programming skills required |
Interfacing with native technologies may not be supported (i.e. external devices, fingerprint scanners) |
Ok, so what are the top picks for cross-platform app development…?
Xamarin
Xamarin has become one of the leading solutions providers especially in the sector of native cross-platform application development. The tool allows developers to use a C# codebase to build Android, iOS, Mac and Windows apps. There is native API access across the supported operating systems and the ability to add “components” to an app for plug-in functionality such as; barcode scanning, in-app billing and a multitude of custom controls.
Xamarin provides a plethora of reference material, API documentation, example code and even boast a “Xamarin University” to help support developers using this tool to the fullest. Because of its prolific status within the development community, there is also a lot of components and custom controls getting developed.
Back in March Microsoft acquired Xamarin; as a result of this Xamarin became free to use with versions of Visual Studio. For non-subscribers, there are Visual Studio Community Edition and Xamarin Studio Community Edition for Windows/iOS respectively. Another paid service that Xamarin offers is their Test Cloud, Which is a 2,000 strong real device testing suit available through the cloud. Where users can set-up tests to automate and get comprehensive results which include performance statistics, screenshots for the steps taken and compare for regression testing.
Appcelerator
Appcelerator Titanium boasts the ability to make “native” mobile applications on iOS, Android and Windows Phone using one JavaScript Codebase. If there is any functionality where the native API is not exposed through the Titanium API set then the developer can make a “module” written in native code to expose this functionality. This makes this platform ideal for making apps that are close to native in performance, especially where the developers are well versed in JavaScript.
Though where the Titanium SDK and Alloy provide more than enough functionality to make a cross platform mobile application Appcelerator recently announced Hyperloop and it is this which vastly increases the ability to use this as a true cross-platform mobile development tool. Hyperloop exposes all native functionality for iOS and Apple, with planned support for Windows Phone in the future.
Like similar tools, Appcelerator provides analytics and third party components to implement 3rd party modules. For enterprise customers, there is also the option for using a virtual private cloud server for storing sensitive data.
Qt
The oldest cross-platform development tool on our list, it entered development in 1990 and has possibly the largest list of supported mediums, most notably Android, iOS, BlackBerry and windows, however also reaching mac OS, Linux, Sailfish, QNX and more.
The latest versions of Qt (5.6+) have added a great amount of mobile application support, adding in functionality for high DPI, navigation and themed UI. Since then more controls have been added to these styles which cover Material Design (Android), Universal Design (Microsoft) and Qt’s default style.
The main programming language required for developing with Qt is C++ though their UI Creation Kit (Quick) uses a more script based language called QML (Qt Modelling Language) and is akin to JavaScript. This means that designers can use the QML to mock up the UI and in parallel, the low-level engineers can use C++ to implement the application logic.
There are two current forms of Qt, open source and commercial. Each of them carries different licences that are applied to the generated application and this should be taken into consideration. The open source licences are LGPLV3, GPLV2 and GPLV3.
Adobe PhoneGap/ Apache Cordova
Adobe PhoneGap uses the open source project Apache Cordova as its engine and is one of the most popular, go-to, development environments for cross-platform web applications. Because it is open source, PhoneGap is free to use and boasts the ability to interface with other Adobe technologies as well as a large list of third party tools such as PayPal, Testing SDK’s, Analytics and Barcode decoders.
PhoneGap developers write applications as web apps. These leverage the WebKit installed on the target device using HTML, JavaScript and CSS as the language. This way, they trade performance and some level of native interfacing for portability and reusability.
PhoneGap also offers cloud services (PhoneGap Build) for building and distributing applications to the relevant app stores, removing the reliance for maintaining target native SDKs and to push systematic updates to target phones as part of the development cycle.
Sencha
Sencha, similar to PhoneGap makes use of HTML5 to achieve cross-device portability. Though they have many applications and tools available to developers, such as; Architect, Themer, and various IDE Plugins, their main offering for mobile applications development is Ext JS. Once the application has been built developers can use Sencha cmd or Cordova to use device specific API calls to achieve close to native functionality.
Sencha offers a library of prebuilt UI components and accompanying UI themes, with the ability to write custom modules to expose native functionality. They also have an automated test suite available which leverages the Jasmine framework for JavaScript. Standard licences start at a minimum of 5 developers and provide a good entry point however the premium licence contains some crucial development tools such as debugging and analytical data.
I am Software Director at ByteSnap Design.
1 Comment
Leave a Reply
Cancel reply
Leave a Reply
This site uses Akismet to reduce spam. Learn how your comment data is processed.
Sam
October 9, 2017 at 2:04 pm
Don’t you think that Xamarin is best of all? I would personally choose it to develop a native app.