Today is a bit of sad day for me and not just because we’re more than halfway through April and MN is getting hit with yet another snowstorm. The reason it’s a bit of a sad day for me is that tomorrow I have to go back to the “real world” after having spent four amazing days at the Xamarin Evolve conference in Austin, TX. I’ve been to a number of conferences over the course of my career and I guess at this point I’m a bit jaded and was not expecting this conference to be anything other than just another conference. I’m pleased to say that Evolve far exceeded my expectations and in fact, without a doubt, this was the best conference I’ve been to. I’m already looking forward to next year’s conference.
The first two days of the event were dedicated to training on the Xamarin platform for iOS and Android development. The training was broken down into an intermediate track and an advanced track. As I’ve been working with Xamarin for iOS development for a little over a year now, I opted to take the advanced track. I was a bit unsure about this decision as I’ve done no Android development and indeed most of the Android stuff was lost on me. That being said, as an iOS developer, I found the advanced content for iOS to be very good. Coverage was given to topics such as notifications, animations, backgrounding, collection views and a number of other topics.
The last two days of the event were for the actual conference. The format for this was the typical conference format; keynote in the morning followed by breakout sessions on various topics. The keynotes were fantastic, particularly the announcement of Xamarin’s new cloud based mobile app testing service and some of the improvements coming to Xamarin Studio. I’m particularly excited about the testing service as there doesn’t seem to be a great solution to this right now. Xamarin’s offering looks to be a game changer.
As great as the content in the training and the conference was, what really made this conference special for me was the people and the interactions. First, the Xamarin folks were so accessible. This includes people at all levels of their organization from developers to their CEO, Nat Friedman. I believe it was on the second day of training that Nat sat down at our table at lunch and we got to chat with him. I could be wrong but I’m pretty sure you won’t see Balmer doing this at one of the Microsoft conferences. In addition to the interactions with the Xamarin folks, I had a number of great interactions with other conference attendees. Personally I think the value of conversations with other conference attendees can often be more than the value of conference sessions. Perhaps I’m overstating things but I felt like attendees at this conference were far more social and interested in meaningful interactions with other attendees than what I’ve seen at other conferences. Another really positive thing for me about this conference was the size. There are only around 600 attendees which meant that you kept seeing the same faces and could easily resume connections with people you’d interacted with previously. Personally I’ve found this to be quite difficult at larger conferences like TechEd where there are 10,000+ attendees.
At the end of the conference yesterday, it struck me that the big take away from this even for me isn’t really a new skill or new knowledge but instead is a renewed sense of inspiration and motivation to create and write code. During the keynote, Miguel talked a lot about delighting developers. So much of what I saw really did delight me as a developer and has really inspired and motivated me to create. After giving some thought as to what to do with this newfound sense of inspiration, I’m pleased to introduce what I’m for the time being calling Project X.
Project X is going to be the fulfillment of an idea for a mobile app I’ve been kicking around for about a year now. It’s something that I hope to make a bit of money from or at the very least be able to break even. With that in mind, I’m not going to get into details about just what this idea is because as far as I can tell, there isn’t really an app that does what I’m planning to do with Project X. That being said, I can tell you that Project X relates to something that is very passionate about. I will talk a bit about some decisions I’ve made with regards to how I’m going to execute Project X. The decisions I’ve made so far or am at least close to making are as follows:
- Xamarin.iOS: This is a no-brainer. I’ve been working in this space for the past year and I really have no desire to do any more with Objective-C. My primary language is C# so Xamarin.iOS should allow me to crank out code much faster than Objective-C would.
- Windows Azure Mobile Services: I’m not 100% positive yet but I believe I’ll be using Windows Azure Mobile Services for my backend. From what I’ve seen of WAMS, it looks like a great way to very quickly get an API up and running without having to write any backend code. They also offer support for push notifications which is something Project-X will need. The only thing holding me back from finalizing this decision is security and authentication. WAMS does support this but I’m not totally sold on how it appears to be implemented.
- Reference data: Project X is going to require some reference data and I’ve found a couple of public APIs that look like they will meet my needs. I still need to do a bit of research to make sure their licensing terms are reasonable for what I want to do.
- ServiceStack: I’ve been using ServiceStack as a REST client in my day job for some time now and it seems to work quite well.
- Xamarin.Social: Project X is going to have a social component and from what I saw at Evolve, this looks like a great component for doing the socials in a cross-platform fashion.
- Version control: I’ve narrowed my source code repository decision down to either GitHub or BitBucket. I like GitHub and I already have some public repositories out there, however I want Project X to be a private repo so that would mean I’d have to start paying for GitHub. BitBucket offers unlimited free private repositories for up to five users which really appeals to my cheap side.
In the coming days I’ll begin working on some screen mockups to flush out the uses cases for Project X and hope to be coding in the next week or two. As this will likely be a busy spring and summer for me, it could be a while before Project X sees the light of day (or the light of the Apple app store), though as excited as I am about this, I can see some late night coding sessions in my future so who knows, it could see release sooner. As I progress with development I’ll be blogging here about the experience and issues I run into.