As a business owner you have a lot of decisions to make. And most of those are focused on running a business rather than developing a mobile app. That is something you want to leave to the developers you hire.
And great developers will advise you on the right tech stack and tools for your project (at least at Alty we always strive to do so).
But you’ll still need to operate the basic lingo to communicate your goals correctly.
In this guide we want to touch down on native and hybrid app development using the Xamarin platform.
Understanding the Difference Between a Native and a Hybrid App
Let’s go straight to the point here:
Native App: There are two smartphone operating systems – iOS and Android. When an app is developed for the operating system of the specific phone, it is said to be “native.” Developers are using respective UI and UX design elements for each platform and take advantage of the gadget’s unique features e.g. GPS, camera etc.
Hybrid Apps are websites that are “wrapped” into native systems. A developer will use a hybrid app tool for cross platform mobile app development with some modifications for iOS and Android. The app is really powered by your website.
For more detail, check out our previous post on the differences between the two.
So, why would you choose a hybrid over a native app?
There are a few reasons you might do this:
- Hybrid apps are cheaper to build.
- Hybrid apps are usually a bit faster, as long as you opt for either an iOS or an Android app.
- Hybrid apps can be used as a sort of “test” to see if users are interested in them, with an eye to develop native apps down the road.
Using Xamarin For Mobile App Development
Apart from hybrid and native app development, there is the third option – cross platform app development. It assumes writing a single codebase for mobile apps, which would be eventually used on different mobile OS.
And Xamarin is one of the most popular tools for that.
Xamarin lets developers write application using C# language as it enables the usage of a single codebase to be used across multiple device platforms. This programming language is quite similar to Java, meaning that your team already may have a strong understanding of how to build apps with it, especially if they have previously dealt with Android app development. The company also notes that developers using C# can code the same functionality as when using Objective-C and Swift.
So, in a nutshell Xamarin reduces the time on writing the code and allows smart repurposing. Developers no longer need to write two different codebases in two different languages to simultaneously deploy an iOS and Android app.
Now, let’s take a closer look on the pros and cons of using Xamarin for app development.While some of the explanation may be a bit technical, bear with us. We will specifically point out what they mean for your app and for your users’ experiences.
The Pros of Xamarin
As already mentioned Xamarin allows “sharing 96% of code”. Meaning developers don’t need to waste time on duplicating and adapting the same code for another OS.
Xamarin ports both Android (Java) and iOS (Swift/Objective C) to C# and developers can use those libraries to write the code. Xamarin also works directly with all the latest SDKs for different platforms, and allows you to use specific APIs for iOS and Android, meaning that the app will have pretty much the same functionality as a native one. Also, developers don’t need to switch between different development environments when building two apps.
So the project is delivered faster and you are billed for fewer hours.
Xamarin supports app testing on over 2,000 devices. Developers can subscribe to the Test Recorder tool, and then get a report of all the bugs and other issues. Again, that reduces the troubleshooting time and makes the developer’s work easier.
Yet, the testing feature comes with a hefty price tag – a cost that will most likely be passed on to you, the client.
Unlike standard hybrid app development tools, Xamarin does allow using the native UI controllers and create apps that “fit” the standard design guidelines on different platforms. That is a major benefit from the user’s perspective.
The Cons of Developing Apps with Xamarin
There are definitely drawbacks to Xamarin, which business owners (and the developers they hire) should consider.
A major point of using a hybrid or a cross development platform is to reduce costs of building an app. While Xamarin has a community level software tool at no cost, it is pretty useless for developers who need good functionality on all devices and who have to add any complexity to the app’s UI.
The business subscription for Xamarin licensing is right at $1000 per developer, per device and platform. If a developer plans to create only one app, this is pretty pricey.
Now consider this: a development team of 5 engineers, each of whom are building apps for both iOS and Android, could easily cost $10,000 a year ($2,000 for each engineer).
When your app is delivered, your developer will walk you through all of its function. If issues or problems occur after that, you ping the developer who then contacts Xamarin support. Here’s the rub: While same day support is promised, this is not always the case.
And user experience suffers when there are issues, and revenue loss is a real potential. In fact, a recent survey of app users outlined the common user reactions to app troubles:
Limited Access to Open-Source Libraries
Development of native apps involves wide-ranging use of open source technologies. Xamarin forces developers to use only those components, which the platform provides, along with some of the .net resources. While the library is extensive, it still is not a match for the resources that native app developers have at their disposal. As a result, your app may be limited in terms of custom functionality.
Small Community of Users
Developers rely on each other when app performance issues pop up. Unfortunately, only a fraction of app developers are using Xamarin. If your app has an issue that your developer cannot figure out, there are far fewer people he can go to for help. This delay the “fix,” and you are the one who suffers.
To Sum It All Up
There are definite limitations that you should understand before you choose cross platform development with Xamarin over a native app development.
If you need to build an enterprise mobile solution for internal usage, Xamarin is a great fit. It will allow to quickly transform your web app into a powerful mobile solution. Plus, deploying it would be fast indeed as in most cases the core product logic can be easily shared across the platforms and the customization will take little time. Standard UI elements and supported APIs will be also sufficient to power up your product.
Yet, building customer-facing apps using Xamarin may not be such a great idea. If you want to deploy an app with heavy UI elements and unique, platform-specific functionality (e.g. supporting Apple Touch), the amount of shared code will drastically reduce. Hence, using Xamarin in that case will neither cut down the development timeline, nor reduce the development costs that much.
Xamarin may be appropriate for startup purposes or for the development of an MVP. But ultimately native apps will be the better permanent solution in the long run.
If you are ready to explore a native app platform, contact the team at Alty. We are happy to analyze your need and propose the best solution.