- Microsoft announced the .NET framework.
- This cool dude, Miguel de Icaza, thought .NET rocked (pun relating to the excellent podcast, ".NET Rocks" fully intended), and began experimenting with creating a Linux version of .NET.
- Approximately one year after .NET came out, the Mono open source project spawned from Miguel's experimentation.
- There were some questionable years, where Mono's future was uncertain, but nevertheless, it persisted, and ultimately became Xamarin in 2011.
For the next 5 years, Xamarin was, in my opinion, prohibitively expensive. Back then the Windows Phone was still a thing (along side iOS and Android), and if you wanted to develop apps for all 3 major platforms it would cost you $1,000 per year, per platform, per developer. I was not a mobile developer at my job, so without a company paying for that huge license fee, I wasn't ready to cough up $3,000/year to tinker around in my spare time. My tinker-budget is substantially smaller than that.
Then... And I can't believe I'm saying this... Microsoft saved the day. In February, 2016, Microsoft acquired Xamarin, and promptly made it free for everyone. This is definitely not the same Microsoft it used to be, and the change I've seen over the past 5 years has been extremely positive.
I have always been a big fan of tools that enable cross-platform development, and here was a framework that was promising to enable me to use my favorite language, C#, and xaml for the UI, to build mobile apps for both iOS, Android, and other devices. Re-energized, I once more started trying to move my career into the mobile side of things, leaving my comfort-zone of the web and desktop development in the dust.
Fast-forward to the present day, and I am now using Xamarin to create mobile apps both at work and in my spare time, and I absolutely love it. It is still very young, and so there are frustrations you will run into, for sure. That being said, as a developer trying to create something new, you almost always hit some road-blocks here and again, even with frameworks that are quite a bit more mature.
To introduce you to Android/iOS development with Xamarin.Forms, I've created a small tutorial. In it, you will learn the basics of Xamarin.Forms, the MVVM design pattern, and dependency injection using Prism and the Unity inversion of control container.
- You can grab the tutorial on clarify-it.com
- A completed version of the tutorial is available on GitHub
If you run into any issues or questions, please feel free to ask about it in the comments. Let me know what you like and dislike, and if you have ideas of how I might make these tutorials more valuable to developers. I hope this will get you up and running with Xamarin.Forms, Prism, and Unity IoC.