June 6th, 2014
This year I was fortunate enough to be sent through Xamarin University by my employer. I made it through the course and will soon be taking the test for Xamarin Mobile Certification. I wanted to write down my thoughts about Xamarin, and more specifically Xamarin University while they were still fresh in my mind.
What is Xamarin & Xamarin University?
Xamarin is a set of libraries and tools which leverage Mono to make C# and .NET a multiplatform development language. There are packages to enable .NET development on Android, iOS, and Mac. Combined with Windows and Windows Phone that are already supported by Microsoft, it transforms .NET into a development environment which supports most of the major platforms.
Xamarin University is the official traning course provided by Xamarin to help developers learn to leverage their tools. It is an online course, with classes lasting about 2 months taking a class between one and three times per week.
What do you learn?
The courses focus on mobile development for iOS and Android. You are walked through creating a basic mobile app for both platforms, and given strategies and tips on subjects such as memory management, multi-platform development, and creating and references web services from your mobile app. Xamarin University is not designed for developers who plan on using Xamarin to create Mac applications — it is meant for mobile developers.
The classes are set up as a webinar. There is always one or two labs that you work through with the instructor to give you an overview of the topic at hand, and touch on the differences for that topic between the two platforms. Every instructor I had encouraged the class to ask questions throughout the class, and often there was time afterward for any other issues that came up while following along in the labs. The labs went smoothly, with the few problems I noticed being issues with how I had set up my development environment.
All labs are provided as class materials, with full Visual Studio solutions ready to compile and run so you can see the finished app, as well as versions with a few key lines of code removed, allowing you to easily follow along in the labs without writing the same boilerplate ode over and over again.
Any Tips for a Better Experience?
Take the beginning classes with as many different instructors as you can. Most of the beginning classes are teaching the basics and are easier to follow along than the later courses. Taking them with a number of different instructors lets you know which instructors you prefer and you can focus on taking their classes later on.
If you have questions, ask. I have never had an instructor ignore a question when I was in one of these courses. There were times when a question was out of scope or the instructor did not know the answer, but they were always willing to redirect to somewhere in the community where I could get the question answered.
You have access to the Xamarin University community. Take advantage of this. When you get lost or have an issue, there’s often someone else who has had it before, and has already written a guide on how you can resolve it.
Do your best to set up the dev environment before the first class. Xamarin provides a small app project you can compile to make sure you can compile and run apps in iOS and Android.
If you’re having trouble with the Visual Studio plugins, switch to Xamarin Studio. It opens the same standard .sln files and tends to provide a more stable experience. I had some issues with the debugger in Visual Studio, but everything worked perfectly once I switched.
As a .NET developer who has only very briefly dabbled in mobile development, Xamarin offered me the chance to quickly get caught up to speed without learning the details of a new programming languge. I had a basic Android app calling a web service and displaying the data built from scratch within a day, and a similar timeframe to build that same very basic functionality to iOS.
I am still learning a lot every time I fire up Xamarin Studio, and would not call myself an expert in the system yet, but it has made it easy for me to start mobile development, and made a good cross-platform experience for creating iOS and Android apps with a (partially) shared codebase.