I’ve recently had a fair bit of interaction with iOS and Android developers, mainly because I had been tasked with developing that back end server side aspects of various mobile apps. One of the things that amazes me is how they still develop in each native platforms code base. One developer I know programs in both Objective C, and Java – and does a pretty poor job on both; that’s a conversation for another post 🙂
This brought me to explain my reasoning for using Xamarin as my main app development tool…
I originally started out just developing for iOS, and started with Objective C and kind of just stumbled upon Xamarin (formally it was named Monotouch). My background has been in .net development (before that VB6, back in the day), and my day job is as a software developer / consultant developing in C#. So this made sense to use Xamarin for software development, as writing in Objective C doesn’t flow as naturally for me as writing in C# does.
So I cut my teeth on Xamarin by developing applications quickly, and just targeting iOS. I developed experiential apps for big London companies, and some international banks, and it meant I didn’t need to ever touch a line of Objective C.
It has only been in the last 2 years that I have really come to see the true power of using Xamarin as a development platform, this occurred when I needed to develop for iOS and Android. Other people have to either employ 2 developers to deliver a solution, or have a developer who is versed in Objective C and Java and knows the nuances of both platforms. Using Xamarin allows you to implement lots of different design patterns, and develop in just one language, C#.
I was also very fortunate to also visit Xamarin in San Fransisco, and be put through their Xamarin University course free of charge. The company has some pretty smart guys working for them, and an awesome culture.
So if your a c# developer, I would ditch bothering to write an app in Objective C or Java and be the smart guy who chooses Xamarin. You will use all your existing knowledge of C# and develop apps in half the time.