The Ups and Downs of Developing Apps with Xamarin
Xamarin is a complex cross-platform app development tool. Let's compare some of its features to other viable tools and approaches to mobile app development.
Modern app development is like a minefield, particularly for newcomers. It takes time and effort to learn a specific tool or framework and, in the end, it might become useless due to its specific restrictions, end of support and rigidity. Many experienced developers avoid even seemingly traditional mobile app development solutions because of the questionable longevity of these products. All because maintenance plays an important role in app stability and value.
This question becomes even more pressing when we’re talking about a company that wants to hire an independent contractor or take a developer in-house. Imagine hiring someone for a long-term contract only to find out that their skills are obsolete and you need to switch to another app development tool for your project? That would be devastating for your productivity and bottom line. The consequences may be even more severe when hiring freelance contractors. Once they deliver an app, they don’t have any obligation to revisit the contract. Your company might be unlucky to hire an uncommitted developer like that and then what? You either pay a lot more per hour for their services because no one knows their product better than they do. Or you hire someone with similar skills but pay for more hours, since they need time to get to know the app and its backend.
That’s why business owners have to pay particular attention to the tools that they’re looking to acquire. You don’t want to end up with a steam train in the age of maglevs. If we weight potential risk and reward situations, cross-platform app development tools are your way to go.
Why Going Cross-platform
They consolidate development efforts. These tools are robust and standardized enough to the point that you won’t have any issues with finding a substitute developer. They also provide a more streamlined workflow, as opposed to native app development - one developer can do iOS, Android and other apps while native development means that you’ll have to hire separate people to develop a separate app for each platform. The number of devs who have all the platform-specific skills and can provide a decent result is limited.
This is where Xamarin stands out. For one simple reason: Microsoft owns it. And unlike other products that were acquired by this software giant...*cough*Nokia*cough*, it has earned its place within the product ecosystem (partially because Microsoft used it to strengthen its software suit and so it wasn’t changed that cardinally). Let’s take a look at some of the various aspects of using Xamarin from a product owner’s perspective.
This article should help business owners decide whether Xamarin is something that works for them. You may end up thinking that Xamarin is not right for your business. It’s OK. With the existing line-up of app development solutions, you’re bound to find something that works specifically for your business.
Cross-Platform is Like Native
You have to keep in mind that native apps offer the best experience for their respective platform. But they’re also the most expensive to produce, as instead of making one app, you’ll need to create at least two - for Android and iOS. Cross-platform is the next best thing to a native app, as it interchanges or transforms elements found on various platforms. For example, Xamarin converts Java into C# to be able to control the backend of an Android app.
And this is where Xamarin stands out, compared to hybrid app development tools.
The performance of hybrid apps drop occurs because hybrid development tools use a standard toolkit to mimic functionality and UI of native apps, which makes their code messier and more complicated, leading to performance issues. At the same time, Xamarin transforms native code into its programming language to unify the system, generally leaving fewer performance gaps.
This notable difference is also a disadvantage due to the underlying principles of how hybrid and cross-platform applications work. Here’s a simple illustration.
In Layman’s terms, hybrid development process creates code that works in a browser (web app), inserts that code into a simplified version a browser and then inserts the said browser into a smartphone app. It’s essentially a browser window running in an app native to that system. As you can imagine, all of these additional steps, needed for a hybrid app to run, make it much more complicated and far less productive. To top it all, this extra layer makes API integration far more complex and in some cases borderline impossible.
With all of its advantages, Xamarin has its downsides, which are obvious given that cross-platform development tools are much more complicated than hybrid development frameworks.
Let’s take a look at more notable differences between native apps, hybrid apps and those developed with Xamarin.
User Interface & User Experience
How easily can you customize or create convenient and usable interfaces for users? In the end, if a customer can’t use the app then all of the other benefits of a particular tool are negligible.
- Xamarin: a very flexible selection of UX and UI tools, which makes apps developed with Xamarin practically identical to natively developed ones
- Hybrid: offers a limited selection of customization options, some requiring installation of additional plugins and tools to make them work
- Native: interfaces are dictated by the native environment and its requirements and standards
How quickly can you create and launch an app? This could be crucial if you have a tight deadline or simply don’t have the resources to drag out the project.
- Xamarin: relatively quick, platform-specific customization might take additional time
- Hybrid: very fast, due to the limited capabilities of some of these platforms. That’s why hybrid development tools are often used for POC app development
- Native: relatively quick, but given that you’ll need to create separate apps for each one of the platforms, the development and its coordination are going to take a lot more time
- Skills required to develop with Xamarin: C#, .NET, XML, iOS, Android
With these requirements, a Xamarin developer will request a much higher quote, because of all the expertise that they have to acquire. And if you’re looking to re-profile a C# developer, like we suggested earlier in this article, you might be in for a surprise. Even though Xamarin is a cross-platform tool, it’s still an adaptation, a layer on top of a native app that’s there to make the integration as smooth as possible. So it is about making a lot of things from different worlds work together.
Experienced C# developers are running into various sorts of issues when trying to learn and work with Xamarin. Some native libraries might take time to integrate, sometimes the interface crashes because of all the various dependencies. As Owen Ransen, an experienced C# developer who started using Xamarin, has said:
“Once when I tried to open the layout of the screen I got an "Incorrect parameter" message box. Ok. Tried again and it worked. It feels like lots of complex, delicate and not bug free stuff is running around behind the scenes. Nervous-making.”
However, he still prefers this product over anything else, because it’s robust and nothing that’s out on the market works better, at least for his app development needs.
Not for Everybody
Xamarin is definitely inaccessible for many companies, especially for SMBs. Xamarin in itself is expensive, as we previously covered. Hiring a Xamarin developer might be an issue because of their scarcity. We’re not talking about an assortment of developers from around the world who offer ‘competitive prices’. Because if you’re going for a freelancer from Upwork or other similar site, you’re usually getting what you pay for.
That’s why we think that enterprise app development is where Xamarin shines. First of all, bigger companies do have the budget to cover the cost of the Xamarin suit. Secondly, these same companies might have people with necessary skills to develop using Xamarin. Or they might even have a budget for Xamarin developer.
But the biggest power of combining Xamarin with enterprise solutions is UI. There’s a lot of work involved in developing interfaces specific to various operating systems. A customer-facing application heavily relies on the quality of UI, as the competition is fierce. If people find it hard to use, they’ll just uninstall it and ask for a refund.
With enterprise solutions, a single UI is a must. If you want your organization to work coherently within the same system, you absolutely have to build a single UI experience. Think POS systems and other unified access points. Xamarin re-uses code for all of the app’s variations and if you pair that up with reusable UI elements, you will have a powerful enterprise app deployment tool. In skilled hands it allows you to relatively quickly and effortlessly create powerful enterprise solutions that can be easily supported.
Additionally, with the Xamarin Test Cloud your enterprise gets an opportunity to quickly test all of these apps using thousands of devices available via cloud to accelerate your app development to the levels of efficiency unseen before.
Its incredible reporting system allows you to easily find the exact bottlenecks and deploy fixes in the shortest amount of time. This kind of functionality offers flexibility that some companies are struggling to reach. If you have hundreds of employees who might all be using different devices or even just different versions of an operating system, you should definitely explore the power of the Xamarin Test Cloud.
Xamarin is one of the most powerful app development suits available today. There’s no debate about this fact. However, given the complexity of tasks that potential users of Xamarin are facing, it’s not always clear whether Xamarin is the right tool. Some organizations may struggle to have the right talent. Other companies don’t have the budget to afford the full suite.
That’s why before committing to Xamarin make sure that you, your organization and most importantly, your engineers are ready to embark on this journey. Xamarin offers multi-platform functionality that some of the hybrid app development tools simply can’t match, because it uses a proprietary method that transforms any of the native languages into the mix of programming tools within Xamarin, with C# at its core. Hybrid apps simply show you an app within a frame on your device and use different methods to connect this frame to platform-specific APIs to make it work. This is less elegant and results in a slower startup time for hybrid apps, as well as decreased productivity compared to Xamarin and other cross-platform tools.
Hybrid apps have their advantages, one of which being the universal nature of programming tools used. This allows for faster deployment and experimentation. So if you’re thinking of testing a app concept using something like PhoneGap as a POC tool, and then transferring the app to something like Xamarin, it might be a very sound development strategy.
With all of its advantages and disadvantages, Xamarin remains one of the top contenders for companies looking to create a multi-platform experience for their employees and customers. You have to make sure that all of your technical requirements are properly spelled out, though. Then you can start exploring available development options. Be sure to consult your engineers, specifically people who work with the backend of your product, to find out if Xamarin would actually work for your organization. Give them time to properly research available integrations and tools. It’s always better to test the platform before actually committing to it. Don’t take this lightly, as more and more people switch to their mobile devices as primary productivity tools.
WANT TO START A PROJECT?