When those sudden moments of genius strike, you could be onto the next big thing – the new Angry Birds or Snapchat might be around the corner. But the main practicality in converting an interesting idea into an application is deciding on your platform of choice.
Currently, iOS and Android are the main contenders for introducing a new app; both have advantages and disadvantages in certain areas, which can be a minefield for the new market entrant.
However, help is at hand in the shape of cross platform mobile development tools, which have become increasingly sophisticated of late as demand has risen. These help to reduce the development time of applications by enabling developers to re-use code across multiple platforms, resulting in less room for error as the same code is shared between multiple platforms, and also generating a codebase which is more easily maintained and updated. The tools can provide a side by side comparison which helps to maintain design consistency throughout each environment.
When it comes to stand alone consumer apps that target the Play Store and App Store, we at ByteSnap recommend that it’s best to choose one core platform to deliver on first, as the potential user base is in the multi-millions. Once established, then approaching alternative platforms with the learnings from the first is considerably easier.
However, there are cases where simultaneous development and release across multiple platforms are a key part of products feature set – such as apps that ‘talk’ and integrate with specific hardware for additional functionality. This could encompass IoT products or particularly ‘hot’ new hardware, for example.
Native vs cross platform?
It is 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, but if you’re in any doubt, our software consultants at ByteSnap Design are expert in cross platform mobile development and are well placed to assist.
Once you’ve made your choice between native and hybrid cross platform app development, you’ll be needing one of these tools for cross platform mobile development:
Xamarin
Xamarin has become one of the leading solutions providers in the native cross platform application development market. 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 also the ability to add “components” to an app for plugin 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 – and the vibrant development community means there are also a lot of new components and custom controls being developed.
After Microsoft acquired Xamarin it became free to use with versions of Visual Studio. The Xamarin Test Cloud is worthy of mention; a 2,000-strong real device testing suite in the cloud where users can setup tests and get comprehensive results including performance statistics, screenshots for the steps taken and compare for regression testing.
Appcelarator
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 creating apps that are close to native in performance, especially where the developers are well versed in JavaScript.
Appcelerator recently announced Hyperloop – which vastly increases the power of this as a true cross platform mobile development tool, as 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, Qt had its initial release in 1990. It 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+) include 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.
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.
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 it has many applications and tools available to developers, such as; Architect, Themer, and various IDE Plugins, the 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.
Graeme Wintle, director, ByteSnap Design
Image Credit: Nito / Shutterstock