Why Xamarin is the new cross-platform heavy weight
As businesses look to reduce costs associated with cross-platform development and keep quality high, Xamarin is the oft-mentioned but little understood solution. So, what is Xamarin? How has the tool evolved? What are key capabilities? And what does the ROI look like for teams who decide to leverage it?
Xamarin’s impressive playbook
Xamarin first arrived on the scene in 2011, invented by the engineers who created Mono, Mono for Android and MonoTouch. Mono itself dates back to 2001 as an open source effort to allow applications built on .NET to run on the Linux operating system.
Since then, the company has raised over $82 million in funding, with $54 million in Series C financing. Investment firms included Floodgate, Ignition Partners, Lead Edge Capital, Insight Venture Partners and Charles River Ventures.
Now Xamarin operates as a member of the Microsoft portfolio. Since the acquisition, integration between both brands has become even more seamless. Earlier this month, Microsoft announced Xamarin will now be made available for every Visual Studio user. That’s big.
A new cross-platform heavy weight
For those asking, “What is Xamarin?” it’s not one thing, but many. The Xamarin suite includes several offerings designed for different stages of the development life cycle — from designing and building to testing. Here they are broken out by component:
Xamarin.Forms: API used to design an experience across the iOS, Android and Windows platforms leveraging native controls (Considered by many a cross-platform UI toolkit)
Xamarin.iOS & Xamarin.Android: Development environments used to build and deploy platform-specific C# code
Xamarin Test Cloud: As the name implies, a cloud-based application testing platform with the capability to test thousands of devices and automate mobile application testing
Xamarin Studio & Xamarin for Visual Studio: Integrated development environments where the C# code base is written
Actual vs. perceived cost savings developing with Xamarin
Xamarin has turned heads in the software community with claims of 90% possible code reuse in building iOS, Android and Windows apps. It’s true. But, realizing the maximum percentage is entirely dependent on the Xamarin offering/approach employed to develop the apps.
Apps can be developed using Xamarin.Forms and Xamarin.Android/Xamarin.iOS. To achieve 90% or higher code reuse, the apps must be built with Xamarin.Forms. Using this approach, the same UX, C# code base, business logic and .NET library can be used.
Developing native interfaces with Xamarin.Android/Xamarin.iOS still affords teams code reuse (we estimate 30%), because the same development language, business logic and portable class library are used. Though for cash-strapped or agile-minded organizations, the prospect of redeveloping 70% of an app to release it on a secondary platform is often less than ideal.
Comparing Xamarin.Forms and Xamarin.iOS/Xamarin.Android
- Can reuse 80–90% of the code
- Code is built in Xamarin Studio or Visual Studio
- Code applies and universally computes across iOS, Android and Windows mobile platforms
- Data transfer objects (DTOs), business logic and all user experience assets can be reused
- Built with C# and .NET framework
Limitations: Controls in Xamarin.Forms only support the functionality that is present on all three platforms — functionality is more limited compared to a standalone native app
Choose if: Code sharing and cost savings outweigh need for UI control
- Can reuse roughly 30% of the code
- Code is built in Xamarin.iOS or Xamarin.Android for Visual Studio
- Developers build multiple platform-specific experiences
- Only data transfer objects and business logic can be reused
- Built with platform-specific C# and .NET framework
Limitations: Code reuse and cost savings are limited compared to Xamarin.Forms
Choose if: UI and experience can’t be compromised, and there are many specialized experiences
Working with Xamarin.Forms requires a shift in approach and process for developers and designers. Cost savings starts with conceding the control native development affords. It starts with building the right team.
Building a Xamarin development team
There’s no “i” in team. But, there is a lot of money. Platform-specific development teams are expensive. Before Xamarin, building a cross-platform app, for example, required developers with Android, iOS and Windows experience.
Xamarin allows businesses to release an app across multiple platforms with decreased cost and leaner teams, albeit a comparatively deep C# knowledge pool .
The structure of your Xamarin development team will, in part, be determined by the Xamarin approach chosen.
Developing with Xamarin.Android/Xamarin.iOS: Teams choosing to customize the UX for each platform save some labor costs by limiting the development languages. Though, they are still developing the same type of team used to build a native app. Members with platform-specific expertise are needed to interpret the C# code, rebuild the UI, flow, layouts and apply it to any platform-specific APIs. The project continues to be bound by a “learning curve.”
Developing with Xamarin.Forms: Using Xamarin.Forms, the same developer would be able to build the experience for iOS, Android and Windows with the same C# code base — no adjustments required. Xamarin.Forms then abstracts that experience automatically. Choosing to build the experience in Xamarin.Forms could save as much as 2.5x cost savings.
Designing with Xamarin.Forms: Many designers are reticent to give up control or aren’t well-versed in the intricacies and limitations of Xamarin.Forms development. Before the experience of a solution can be elevated, teams must invest in understanding the technologies first. Appoint a cross-platform champion on your team or work with one.
What is Xamarin?
Especially for line-of-business apps, Xamarin development strikes a compromise between usability and affordability investment-wise enterprises would be remiss to ignore.
Click here to access all our free resources and to learn more about us!