What do you gain going from Android to Xamarin.Android?

Hi everyone,

I’m betting many of you are asking about the benefits of going from Android to Xamarin.Android. In order to get here, the first question I’m almost always going to ask would be “why”?

The next question to ask is “is the project ‘new'”? In terms of “new”, this could be whether it’s new new, or this is scrapping the old codebase that there was once before, which is still being used, but replacing it with something that is to the point of a shareable workspace.

Because a couple of years before, it used to be that in order to use Xamarin alone, there was a fee. Therefore, it made more sense to just develop in a couple of platforms (mainly iOS and Android) because although iOS has always been $99 annually for renewing the developer’s license, in either case it was better to use the specific IDE that the device’s apps to build were designed for. For performance, this made the most sense. The drawback was that in business logic, there would be some that would have to be written twice both in Objective-C/Swift and Java/Kotlin.

Having said that however, Xamarin one of these days decided to become free. Therefore, in using Xamarin, the business logic can be written once and then run everywhere. The team doesn’t have to be as big either. Also, object-oriented programming principles still apply, along with learning curves of functional programming (but for old-timers, this isn’t a big deal). If you’re a learner, this is a big gain.

Let’s say that there’s a team of at least 3 in Android alone. This means having to split the cost for each person’s time, so then each developer will do certain tasks for the app alone. Copy this idea within iOS and now you have at least 6 people, which can get quite expensive fast. This is one reason why some startups don’t survive.

The next question to ask is whether or not the same app for both iOS and Android will have the same types of functionality, and also the formatting. It’s highly unlikely that the apps will have very different functionality, but if there is, then Xamarin will not be the ideal choice. But again, this is going to cost more for the logic, the backend development, and the mess that will be created. Therefore, I’d call this a loss, so the smarter choices will give better results.

Using Xamarin, one person can work on one platform. Then with any changes needed in shared code, multiple people can work on them. This makes the team smaller, and each person will learn about the different platforms of how they function. Questions will have to be asked. This is another gain for each developer using Xamarin.

Then, if the timing of design and development is done right, then the productivity should be a lot faster. This is for the company’s gain, but it also means your iterations will also look fast as well.

Finally, you’ll be sure that you’ll learn about your platform very well almost independently, and without having to rely on others. The only thing to rely on is Xamarin and its libraries that get maintained quite often.

But if you are just doing Android at this current time, I’d recommend trying Xamarin.Android for about 2 months and see how you like it.

Until next time!

Brian.