Tuesday, April 23, 2013

Notes on attending Xamarin Evolve 2013

Last week I attended the Xamarin Evolve 2013 conference in Austin. It was, hands down, the best conference that I have ever attended. It was divided up into two days of training, plus two more days of conference sessions. I attended all four days and the training days alone were worth the price of admission.

I’ve been using Xamarin.iOS for about 5 weeks now. I’m working on an iPad prototype for a companion app for one of our existing desktop apps. I’ve been amazed over how well the Xamarin tools worked and I’ve been able to get a nice app up and running. I had just enough exposure to Xamarin to be able to appreciate the training that I received.

They broke the training into two tracks, Fundamentals and Advanced. I had enough entry level experience with Xamarin.iOS that I wanted to mix and match the sessions, but the training rooms filled up to capacity so I stayed in the Fundamental track. The session instructors were top notch and they had Xamarin TA’s floating around the room to keep everyone on track. Of the code examples, there was less typing of code and more uncommenting out of blocks, but that was OK. On the track that I was on, this was new ground for many people and have of the experience was learning how the tools worked and how iOS design patterns worked.

One smart thing that Xamarin did was to send out the course material a week before the conference. The sessions made extensive use of the sample projects and it saved a lot of time to have that preinstalled. Instead of including the slide deck from the session, they included what looked like chapters from a training manual. hat is much more useful than a slide deck.

During the conference keynote, Xamarin CEO (and co-founder) Nat Friedman had two surprises for us. The first one was a Xamarin native iOS designer. This will free us from the horror of Interface Builder. It only works with storyboards, but has the ability to work with custom components and saves us from the general head scratching weirdness of Interface Builder.

The other surprise was big. Xamarin Test Cloud is a cloud based testing platform that lets you test your apps on hundreds of mobile devices. With 1500+ devices, the Android platform has become increasingly fragmented. You have to deal with multiple carriers, multiple screen resolutions, and multiple versions of Android. Test Cloud will let you upload your app to their site and select which mobile devices to test it on. 

It has a UI scripting language so that you can test your app the way a user would do it. You will get a report of which devices passed and which ones failed. You get screen shots of each step, that allows you to visually verify that the correct results would be on the device. 

In addition to testing UI interactions, you get machine profiling as well. You can see memory usage, CPU usage, and response time. This is a game changer, no one else has this on the market. If I were still doing Android coding on the native java tools, I would switch to Xamarin just for the Test Cloud usage. No one knew how much this will cost, but Sourcegear’s Eric Sink summed it up best (and I am paraphrasing): “It’s going to cheaper than what I would pay a QA guy to do all of that manually.”

The hardest part of the conference days was picking which session to attend. I’m a big fan on Jon Dick’s ZXing.Net.Mobile scanning library, but his session was scheduled at the same time as Nic Wise’s MonoTouch Dialog session. I needed help with MT.D more, so it was off to that session. Xamarin filmed all of the sessions, so at some point I’ll be able to see the sessions I missed.

Another great session was Stuart Lodge’s session on MvvmCross. The MvvmCross library provides XAML-like binding to Android and iOS, and allows you to create cross platform apps using the MVVM design pattern. If you are supporting iOS, Androids, and Windows 8/Windows Phone, you really want to look at this library.

Wally McClure did a session on mapping that I liked.  I like the way he does his presentation. He went around meeting the session attendees before he started, that was a nice personal touch.

I did miss the comedy show on Tuesday, Xamarin had set up a mini-hackathon and I lost track of the time while doing that.

Tuesday night, Xamarin rented the park across the street from the hotel and had a series of food trucks providing the best that Austin had to offer. The giant sized Jenga was pretty popular.

I got to meet and talk with Miguel de Icaza.  He was funny and very bright.  He asked what I was working on and what I thought of the training.

Wednesday had a great UI session by Josh Clark.  Called “Buttons are a Hack”, it was about how to use touch interfaces to design beautiful apps that anyone could use by just picking up the device and exploring.  Any session that starts out with a clip from “This is Spinal Tap” is a winner.

One of the cooler things that Xamarin did was to provide 30 minute sessions with one of their engineers.  That time was available for questions and code review.  I set up my session a week before the conference and one of their support reps had me sent in some screenshots and a list of questions.

When it was time for my session, I was able to get all of my questions answered and I was able to verify that I was using some of the iOS internal objects correctly.  I was pretty sure I had it right, but it was nice to have the code validated.

Since we were in Austin, a bunch of us went out one evening to see the bats at the Congress Avenue bridge.  About a million bats nest under this bridge and they all leave at dusk to go feeding.  It was incredible to watch them all fly out.  There were so many, that from a distance they looked like a cloud,

Evolve 2013 was a great experience.  I learned a lot and made some new friends.  I’m looking forward to Evolve 2014.

postscript:
More Congress Ave Bat pictures can be found here.