Blog

BackBack to Blogs
Xamarin

Microsoft + Xamarin = Microsoft’s answer for Mobile Application Development


At the Omnitech office, there has been buzz about Microsoft’s apparent commitment to helping the developer community address the need to build software targeting multiple mobile platforms (Google’s Android, Apple’s iOS, and even Microsoft’s own Windows). As a software engineering firm who focuses on our client needs and their overall investment in technologies, including their existing use of Microsoft development stack and tools (C#, .NET, SQL Server, Visual Studio, TFS…), we spent quite a bit of time researching how best to build and manage mobile applications from a long-term investment approach. This article will share some of our journey and excitement about Microsoft’s recent moves surrounding Cross Platform Mobile Application Development.

First, what recent moves by Microsoft have us excited? On February 26th, 2016 Xamarin was acquired by Microsoft. In separate news, internal projects at Microsoft like Project Astoria have been officially cancelled. From all appearances, Microsoft has selected their path for cross platform mobile application development. Like many in the industry, we have been carefully navigating how best to help our clients develop a strategy for mobile capable solutions which led us to embark on this journey beginning several years ago. Frequently, clients approached us asking for a mobile application.

During our discovery conversations about their business needs driving this request, they would often mention concerns like their website is not mobile friendly and people are telling them they should have a mobile application (i.e. everyone is doing it). We walked through where the industry was at the time and costs for an initial build plus maintenance going forward, while also sharing information about modern web development practices like responsive design. Many times the clients chose to first invest in updating their web presence to this more modern interface design which is mobile friendly and wait while mobile application development tools matured. In some of the cases, the client chose to do a very targeted mobile application to address a pressing business need. Either way, they made informed decisions that best suited their individual situation. In the initial years (2013 and earlier), a unified tool to build a professional cross platform mobile application that either were native or acted like a native application just didn’t exist. We were investigating each promising tool like PhoneGap, Cordova, Xamarin, and more. Between 2013 to 2014, Xamarin was getting the attention of our engineers. We prototyped some mobile application solutions using Xamarin’s tools. Xamarin’s vision looked promising. However, there were roadblocks that our team struggled to overcome indicating to us that the tool still had a significant way to go.

Our team had enough interest that a few of us took a road trip at the beginning of 2014 to meet some of the Xamarin team at an event in St. Louis, MO. The objective of the trip was twofold: (1) to see if the immediate roadblocks could be resolved in order to be used for the client needs at that time and (2) to further explore if Xamarin was the product team that we wanted to move towards. We concluded the trip thinking that this was the best vision and product that we had seen in this space. In fact, our conversations went something like… “Microsoft should just buy Xamarin and throw their resources behind this product to move the industry faster.”

During 2014 to 2016, our projects leveraging Xamarin have dramatically improved as the tool is maturing towards their vision. To give a sense of how far the tools have come in just two years, let’s contrast a project in 2014 to our most recent project. In an early project in 2014, the capabilities of the toolset were a bit limited, but we were able to write a common business logic using C# and .NET to target all three platforms (Apple’s iOS, Google’s Android, and Microsoft’s Windows Phone). At that point, use of Visual Studio for the user interface was only really feasible for Windows Phone and Android devices. We chose to work in Xamarin Studio and X-Code on the Mac for the iOS portion of the project. The objective was to ensure the user experience was as close to native applications as possible and performed efficiently on the device. Those two factors combined with what was the current state of maturity for the Xamarin tools led us to this mixed tool approach. Now in 2016, our most recent project had all development done using Visual Studio. The introduction of Xamarin Forms led to the ability to share code across all three platforms all the way up to the user interface on the user devices. Now, the only thing a Mac is needed for is during testing and deployment to build the iOS version and to use the simulator. For an engineer, there is no more switching between tools (IDE’s) and having to get creative when trying to keep all the code in source control. This is significant in saving time (money). There is still room for improvement which is part of the excitement about Microsoft purchasing Xamarin.

Another point of excitement for the purchase is about the long-term support and the probability of tighter integration into Visual Studio. This also tells the developer community that what Microsoft is saying about building and supporting tools for multiple platforms is real. Cost of licensing is a topic that we will be paying close attention to. Prior to Microsoft, Xamarin licensing cost as an independent tool company was quite expensive. The cost currently is $1,000 per platform per developer per year. So to develop a mobile application targeting Apple’s iOS and Google’s Android platforms is $2,000 per developer each year. Microsoft should be able to drive down that cost substantially, maybe even simply include the tools into Visual Studio at no additional cost. We think this would be the smart move by Microsoft: Remove all barriers for the developer community to use Microsoft tools to build for the future.

UPDATE: Microsoft has granted our wish. On March 31, 2016, Microsoft announced that Xamarin is now free and included in Visual Studio. Microsoft, good move!!! blog.xamarin.com/xamarin-for-all The acquisition of Xamarin by Microsoft isn’t a surprise. In the last couple of years, Microsoft has been giving the developer community indicators about the possibility of Xamarin being part of their future. Microsoft started fully supporting the Xamarin toolset as part of Visual Studio and were giving extra Azure credits and access to Xamarin University training materials. From news articles, it appears that Xamarin will be under the leadership of Microsoft’s own Scott Guthrie. Our team thinks his leadership is good for the Xamarin tools and Microsoft as a whole, and we continue to see a positive direction for Microsoft under Satya Nadela. Microsoft has a compelling story and vision for the future of software.