This past summer I had the opportunity to work with some of my peers on an mobile app project. I had full liberty to chose whatever technologies I wanted to put in the development stack.
With only 3 months to get a minimum viable product I knew that doing native development with separate iOS and Android codebases wasn’t going to cut it. My interest was turned to alternatives that would allow me to publish apps for both platforms from one unified codebase.
At first I looked towards Apache Cordova as a way to meet our needs, but quickly realized that running a hybrid web app inside of a node.js microservice wasn’t going to give me the full performance control I needed.
I then found that Xamarin was the perfect option, allowing me to put a majority of the backend logic inside of a portable class library and then doing some native UI tweaking at the end.
With Xamarin, all of the code you write is done is C# and then trans-compiled into the native Java or Objective-C for each respective platform. It was amazing to see how quickly this allowed us to prototype and test our apps. All of the development was done on a Windows machine with a Mac remote agent that we used to deploy to the iOS simulator over the network.
Without Xamarin, the project would have either had to sacrifice one of the mobile platforms or extend the development timeline. But thanks to this new framework we didn’t have to make any compromises.