An article by Gonzalo Martin, Sr. Developer for GlobalLogic Mobile.

I want to share with you my experience of changing from one world to another one. Actually, I didn’t change, I’m living in two parallels worlds…

I started working as an Android developer 5 years ago. I may say I was in several projects and I’ve learned a lot of things about Android and its ecosystem. I had heard about Xamarin but I was never interested in it.

1. First impact: Knowing C# world

My first step in Xamarin ecosystem was learning about C#. Coming from Java, the change was not heavy. C# and Java have similar sentences and modifiers. C# has dynamic variables and it does the change with a sweet view 🙂

java-c_sharp-comparision

2. Visual Studio vs Android Studio

Android Studio has a lot of comfortable features, shortcuts for developers that I used daily. Of course, each IDE’s have a lot of shortcuts to simplify the work and access to specific place or tool. But, I come from the old school of Eclipse and its friends 🙂 I used Eclipse to develop Android apps and I was very happy with that. Then, Android Studio came up and it took me a while to understand the new features and shortcuts.

By the way, I have to confess one thing: several times, I changed the shortcuts to Eclipse mode in Android Studio!

At this point, the IDE’s change shouldn’t be a blocker or something like that: if you are a developer, you are able to work with everything and everywhere 🙂

So, to develop in Xamarin, you need Visual Studio as IDE. Windows users must have patience installing it for the first time. It takes several time download a lot of unknown things. But finally, it finalizes 😀

The layout designer is similar to Android Studio (in fact, the layout code is XML), I didn’t have a problem adjusting to that.

Maybe, the main question about a IDE is its performance. Well, Visual Studio has some problems building projects (at least on version 2015). Of course, it depends on how fast your computer is, but despite that they aren’t much better than Android Studio. My experience is not bad, but I had to find “alternative” ways to solve some building problems.

Besides that, you can work on both Windows and Mac using Visual Studio 2017 in the same way. That’s good 🙂

3. Xamarin.Android: it’s very similar to Android, isn’t it?

If you have told me that Xamarin.Android is almost equal to Android, I would have said “No, that is impossible!” Well, I had a similar experience like that. After my first month playing with Xamarin.Android, I said: “Hey, it isn’t bad”.

The main thing is that Xamarin.Android has similar features like Android. In fact, their components are called in the same way.

A .NET developer has a chance to start in Android world without Java knowledgement.

Just know the Android management is enough. And Xamarin knows it. For that reason, Xamarin University has a lot of resources to learn about mobile world (included Android).

So, if this is your first approach to Xamarin, I would recommend you review that material before starting with everything else.

One other thing to mention is that there is no Gradle/Maven dependencies here. Xamarin.Android uses NuGet as a dependency manager (like Xamarin). You can find there are lot of components to add to your project in order to improve the accessibility or management of specific workflows.

4. Xamarin receives regular updates

Yes, every month Xamarin team offers updates to improve the whole framework and resolve some reported bug. Xamarin.Android, Xamarin.Mac, Xamarin.iOS, Xamarin.Forms and Xamarin.VS are updated regularly.

There is a strong community on forums.xamarin and almost everything related to Xamarin is there.

Also, if you are interested in alpha/beta releases, you can review release.xamarin to keep updated to the latest releases.

5. Looking to the future

As a mobile developer you may grow up knowing different technologies to use. Well, Xamarin is the best cross-platform solution to take. You’ve heard other frameworks using JavaScript language to develop mobile things. I’m not against them, but Xamarin does not move away from mobile concepts. You don’t need strong skills to start.

The main future goal for Xamarin is to develop an entire application for every operative system. They are making progress on Windows, Mac and Linux. Keep in mind, currently it is not possible. To develop an iOS app you can use Windows, but with a paired Mac. Last days, Xamarin Live Player was released and that is the first step 🙂

Conclusion

If you already are a Xamarin developer and you have any suggestions, please feel free to contribute! Same way, if you aren’t a Xamarin developer but you are interested in, feel free to ask anything. Everyone started asking everything 🙂

Resources