Now that Xamarin is included for free with Visual Studio, I thought it would be fun to try it out. Xamarin lets you make apps for Windows/Android/iOS by writing code in C#. Usually you have to then design your UI in the appropriate language (Java for Android, Objective-C/Swift for iOS), but with Xamarin.Forms you can even write a cross-platform UI in C#!
Since most of the work in the Airport Guides app is maintaining the maps themselves, the app is pretty small so I thought it would be a good candidate for porting as opposed to something like Bridge Scorer which has a ton of custom UI. The experience was pretty good – writing the UI in Xamarin.Forms is a lot like writing it in UWP for Windows 10, except all the keywords are different 🙂
I did run into some frustrations along the way. One was not realizing that you can’t test in-app purchase stuff without a real device. (although in retrospect the documentation does mention this…somehow I missed it) Another was that while the Android emulator for Visual Studio is literally 10x faster than the default emulator, there’s at least one bug that doesn’t show up in the real emulator. For the record, it was fetching a particular web page that would always timeout…I still never figured out why! Pinch/zoom was also tricky to get working until someone pointed me to MR.Gestures (which I always pronounce “Mr. Gestures” in my head 🙂 ), but I still am disappointed that every platform doesn’t have an easy builtin way to make pinch/zoom on an image work. Shoutout to Alan Clark from Xamarin for helping me through some of these!