I mentioned in an earlier post that I have chosen to use Xamarin for cross-platform development. In this post I will write a bit why I chose Xamarin.

My way towards app development started with the introduction of Windows 8. With the store Microsoft presented (and the lack of apps for it) I saw an opportunity to create some apps for the Windows platform. The first (and only one) app I created was a remote controller for Onkyo receivers, specially created for the Microsoft Surface. This was programmed using C# and XAML. Moving on I found that I still were using an iPhone myself. Seeing as I still have some ideas for apps I personally want to use, I saw the need to change programming platform.

Quite a few technologies exist for app development, and you need to consider if you want to program for one specific OS or for several. You could choose Objective C or Swift for iOS and mac, C#/XAML or HTML/Javascript for Windows 8.1/Windows Phone or Java for Android. Or you could go for a more generic solution by creating a responsive web site, or use a hybrid framework. Of course there are advantages and disadvantages for all, and it really comes down to what type of app you want to create.

I looked into Objective C for iOS, however I found that I really didn’t want to learn a new language at the time, so I stopped that approach. Java was a language I had learnt while studying, but using it would mean I would only program for Android. Also off limits for me, since I use an iPhone myself. I also found the hybrid framework Phonegap, which allows you to use HTML, CSS and Javascript to create a cross-platform app. The good thing about this is that it’s fairly easy to learn, and you have a lot of the native mobile features available.

Phonegap was something I tested for a while, but I never released any apps using it. I also came to the realization that C# is the programming language I am most comfortable with, and what I want to use professionally. During all this time I’d heard of Xamarin, as a cross-platform development tool, so I decided to give it a try. The trial/free edition was quite limited, in terms of size of the application, so I were not able to see the complete possibilities, however I saw enough to decided that I wanted to give it a go. Seeing as you have to pay for the license (either subscription every month, or a one-time fee) both for Android and iOS, I decided to start with iOS development. I am using the indie developer license, so I don’t have the integration with Visual Studio, but I feel that Xamarin Studio is enough for now. After all I’m currently just working on my Mac Mini anyway.

My plan is to submit my first app to Apples App store at 1st of March, and if it gets good feedback I will purchase a license for Android and start with the Android version of the app. You will have to wait until the app is released to know what it is!

Writing this post I have deliberately chosen not to discuss all advantages or disadvantages of the different ways to develop apps, and that is simply because that discussion could go on and on. There are plenty of other blogs and sites out there that brings up that discussion, just do a quick google search. However, if anyone have some comments regarding this, please let me know! I am not stuck on Xamarin, although at the moment it is my preferred choice.