Thoughts on the Xamarin Evolve 2014 keynote
Wow, Xamarin certainly pulled off a great one in the Evolve 2014 keynote today. I had to miss the conference this year but I sat behind my MacBook watching the keynote in high anticipation regardless.
The keynote was a rollercoaster ride, and the team can be very proud of what they have achieved. Xamarin is clearly on a roll! Let’s go over today’s highlights (at least, for me)…
Evolve 2013 was a fantastic conference, mostly because of the awesome vibe. The Xamarin team was visibly proud, and the whole atmosphere during the conference made it great to be a part of. From the tweets in the #XamarinEvolve stream, it seems that they pulled it off again this year, despite the much larger scale. Kudos to Nat, Miguel and their team for that!
The great vibe was also noticeable in the keynote. It’s really great to see a CEO and CTO on stage – who are themselves just geeks like us – radiate with pride and excitement. And a little bit nervous as well 🙂
*The Digital Business
*One important thing that was recognized in the keynote was that the Digital Business is becoming top priority for C-level executives in the enterprise. This enables interesting scenarios for mobility and cloud to change the way employees do their day to day work.
Avanade mentioned in the keynote that CxO’s are focusing on reach, recognising the fragmentation in the mobile arena regarding devices, mobile OS-es and the variety of device flavours. BYOD is happening, which means that a good cross platform scenario is very important.
At the same time, user experience is a huge part of the story. As Nat rightly remarked:
Your app, even if it’s an enterprise app, is next to the best apps in the world on someones phone.
As a result of the consumerization of IT, users have come to expect top notch UX from their enterprise apps as well. Just as smooth as their consumer apps. Needless to say that the reason why I love Xamarin is that they bridge cross platform development and native experience in the best way I’ve seen.
IBM partnership and Mobile Middleware
Mobile middleware is becoming a real necessity in the enterprise. Opening up enterprise backend systems to mobile devices isn’t just like regular EAI – Enterprise Application Integration. We have to deal with very different connectivity scenarios, new security threats, and performance constraints that come with mobile devices. This opens up opportunities for new and interesting architectural styles and cloud based backends. A company that – IMO – gets this very well is KidoZen.
IBM is now also stepping into this new world of mobile with their Worklight product. Very interested to see where the Xamarin/IBM integration is going.
Xamarin Forms Partners
Xamarin.Forms is a very promising framework, in which Xamarin balances cross platform development and native user experience in a very elegant way.
The contributions from the Xamarin.Forms partners fully brings the framework to life, with awesome powerful controls. Charts, document handling, advanced user inputs, etcetera. This is a very nice step towards adulthood for Xamarin.Forms.
With these constrained mobile devices, performance efficiency is very important. For this reason, you’ll find yourself spending a lot of time running your apps through profilers to get out all the jitters and memory leaks. Xamarin now has a great profiler that actually looks at the app from a Mono/.NET point of view. Can’t wait to play with it!
What I really like about the new tools is that Xamarin is taking their own advice to heart: create native experience on the target platform. This means that the Mac versions of the tools have the distinct OSX style, and the Windows versions have that recognizable “Metro” look (I still call it Metro). It’s the details that matter, and I like it.
Xamarin Android Player
Every Android developer knows how excruciating the Android emulator is to use. Although it’s an accurate emulator, it’s dreadfully slow. Many have already defaulted to using Genymotion, although that may cause integration problems, for example with VirtualBox if you have a Windows VM running in Parallels on your MacBook like me.
The Xamarin Android Player is much faster, and integrates neatly with other IDE’s that speak ADB.
Now, the player won’t excuse you from testing with real devices, but this greatly improves the developer experience! Wow, well done Xamarin!
You could expect from Xamarin that they’d take Roslyn and do something great with it. Xamarin Sketches is a nice REPL like tool that helps you draft up C# snippets, have them executed immediately and park them as snippets. Web development style immediate feedback with C# development!
In addition, the real time integration with the emulators, where you immediately see code changes being executed, is a huge productivity boost! Amazing piece of engineering from the Xamarin team!
C# Test Automation
Now finally we can write our automated UI tests in C#!
A good solution for monitoring the stability and quality of your apps, out there on all those devices, is crucial. It helps to detect problems and keep the quality and user experience on a high level. Moreover, monitoring your apps behaviour can give you a lot of new insights.
There are several solutions in the market that can help you track errors, and even do a bit of performance monitoring. Services like Crashlytics, Crittercism, Raygun and even my favourite APM tool New Relic all have mobile offerings.
The problem with these is that most of them hook into native API’s to do their work. This means that you’ll need a C# binding for their SDK’s to use them in your Xamarin app. For example, Raygun has a component in the Xamarin Component Store you can use. Still, catching errors won’t give you all the details you might be looking for as a C# developer. You’ll want to have the full .NET/Mono stack trace and more details from the Xamarin environment that you won’t get if you don’t have a “Xamarin native” SDK.
Furthermore, monitoring app performance will be difficult, again since most APM SDK’s hook into extension points in the underlying native framework. With the New Relic SDK for iOS for example, you’ll find yourself trying to hook measurements onto Objective-C methods, selectors and other extension points, whereas you really want to know how your C# method is doing. These SDK’s also make it difficult to instrument shared code, since their API’s are usually platform specific. Again, a “Xamarin native” SDK is lacking here. I really hope New Relic has a Xamarin compatible SDK on their roadmap. But now, luckily Xamarin has taken up the challenge themselves…
Enter Xamarin Insights! I’ve already had the privilege of playing with the platform a little bit, and things look very promising. There is still some work to be done on the performance monitoring part, but the error tracking and alerting feature is shaping up very nicely.
Xamarin is growing up fast. With the addition of Test Cloud, Insights and the new Profiler, they’re building a great one-stop solution for mobile development. Sketches, C# test automation and the fantastic new Android Player make the developer experience even more delightful.
Congratulations to the whole Xamarin team!