I’m working on a fantastic project at work at the moment. It’s 51% awesome and 49% scary as hell.
It’s awesome because it’s an innovative mobile project across all the major platforms and therefore I get to play with loads of toys and devices.
It’s scary as hell because we are attempting to publish 4 apps into 4 different app stores in just a few months, which would be cool if we had a crack team of mobile developers and designers. Unfortunately this is far from the truth. The reality is this – There is me, some very committed totally awesome devs who are putting in hours outside of their normal work, and a crazed bunch of business people who have promised a October 24 big bang release!
How the hell did this craziness begin
The project started very unconventionally as a weekend hack-fest at the CEO’s house. A bunch of developers got together to build some very basic working prototypes of the solution in a sleep deprived 36 hour period. The solution comprised of Windows Phone 8, Android, iOS, Windows 8 and Azure. But let’s be honest hack-fests and sleep deprivation do not make for great production code.
From that initial hack-fest, the project kind of snowballed as we continued working on these proof of concepts to get them ready for a trade show in June.
It’s funny how prototypes turn into production code
Yup, The trade show came and went… the product received a great response and from there it was on like donkey kong! Before I knew it there were flyers being made, press releases sent out and even a promotional video… oh shit – this project had formed a life of its own.
The problem was we had (correction, DO) have completely independent mobile code bases (android, ios and wp8) all in various states of “kinda working”, each with their own bugs and no dedicated resources to complete the project. The biggest challenge really is that, as a whole, we are not mobile developers, we are c# developers.
A new hope
So I went off looking for any ray of hope that could help us get this thing released. We had already looked at solutions like PhoneGap to unify our code base, however, we found the user experience lacking. We needed native UI’s. So looking around I kept crossing paths with Xamarin. Xamarin promises to allow us to use our C# skills to build a common shared library and then strap on some native UI’s. I’d herd of Xamarin before, or more accurately, it’s roots of Mono and it always seemed to me to be a fringe project for cross platform dudes with neck-beards. Further investigation reveals it’s come a long way.
To cut a long story short I’m going to blog about my findings, experiences, victories and tears trying to use Xamarin to complete this project on multiple platforms in a ridiculous timeframe.
Who knows maybe someone just like me might find this useful in helping inform their own decisions on Xamarin as a viable platform.