The idea of developing universal mobile apps came out in, what, 2008?
Here we are nine years later and we’re still riddled with “double.” Two major operating systems, two coding languages, double the effort and double the expense to build an app that caters to all users and devices.
Good news, everyone. There’s a proven shared codebase.
“But wait,” you might be thinking, “universal app development is riddled with bugs and complexity.”
And you would be right. Many attempts at a shared codebase have fallen short. But that was before.
Now there’s Xamarin (technically it’s been around since 2011 – but hit mainstream status in the past couple of years). Here’s what you need to know:
Xamarin uses a shared codebase in C#
Your app will perform natively
There are some drawbacks (it’s coding after all)
Developers are hard to find
Save time. Save money. Get to market faster.
You have questions. We’ve roused a team of Xamarin developers and service delivery folks to fill in the details.
Note: we’re going to look into the business and project implications of Xamarin development. If you want to learn more about the technical ins and outs of the platform as a dev, there are tons of resources.
What is Xamarin? It relies on a shared codebase in C# to develop mobile apps
C#? Wasn’t that what Windows 98 ran on?
Actually, C# is one of the most versatile programming languages. As a product of, yes, Microsoft, it’s what all windows applications run on.
Xamarin enables C# programmers to develop apps for Android, iOS, and Windows phones using native classes.
Experienced development teams love Xamarin. The access to native APIs, such as an XML layout and storyboard with iOS, simplifies the project. Developers have access to everything they would otherwise have when developing a native ID.
Xamarin also offers testing cloud support for those who purchase the service. It enables developers to test the app in over one thousand devices, including every iOS device, and almost every Android device. You can pinpoint any issue in specific devices, and develop a better product overall.
Then there’s Xamarin University; a comprehensive guide with online teachers, support, and everything needed for a team to become proficient.
Now to the business. Even if you know nothing of mobile app development…
…It saves time. It reduces the size of your team if you want to target multiple devices. And it saves costs.
What’s the difference between developing with Xamarin and developing native apps?
From a business decision perspective, not much (besides that whole time and cost saving thing we mentioned).
With Xamarin, you have access to native APIs and classes of both iOS and Android. You don’t lose functionality.
Whenever a system gets updated with new features, Xamarin also gets updated. Developers can take advantage of those new features and are able to keep up using a single programming language.
For companies who want to deploy multiple apps across devices, they will realize that, without Xamarin, they will need individual teams for iOS, for Android, and Windows devices.
What are the drawbacks?
There’s a catch or two. We’re going to show you how to overcome them.
Keep in mind that Xamarin is owned by Microsoft. With big-league support comes longevity. Many of the bugs and feature issues you might have read about in the past two years have already been resolved.
That being said, here are some of the negatives, and how you can handle them:
1. The code is not entirely shared
A shared codebase, eh? That must mean that a developer writes in C# and, poof, you get a 100% native app for all things mobile.
No, that would be sorcery. The percentage of shared code varies. Some say it’s 60%-70% while others estimate it’s up to 80%.
The missing chunk is mostly UI. Apps perform differently on iOS devices than they do on Android or Windows phones.
Xamarin works best if you plan on launching an app across multiple operating systems – obviously. But you will still have two or three projects.
I get how that may sound confusing.
Even though we use the term “shared code”, much of the UI is handled as separate projects. Think of it as a shared backend with two or three UI projects built on top. When the push dates arrive, you simply have to call up the bench of UI pros and push the apps out as if they were native.
Here’s a visual to help:
Here’s that visual again from a dev perspective:
2. Developer licenses are expensive…
…for boutique firms and freelancers. The cost of a Xamarin license is around $1000 per developer license. For mid to large software companies, it’s worth it. 4th Source has made those investments including Xamarin University training. And, combined with the hybrid nearshore model, those cost savings add up.
3. Developers are hard to find
Good developers are seemingly always hard to find, no matter the project. The same goes for Xamarin.
There are plenty of C# programmers out there.
There aren’t, however, a lot of C# programmers who understand a mobile language (Android uses Java and iOS uses Objective C). That’s where finding a Xamarin-capable partner gets tricky.
Mobile best practices are different from C# development.
Keeping up with all the skills and coding languages is a head-spinning ordeal. This is why we said experienced project teams love Xamarin – they have the C#-mobile people and the UI people. Experience matters. Your project team should be familiar with how different operating systems work, and how to build out UI across devices.
On to the good stuff. You'll save a solid chunk of time and money and get to market faster
Again (we can’t stress this enough) your project will need people to build the UI for each OS, and understand which classes to work with in those operating systems.
Most of the business logic carries over, and the extra 30% or so is UI and mobile-specific work.
It’s still much better than hiring entire separate teams to develop individual apps for iOS and Android
Think of Xamarin as cutting your resources by about a third while getting to market a lot faster, all with the same core team. Not too shabby.
Separate teams building the same thing can get messy.
Overall, is Xamarin worth it?
Yes, depending on your team.
Like any software project, the tool is as good as the person using it. Find the right people who can cite experience – AKA they’ve seen issues that arise in the course of development and can keep the project moving forward.
Your toughest challenge will be finding a balanced team of capable developers and UI specialists who are also adept at problem-solving.
Overall, we found the tool helps us develop mobile projects faster for less money without sacrificing quality, and we continue to use it at 4th Source. Learn how you can bring your next mobile project to light faster and see big-time cost savings with 4th Source's Xamarin services.
We're on a mission to talk about IT from the perspective of those in the know. Get relevant discussions delivered right to your inbox.