Learning to fly by yourself can be hard (as the picture below illustrates).
There is a serious risk the guy above is going to faceplant pretty hard.
I don’t want our project to be that guy. So I thought, what the hell, let’s get a consultant in for a couple of days to help get us off the ground.
I got in contact with Glenn Stephens from Orchard eBusiness (He’s listed as a Authorised Consulting Partner on the Xamarin Site) to come in for two days and get us started. At worst, we’d get a 2 day Xamarin course. At best, we’d learn enough to make a decision if Xamarin was right for us. What we ended up with was a lot more than we bargained for.
Not only did we get a great introduction to Xamarin, but we also went through our project workflows to identify specific implementation patterns we could use and discuss the challenges we would face. We spent time basically pair programming out parts of the solution. Along the way Glenn dropped a zillion nuggets of wisdom and more than a few code snippets our way. Did I mention that Glenn has a great sense of humour?
So here are just some things I got out of it – some Xamarin specific, others just general good mobile guff.
- Recommended books:
- For integration into TFS on a Mac we discovered there is a perfectly good Eclipse Plugin.
- PaintCode is a pretty terrific app that allows you to design some nice UI for Xamarin.IOS
- TestFlight is the way to go for getting loads of people to beta test your iOS and Android apps. Note: also as part of my investigation it turns out that you can do something similar in the Microsoft Store by publishing BETA builds to get your app out to a bunch of phones without having to have them dev unlocked
- Xamarin Technolgies and Components
- Turns out MonoTouch.Dialog is AWESOME SAUCE
- So is the Appearance API – http://www.slideshare.net/Xamarin/styling-your-ios-apps
- ServerStack for the win and RestSharp – beats the crap out of WCF
- PushSharp for notifications across various platforms
- SqlLite for local persistence. Haven’t checked it yet, but apparently the Xamarin Conference App nails this
- Reachability by Miguel de Icaza for detecting network state.
- When developing on Android go into the Android Dev Tools and check the settings of Do Not Keep Activities and Strict Mode to help simulate old phones
- Get an old phone to test with. Remember that mobile development is very different to desktop / web development, especially when it comes to connectivity.
- If you are going to be developing iOS then probably best to use Xamarin Studio on a Mac. We got it working, but the connection to the Mac Build Agent was pretty flaky. It kept dropping it’s connection
So that’s just some of the take aways from our two days with Glenn. However, probably the best bit was talking through the tried and true patterns that would be appropriate for various parts of our app. We have also established a relationship with someone local that may be able to assist us along the way (especially if the wheels fall off).
The Take Away:
If you are starting out with Xamarin and/or Mobile Development (and you don’t want to offshore the project) then SERIOUSLY CONSIDER GETTING A GOOD CONSULTANT IN.