The .Net Rocks road trip hit Orlando on Thursday and I had the pleasure of attending. For those of you who don’t know, .Net Rocks does a podcast for people who are interested in developing software with Microsoft .net. The focus of the one-day event was “Developing Modern Mobile Apps”, which is a cleverly disguised way to say “Developing Modern Mobile Apps using Xamarin”.
Xamarin is a software company who’s identically named flagship product allows C# apps to run on natively on “all 4 popular mobile platforms: ios, Android, Windows Phone, and Windows 8”, a statement that invoked a chuckle from those in my general vicinity. Microsoft recently became an official partner of Xamarin, which is a brilliant strategy. If you can’t get people to write Windows 8 phone apps using arguably the best software development IDE there is, make it so they can use it to develop on platforms people want to create for with the added side effect of making them for Windows 8 as well.
Cutting through the marketing fluff of product based presentations can be tough, but from what I have experienced so far, Xamarin is actually pretty awesome for creating apps for the “Big 2+1”. I spoke with a software architect for a major cruise line who is using it to implement their mobile strategy. My good friend Kent Pickard is also about to launch his first (edit: large scale) mobile app into the app store, developed in Xamarin. Finally, I’ve written a webapi backend for one of our clients at Surround Technologies that will be going into production in the next month.
I also got to have a great chat with the Xamarin team at the event who had Google Glass running Xamarin apps. You could tell they were very passionate about their product from our brief conversation. The Google Glass inspired a bit of gadget jealousy, but damn do they look derpy. The Xamarin team urged me to sign up for the free 30-day trial of the product and get a feel for it. The primary limitation of the trial is it does not allow for publication to the app store/Google Play. After I develop my game changing app, I’ll have to fork over some dollars American to make the dream come alive.
As far as the actual event goes, I got there three hours early due to a communication error by whoever was in charge of planning the event. As such, I was able to ‘audit’ a class from the .net live conference going on at the same time, of which the road trip panel was part of. The session I visited was on creating hybrid apps using MVC and Xamarin. From what I gathered, it was a more powerful implementation of the phone gap pattern. More interesting was the subject matter; creating a ‘Razor dex’ to bring up the vitals of Pokemon. Some of the older folks in the audience obviously had no clue what a water poke-man was. For the record, I’m a big fan of Snorlax.
Carl Franklin and Richard Campbell from .Net Rocks were informative and entertaining, a rare combination in the IT world. For those of you who haven’t, check out their podcast. Their latest episode featured Randall Munroe of XKCD fame. They touched on a variety of topics ranging from the history of computing to software as magic, which could become the next ad nauseam marketing buzzword. “Hey .net Sorcerer, can you SAM up this new app? The rockstar-ninjas are having trouble.”
The main event was development evangelist James Montemagno. His presentation focused on creating an app across Android, ios, and Windows phones. It demonstrated the power of Xamarin for creating mobile apps. Obviously, it was a pre-planned demo and you’ll really need to try it for yourself to see if it meets your needs. To make it happen, you create a Portable Class Library to handle the bulk of the functionality of your app. Most of this was pre-packaged for the demo because who wants to sit around and watch a guy write CRUD logic.
The ‘Xamarinification’ happens in one of three projects. The first was an Android project cleverly titled <projectname>.droid (which is totally trademarked by Disney – tread carefully). The code was written live and fifteen odd minutes later, we had us a podcast playing app for Android. Note: The UI markup must still be written in the Android’s markup language and accessed special C# libraries.
The same steps were repeated for IOS and Windows phone. James wrapped it up by showing that you can use Azure to persist your apps state across all platforms. This doesn’t require Azure and could be accomplished with any web service.
The day ended with an experts panel that is also going to be a podcast for the tablet show where the .Net Rocks guys talk about tablets. A few of the highlights for me were related to developer productivity. One being ‘Interruptions per hour’ where any interruption adds about 30 minutes to the end of a developer task, of which I can relate. Another topic was how it actually takes longer to developer now; one of the issues being the time it takes to write simple CRUD now versus back when you wrote a few lines of Cobalt/RPG, “Why are we still writing crud apps?!” I’ll use that point to plug the product I work on, Accelerator for .Net. Writing crud over and over is a drain on one’s soul and there are plenty of tools to do it for you.
The panel closed with a Q and A. The questions ranged from well thought out to annoying. The Gettysburg Address was 272 words, if you can’t ask a question in less than that, find a way to rephrase it.
I’d like to extend a giant thank you to everyone involved putting on this completely free event. The .Net community is always very great about sharing knowledge and helping out devs. This event was no exception.
Per Doug’s request I’ll include a demonstration in terrible handwriting by attaching my OneNote ‘notes’ from the Xamarin presentation.