A little over a month ago it was announced that Microsoft were to acquire Xamarin. Shortly after I wrote down some of my thoughts about this. Now the purchase is complete and some of the details of how this will play out have been announced.
The headline news is that Xamarin tooling will be free for all as part of Visual Studio.
Overall this is definitely a good thing. The cost (starting at $25/month) was prohibitively expensive for some developers and so hopefully this will help them. Maybe it was stopping them creating and releasing some valuable and useful apps that will now be able to bring benefits to many.
I have some fears though.
- Many developers will still complain about needing a Mac to build for iOS and will blame Microsoft (and Xamarin) for this. It's Apple's rule though. Expect (unofficial?) cloud based alternatives for this to become heavily discussed. (but not here)
- Many developers will complain about needing other hardware to test their apps on. I am certain there will be some people who will expect Microsoft to provide this too. They'll probably argue that they gave out Windows Phones when they wanted people to build apps for them so they should give out iPhones and Android devices if they want people to use Xamarin tools. <rollsEyesAndShakesHead />
- There will be many developers who assume that all they needed was the tools and now they can build apps and be successful. Maybe they were once told that if they could write code they had everything they needed to create a successful app. This is not the case. The most common figure I hear from other people about how much of the effort of a successful app is related to code is 10%. The highest I've ever heard from anyone with a successful app is 40%. You need lots more than code or coding skills to create a successful app.
- There will be many developers who assume they don't need to know the specifics of the individual platforms they're can now build for. This is not the case. If you want to build apps that feel like they belong on the OS/platform on which they are running you need to be familiar with such devices. (I'm not saying you must but there is a reason I carry and use so many different phones - I'm currently on holiday and I still have three in my pocket! I want to be sure I know this stuff inside and out.)
- Developers will continue to have what I believe to be unrealistic expectations for Xamarin.Forms. That is, they will expect an impeccable, customized and fully integrated experience with each platform the app runs on without having (or needing) to do any device specific work. There are many reasons why you're highly unlikely to get and probably don't really want this anyway. You just don't know it yet. Sorry, I haven't got the time to go through all the details now though.
- Developers who previously only released apps for Windows and complained about discovery in the store and the amount of competition in the stores are in for a shocking discovery/lesson.
- Many low quality and unsuccessful apps that currently exist on Windows [Phone] are likely to get ported to Android and iOS. They'll probably have even less success there and I'm sure the developers of such apps will find a way to blame Microsoft for it.
- There are still a lack of good resources to help developers in many parts of creating a great app that go beyond coding. (I'm currently working on one such thing--which is a contributing factor in me writing less on this blog lately--but, I believe, many developers need much more help.)
I still want to look through all the information in detail but right now I don't think I've wasted the last 18 months or so learning about using the Xamarin tooling. In fact, this might be an extra reason to getting round to taking the certification exam. - There might be some more companies looking for help with this soon and my bank balance suggests I should be doing more paid work.
There's probably lots more I could say but I don't know enough details in all areas yet and, like I said, I'm meant to be on holiday. ;)