We regularly get asked about the differences between Titanium and other cross-platform development tools, especially those where you also develop using JavaScript.
Before we go through the differences, it’s worth mentioning that to be truly cross-platform, any development tool should do a few things really well:
- There should be a common language across all mobile platforms – ideally something that is already established and can be extended and added to using existing, published code samples. There wouldn’t be much point having a cross-platform solution that required you to code in three different languages!
- There should be built-in APIs to allow you to write the same code that works on multiple mobile platforms. Windows, buttons, labels, or opening the camera or photo gallery shouldn’t require you to write different code for each mobile platform. You should be able to write code to open the photo gallery once and the magic is handled by the cross-platform API. It should be perfectly possible to write an app for say iOS and Android that can share over 90% of the same code.
- Where you have to access the underlying mobile SDK or third-party libraries that may not be exposed by a built-in cross-platform API, you should be able to do that with native code. This can usually be achieved using native modules, which most cross-platform tools support – where you write modules in Objective-C, Swift or Java.
(With Titanium and Hyperloop, it’s possible to do this using JavaScript that can directly address the underlying SDK – there’s no need for any Objective-C, Swift or Java code. We have a few examples of this for iOS, Android and Windows Mobile in our Hyperloop example project.)
- A cross-platform solution, especially one that uses JavaScript, should obsfucate and encrypt your code out-of-the-box, making it difficult and virtually impossible for anyone to disassemble your app and access any protected or sensitive code.
- Whilst not absolutely necessary, some cross-platform tools offer accompanying back-end and MBaaS solutions with easy integration into the application development lifecycle. This could include push notifications, analytics, crash detection and reporting. It might also include an API builder and a database of some kind. In some cases – as is the case with the Axway AMPLIFY Platform, these services can offer additional functionality that can be useful for modern application development: file storage, user accounts, geolocation, social functionality, etc.
For this post, we’re focusing on cross-platform solutions that offer a native user experience, i.e. where the user interface is native, NOT web-based. We compare three JavaScript solutions and one C# solution.
(We realise that tools can change or documentation can be out-of-date, and we’d really like to keep this up-to-date and accurate. We ran this post past some React Native, NativeScript and Xamarin developers however if you spot anything you think is wrong or could be improved, please do let us know and we’ll review. When suggesting a correction, it would be great if you could provide any additional information i.e. links or supporting documentation. Thanks!)
Titanium & Hyperloop | React Native | NativeScript | Xamarin | |
---|---|---|---|---|
Launched | 2008 | 2015 (Created 2013) | 2014 | 2011 |
Created / Owned by | Axway Appcelerator | Telerik / Progress | Microsoft | |
Language | JavaScript | JavaScript | JavaScript | C# |
Development Platforms | macOS, Linux, Windows | macOS, Linux, Windows | macOS, Linux, Windows | macOS, Linux, Windows |
Target Platforms | iOS, Android, Windows Phone, Windows Desktop | iOS, Android, Windows Unified Platform1 | iOS, Android, Windows Phone11 | iOS, Android, Windows Phone, Windows Unified Platform |
Cross-platform API | Yes | Partial2 | Yes3 | Partial4 |
Native UI | Yes | Yes | Yes | Yes |
Entry Price | FREE | FREE | FREE | FREE |
IDE Support | Appcelerator Studio, Atom, Sublime, Visual Studio Code, Others | Xcode, Atom, Sublime, Visual Studio Code, Deco, Others | Atom, Sublime, Visual Studio Code, Others | Visual Studio, Xamarin Studio |
Debugging | Yes | Yes | Yes | Yes |
MBaaS companion | Axway Mobile Backend Services and API Builder | None5 | Yes10 | Microsoft Azure |
Primary Language | JavaScript | JavaScript | TypeScript / AngularJS / JavaScript | C# |
Direct Access to Platform SDK via JavaScript | Yes | No | Yes | n/a |
Direct Access to Platform SDK using Native Code | Objective-C Modules or JavaScript / Swift with Hyperloop, Java Modules | Objective-C / Swift | Objective-C / Swift | C# Only |
Built-in SQLite Support | Yes | No6 | No6 | No6 |
Built-in Code Encryption | Yes | No | Yes7 | n/a8 |
Live Reload | Yes | Yes | Yes | Yes |
Enterprise Support Available | Yes | No | Yes | Yes |
Community Support | Yes | Yes | Yes | Yes |
Components | Widgets, custom components, Native modules, JavaScript Modules | React Components, Native Modules, JavaScript Modules | NativeScript Plugins, JavaScript Modules | Xamarin Plugins |
Component Marketplace | Yes | No | Yes | Yes |
Mobile Analytics | Yes9 | No | No | Yes |
Crash Analytics | Yes9 | No | No | Yes |
Over-The-Air App Distribution | Yes9 | None | None | Yes |
1 Windows support is not there by default but can be can be added as a plugin.
2 React Native doesn’t claim to be write once, run everywhere so whilst it’s possible to share code between platforms, it doesn’t have the same built-in cross-platform API coverage as other cross-platform solutions.
3 NativeScript does include a cross-platform API where you can create Buttons, Views etc with a single command that works on multiple platforms, however the API does not have the coverage of some other cross-platform tools.
4 The Xamarin Forms framework allows sharing of UI / code across platforms.
5 “None” as in not bundled / built-in to the toolset – requires you to use a 3rd party solution.
6 SQLite database support is available as a downloadable plug-in.
7 NativeScript works with a third-party tool, Jscrambler to obfuscate JavaScript code.
8 Xamarin compiles to a binary that has no human-readable code.
9 As part of a paid Axway Appcelerator Platform account. The FREE Indie account gets 1 month analytics data retention for free.
10 Telerik are part of Progress, who also own Kinvey, an MBAAS solution.
11 Available as a download — see Nativescript runtime preview for Windows 10
Follow us on social