How Xamarin came along and blew my mind
Ever wondered how I got into Xamarin? Here's my story!
How Xamarin Came Along And Blew My Mind
In my last post that you can read here, I promised to write an article on Xamarin and how it came into my life, so here it is!
I know it has been a while since I posted that article so I am sorry it has taken me so long but I have been quite busy. One of those things keeping me busy is a new user group I started, Manchester Xamarin User Group. We already have lots of great members and had our first meeting which went really well. If you are able to attend meetings, we would love to have you!
This article is going to be written in a Q&A style as I often get asked these questions and it will allow me to cover my points in subsections.
To be honest, I didn’t know it existed until September 2014. I had done some mobile development at University (the reason I purchased an iMac in fact) for both iOS and Android and I loved that I could have something I made live in a device that rarely spends more than a few minutes at a time more than 2m away from me. But I did native development (Objective-C and Java) rather than Xamarin, and Windows Phone wasn’t even considered.
In September 2014 I started as a Software Development Graduate at Fujitsu in the Application team. My first project was to take a short-list of Cross-Platform Mobile Development tools (Xamarin, PhoneGap, Titanium and Cordova) and work with a colleague to evaluate them against a scoring matrix so a global standard could be agreed. Long story short, Xamarin won.
I was lucky enough that I got to be the one to do the evaluating of Xamarin. For those interested, the plan we followed was to try and recreate some of the features of an already existing native Android internal mobile app so we had consistent aims for all tools under consideration.
The first time I used Xamarin I had a lightbulb moment in my head, I believe the thought went something along the lines of “Oh my God! I can use C#, and that code will work on them all, without major changes?!”.
Imposter Syndrome is an issue amongst most developers. It can be briefly described as the idea that you are somehow an imposter, a fraud; that you have somehow managed to convince others around you including your boss that you belong there when really you don’t.
I could write a whole post on Imposter Syndrome alone however, so I won’t touch on what it is anymore here. For those interested, there is a good article at this link on it.
Those that know me will know confidence isn’t my strong suit. Imposter Syndrome happens to me on a regular basis. So for this reason, having this way to use a language I already had some knowledge of, and could understand as well due to my Java experience I had gained at University, was a big deal for me.
Why learn Android style Java and Objective-C (now Swift) to create Android and iOS apps respectively when I can use one language for the business logic?
That ease of use also leads me nicely on to the next question…
Very easily! So one of the reasons I love Xamarin so much is how easy and accessible it is. You can go from complete installation to deploying your first mobile app in under 5 minutes*.
How to install will depend on your Operating System. Links for Windows and Mac can be found below:
These will help you get up and running. You can then create a new project (You have 2 options, Xamarin.Forms which is cross platform UI and code and creates for all available platforms, or a project for the specific platform you want to target; I will write a blog post on these choices soon) and click Run and after a short wait, an emulator should start and display your first working app with no code changes required, boom!!
The other thing that is great as well is that since Xamarin was acquired by Microsoft last year, it is free in Community Edition! I am a strong believer in making things free. I know some features, understandably are limited to paid versions of Visual Studio but these are not bare bones features. You can do everything you would need to get started without having to pay a penny!
*This will depend on your system and environment. For simplicity sake, assume you are not using Remote Build Agent to build iOS on a Windows machine as this adds additional steps and time.
Well, there is a wealth of help out there so I will keep it down to a handful of some of my favourites.
If there is a lot of interest in this topic, I am more than happy to write a dedicated blog post on the resources I use including ones not on this list:
This is the official blog and often has great posts from a variety of authors covering a range of topics, always relevant and interesting
Most people who have seen anything online about Xamarin have heard of James Montemagno. He is everywhere which is most definitely a good thing! He crops up in other links on this page as well but this is his personal site. He regularly posts here on useful topics. He works for Microsoft and his job is to write, code and talk so this page is FULL of useful and up-to-date content.
Filled with lots of free and easy to follow modules, Microsoft Learn is the place for all things Xamarin learning.
Written by experts at Microsoft, it is a fantastic place to get started.
Channel9 is the official Microsoft video channel with lots of interesting shows and episodes covering a whole host of not just .Net but general Microsoft content.
James Montemagno hosts this show on Channel9(and came up with the name) where he has two episode types, full episodes which are usually 45mins — 1hr long and are an in-depth look at something exciting (often with guests), and Snack-Pack editions where he quickly covers a smaller topic in just a few minutes.
If you like podcasts, or like listening to talks on your favourite subjects then this is definitely one for you.
MergeConflict is a weekly podcast all about Mobile Development in Xamarin hosted by James and the equally lovely and inspiring Frank Krueger. Each week they discuss a different topic of interest from App Design to VR to Managing Open Source projects. Not only does their passion for the topics come across but they are two serious players in the code world with the products they have produced so their knowledge is priceless.
This is a weekly newsletter that you can subscribe to, viewable in a browser or straight to your inbox, where Kym Phillpotts and I, curate together the best Xamarin content from that week.
It contains a mixture of design, code, tooling and more, as well as any podcasts and videos so it is not all reading.
Yup, one of the reasons I have found myself keeping up with Xamarin is how many resources there are available. The product teams regularly post videos and blogs to tell us as a community what is happening. They also take an active role in getting feedback, there are whole threads on the Xamarin Forums dedicated to laying out a roadmap of what is to come and wanting to hear what matters to users.
The community too is second to none. There is a Slack Team for users that also has active employees in so you can get first hand help from thousands of smart people across the world. But as you can tell from above, you also get a whole heap of community created content because so many people love it too and want to share their experiences.
Well, the main reason is passion! I don’t work with Xamarin anymore professionally but I still use it regularly in my spare time so I wanted the chance to talk about it, share my passion with people and also find other like minded people who love it too or have an interest.
I have benefitted so much from the experiences I gained working with Xamarin, becoming a Xamarin Certified Developer, attending Evolve 2016 and talking to members of the community. I want to give back. I wouldn’t be where I am today with Xamarin without the support and influence of the community so this is my chance to help. Hopefully I can help people even just a small % of the amount the community has helped me.
Plus organising the meetings means I can give my attendees exposure to amazing speakers (and I get the honour of meeting them) who love giving up their spare time to share their knowledge with interested participants and that is great.
Hopefully if you weren’t already, reading this has inspired you to consider Xamarin if you have even a remote interest in Xamarin/Mobile Development. Bear in mind too that Microsoft Learn has a quick C# course so total beginners are not excluded from the club. I could go on forever about Xamarin and how excited I get every time I see a video or blog post on a new feature, or see a new way of using something existing that someone has come up with. But these blog posts are aimed at not being a total snoozefest so I shall end it there but thanks for reading and hopefully see you in the next post!