06 September 2017 | Jack Fisher
When it comes to cross-platform app development there are several tools available that allow you to create one app for multiple devices using the same code. This greatly reduces the time that is required to write the code for the app, and means the developers don’t have to learn multiple languages to code for different mobile platforms – a win-win! In this piece, I will cover React Native, Titanium Appcelerator, and Xamarin. I will cover the pros and cons of each tool and discuss why I believe there is a clear winner.
Titanium Appcelerator
Titanium Appcelerator is a cross-platform development tool that allows for creation of apps on both Android and iOS. This tool uses JavaScript as the code, so it’s best suited for developers who are already experts in JavaScript. So, what’s good about Appcelerator? Firstly, it creates apps that have a close to native look and feel, so when you are using your app on Android or iOS, the app will feel similar to how it would if it was built natively. A native app uses code that is specific to each platform, which allows for the best overall user-experience with fluid motions and fast loading times. Appcelerator also allows for roughly 60% re-usage of code which means that at least 60% of the code used to create the iOS app can be used to create the Android app. This can be as much as 100% if non-native elements are used, such as a non-native user interface. However, if a non-native user interface is used then the app will not look and feel as good as its native counterpart. Appcelerator’s main shortcomings are that the apps will have a short delay on startup due to the loading of libraries. Animations are also noticeably laggy and apps are not as responsive when returning from the background. This is particularly true for Android apps and less apparent in iOS apps. These issues can be frustrating for a user and make the app feel less polished, certainly something to consider. Another downfall of Appcelerator is that there is a large licensing fee for deployed apps. In a commercial sense, this fee will often end up with the customer who is outsourcing the app development, not ideal. Overall Titanium Appcelerator is not a bad choice for cross-platform development, but it’s not without its issues.
React Native
React Native is another cross-platform tool that uses JavaScript as its code. Like Appcelerator, React Native is capable of deploying apps to both iOS and Android devices. React Native is owned by Facebook, it is an open-source tool and is used to build apps such as Facebook and Instagram. Apps created using React Native will look and feel like a truly native app, which is a great for the end-user. React-native has a code reuse that is even greater than Appcelerator, you can expect to reuse at least 75% of your code between platforms. This greatly reduces the time it takes to develop the apps which is an obvious win. The downsides to React Native are that it’s a relatively young piece of software, so although you will find plenty of help online, there is not as much expert support available as with some of the other tools available. Facebook also hasn’t made any long-term commitments to maintaining React Native for the future. There are no guarantees that they won’t pull the plug on the project or replace it with something entirely different. This puts the lifetime of your app into question. As a development agency, it would be extremely awkward having to explain to your clients that the apps you created for them are no longer supported. But that’s not the only reason you should be cautious of using React Native for commercial purposes. The tool has an awkward patent clause that adds a serious risk when using it commercially. The clause essentially means that if you file a lawsuit against Facebook for using your IP, or they file a lawsuit against you for using their IP, they have the right to take your app off the market. This puts the power in the hands of Facebook, using React Native puts you at their mercy. Due to this clause, most lawyers advise not to use React Native for commercial use.
Xamarin
Unlike the previously mentioned tools, Xamarin does not use JavaScript as the code for its cross-platform development. Instead, it uses C# which is usually less bug-prone than JavaScript. As well as iOS and Android, Xamarin is capable of developing for Android Wear, iOS Watch, Android TV, Mac, and Windows Universal App. This makes it an excellent tool for cross-platform development as all platforms are covered. Xamarin is owned by Microsoft which gives it excellent credibility, and ensures it will be around for the long-haul. The tool creates native apps with native controls and native performance, providing an excellent end-user experience that is fast, fluid, and intuitive. It also boasts exceptional code re-use capabilities, sometimes up to 100%. Unlike React Native, it has a commercially friendly licence under the MIT licence which ensures that there are no legal issues with using it commercially. Xamarin has raised more than $80 million in equity funding and is backed by a company whose business relies on providing a solid development platform. It is this reliability that made it an easy decision for Pogo Studio to use Xamarin as its cross-development tool. Factor in the Microsoft name which gives our clients piece of mind that we are using trustworthy technologies, Xamarin is suddenly a no brainer for us.
Conclusion
There are several options to explore for cross-platform app development. Although we have chosen Xamarin for our apps, the platform which for us is a clear winner, that doesn’t mean you should rule out the rest. If your development skills lie with JavaScript then Titanium Appcelerator or React Native should definitely be explored. If you are developing apps for commercial purposes we’d recommend you take caution with React Native due to the legal issues we mentioned. That means your best bet would be Appcelerator, which will do you well if you are willing to face the licensing fees. But if your development expertise is in C# then we couldn’t recommend Xamarin enough. It’s fast, reliable, and provides an excellent end-user experience. That’s why it’s the development tool of choice for Pogo Studio.