There are plenty of contenders in the battle for supremacy in cross-platform app development, but if you’re planning to build mobile enterprise apps and want to give users that native experience, your choices become a little more limited.
Essentially, you will need to work with Xamarin or a Xamarin alternative such as Embarcadero FireMonkey, Appcelerator Titanium, or React Native.
However, there is a reason why software providers like Xamarin development company Iflexion stake their reputations on the Microsoft-owned platform. They simply believe there’s no better tool out there at the moment for building enterprise apps that perform well on any mobile operating system.
Does Any Xamarin Alternative Measure Up?
The folks at Microsoft know a good software solution when they see it, and since they acquired Xamarin in 2016, they made it possible for many more developers to experience its benefits by packaging it free of charge with Visual Studio.
This is important, because if Xamarin has ever had any drawbacks, it was its high price. While this didn’t stop Xamarin from earning around 15,000 enterprise customers by the time the deal was struck with Microsoft (according to data from Market Realist), the price was prohibitive to small-scale developers and companies on restricted budgets.
Image Source: Xamarin Presentation
Now that Xamarin has become more affordable, it seems there’s nothing to stop the platform from dominating the market in cross-platform development tools—or is there? There are other solutions and indeed, some development companies have opted to create native mobile enterprise apps using a Xamarin alternative such as Titanium.
Are there benefits to choosing a Xamarin alternative and if so, what are they? Can any Xamarin alternative come close in terms of performance, quality and ease of use? Let’s take a brief look at Xamarin’s closest competitors and see how they compare against the best and worst aspects of Xamarin itself.
Write Once, Reuse 70% of Code
Xamarin’s most important strength lies in the way it allows developers to use a single language (C#) to code the core logic of an app, which can then be ported to all major operating systems. This ability to reuse code saves a lot of time, making for a shorter overall development cycle.
Xamarin integrates user interfaces using a separate development component called Xamarin.Forms. When combined with the sharing of core logic, this enables more than two thirds of code to be reused across platforms, resulting in an almost perfect WORA solution for creating enterprise apps.
That percentage of code-reuse is not just a Xamarin marketing claim. It’s a figure cited by many app development experts, like Microsoft Regional Director Adam Cogan, who wrote a piece on his blog outlining a development project in which an incredible 96% of source code was reused.
Can a Xamarin Alternative Offer This Much Code Reuse?
To be able to share the bulk of source code (both for core logic and UI) when creating an app for iOS, Android, and Windows is nothing less than impressive. But can the 60% to 70% reuse achievable with Xamarin be beaten by any of the other “native” cross-platform development tools?
In summary then, all the alternative platforms mentioned in this article enable a fairly high degree of code reusability, but none has matched the 96% achieved with Xamarin.Forms by Adam Cogan—if his article’s claim is to be believed.
Cross-platform UI Design
The release of Xamarin.Forms bridged the gap in the capabilities of earlier Xamarin versions, making it easy to create native user interfaces for multiple mobile operating systems. Prior to that improvement, it might have been easier for alternative cross-platform solutions to hold a candle to Xamarin in this aspect of app development.
Image Source: Appcelerator – Titanium 5.2.0 Sample App
FireMonkey takes a different approach to UI design, by drawing all controls with a graphics API instead of calling the native APIs for individual controls. The result, whilst potentially very good-looking, has less of a native look and feel than that achieved with Xamarin.
Support for Application Testing
Xamarin excels in supporting developers all the way through the app testing and debugging process. Not only do the Xamarin Studio and Visual Studio tools make it easy to identify and fix unexpected app behavior, but after testing your apps using emulators you can set up automated testing on real mobile devices via the Xamarin Test Cloud.
Combined with the excellent Xamarin Insights—a real-time app monitoring facility, these capabilities make Xamarin a hard act to follow. In fact, no Xamarin alternative can meet this high standard of application quality management.
Appcelerator Titanium does provide automated testing through a partnership with SOASTA, but React Native and FireMonkey have no such integrated testing solutions, although of course they both have some testing functionality built into the development software.
App Performance and Resource Demands
Thus far we’ve concentrated on comparisons with the best aspects of Xamarin, but like all software, it has its drawbacks too. The weaknesses of Xamarin (as claimed by critics) tend to relate to the performance of apps created with the platform. It’s claimed that the extra software overhead required by Xamarin results in heavier apps that can be slow to download and start.
While this may be true to a degree, the overall app performance at least on iOS is considerably faster than apps created using many other development tools.However, app launch times are in the main, slightly slower for apps created with Xamarin than those developed using Titanium.
In terms of app size, Xamarin and Titanium apps are generally similar for Android devices, but the similarity ends when developing apps for iOS, as Titanium apps require significantly more real estate on Apple devices.
Xamarin Alternatives: Close Maybe – But No Cigar
To sum it up, each of the most likely Xamarin alternatives (for enterprise app development) performs as well if not better than Xamarin itself in some aspects. However, when all key factors are taken into consideration, none of the alternatives can currently be considered a true match for Xamarin, or even come a close second.
This fact is borne out by the research conducted for the 2015 Cross Platform Tools Report, which as highlighted by VisionMobile, places Xamarin as one of the top three ranked tools. Xamarin is placed second after PhoneGap (which is a hybrid rather than native development platform) and in front of the third-ranked Unity, a solution for developing games rather than functional enterprise apps.
Appcelerator Titanium takes the sixth position, and the report describes React Native as an up-and-coming challenger. In fact, neither React Native nor FireMonkey even get in the top ten. While these rankings may have changed somewhat since 2015, it’s reasonable to assume that for mobile enterprise app development, Xamarin is still far and away the best native cross-platform solution available.
C# Skills Are Essential for Xamarin
Image Source: Stackify – The Hottest, Most Sought-After Programming Languages for 2017
Of course, a brief article like this can only scratch the surface in comparing the pros and cons of Xamarin’s alternative solutions. Your company’s needs and preferences will depend on many factors, including your mobile OS priorities and access to development resources.
If you won’t be developing your mobile apps internally, you’ll need to find a development company that works with the tool you prefer. The one thing that’s certain is if you choose Xamarin, you’ll find plenty of developers who have dedicated the last few years to perfecting their expertise in this immensely popular and capable enterprise-app development suite.
Why Would You Choose a Xamarin Alternative?
We always like to know what our readers think about topics covered in this blog, so as usual: here are a few questions we hope will prompt you to comment on this article.
Given the solid reputation and popularity of Xamarin, is there really any reason to choose a different development solution for your enterprise apps? What considerations would matter most to you and your organization in selecting a cross-platform tool?
If you’re already involved with Xamarin development, what do you like most about it? If you chose a Xamarin alternative, do you feel it was the right way to go, or do you regret the decision?
Whatever your position, we’re keen to hear your thoughts on Xamarin and the alternatives, so please don’t hold back—get involved in the discussion by leaving a comment or two below.