Recently, we sent out the following newsletter that explains some exciting recent developments in cross platform mobile development. You can use the signup form to the right to add yourself to the newsletter list, we would love to stay in touch! Here it is:
Yesterday, there was some very exciting news: Microsoft has agreed to acquire Xamarin!
Here is what the two parties have to say about it:
- Microsoft blog by Scott Guthrie
- Xamarin blog by Nat Friedman
Let me explain why this is exciting, and how it will benefit you. To see the big picture, let’s go travel back in time in the history of both companies (a little condensed and simplified).
Xamarin emerged through the work of Miguel de Icaza on Mono, a port of the .NET framework, runtime and its C# compiler to Linux and other platforms. Out of that grew Mono Droid and Mono Touch, tools that would allow you to use Mono to develop native Android and iOS apps. Four years ago, with the help of Nat Friedman, this evolved into the company Xamarin, which productified these tools, built their own development environment Xamarin Studio, and created a cross platform component market.
Within Microsoft, a growing movement towards open source, services and mobile grew under the leadership of Scott Guthrie, and really took off when the leadership changed from Steve Ballmer to Satya Nadella. Windows and Office stopped being the only holy cash cows, as Microsoft realized it had to evolve with the times and embrace the transition from desktops and internal data centers to mobile devices (phones and tablets), HTML5 and the Cloud, where software is now sold as a service with a recurring revenue, like Office 365. In this transition, Microsoft also started to do very exciting things, like releasing Office (Word, Excel, PowerPoint and Outlook) on the iPhone.
There was an obvious alignment between Xamarin and Microsoft. Xamarin had created a way to use C# and .NET for iOS and Android development. Microsoft had embraced iOS and Android, but Visual Studio only developed apps for the Windows Phone with its dwindling market share, and for desktop Windows 8/10 and of course the web, but mostly if run on Microsoft middleware such as IIS, on Windows. As the two companies collaborated, things started happening. The parties released Visual Studio support for Xamarin, and Microsoft opened up the licensing agreements of all kinds of libraries so they were allowed to be used on other platforms than Windows. Then, the bombshell hit: Microsoft started open sourcing its .NET framework and compiler! Not only that: Microsoft also started creating a new version of the .NET framework and runtime that would run on Linux (and Macs). See Scott Hanselman’s blog here.
That’s right – now you could develop an Android app using Visual Studio, C# and .NET, and it could talk to a Web API developed in Visual C# and .NET, running on a Linux machine or in a Docker container!
Microsoft also made some other key investments:
- Visual Studio Team Services (or VSTS) brought Team Foundation Server (TFS) to the Cloud as a service. At Trailhead we use this to plan and collaborate around our agile projects, tracking sprints, work items and bugs, as well as Test Plans.
- VSTS embraced Git as a repository, very popular in the open source community and for mobile development and tools
- Team Foundation Build was added to VSTS, allowing you to build your software in the cloud using prepackaged components, or your own, whether it was a .NET app or an android native app
- Release Management was added to VSTS, through the acquisition of InRelease, so that DevOps could be run in the cloud, deploying built software to development, QA or production environment in a controlled manner
- Azure was integrated with VSTS, allowing builds to deploy to Azure Web Apps and Cloud Services
- HockeyApp joined Microsoft. Now there was a way to deploy Android and iOS builds to phones and tablets
A lot of other things happened too, but these are to me the main components: suddenly there was an end to end story from designing, developing, testing, managing, building, releasing and deploying code to cloud services and mobile devices, all using .NET, C# and Visual Studio, but ALSO with your own choice of operating systems, tools, programming languages, build processes and target devices!
In the meantime, Xamarin created some very interesting technologies, my favorite of which is Xamarin Test Cloud (XTC), which allows you to deploy mobile apps to an automated testing environment in the cloud, where it can be run simultaneously on hundreds of different real devices, like iPhones, iPads and a myriad of Android devices. What QA department can afford to buy all these and test on them, and keep up with the constant deluge of new hardware? With XTC, you can finally keep up with your users! XTC will actually test any Android or iOS app, not just those developed with Xamarin.
With this background, today’s announcement is just one more puzzle piece in the overall big picture. It is a perfect fit. Now the Mono framework that Xamarin rests upon will have full access to both the source code and the knowhow from Microsoft. The IDE teams can work together. The HockeyApp and InRelease people Microsoft will have access to XTC, fully integrating the Xamarin story into their processes, and Microsoft will have a fully owned toolset for Visual Studio AND Mac integrated mobile development.
And how does it benefit you?
As a developer, you can now work in a .NET, C#, Visual Studio, VSTS shop and run everything using the same toolset, knowhow and processes. This will lead to a shallower learning curve, faster time to market, lower development cost and improved processes (less misunderstandings, better communication). And of course that benefits the managers, the customers and the product development companies. Now they don’t have to hire one iOS developer, one Android developer, one middle tier developer, one Web developer, each with their own tools, processes, languages and each not being able to read each other’s code. Of course there will still be specialists, and even full stack developers will likely be best at say Xamarin iOS, but you will see a lot more synergies and cross team, cross functional development.
As an authorized Xamarin partner, with MVPs and Azure Insiders on board, we are here to help. Contact us to see how you can start leveraging the C#, .NET, Visual Studio and Xamarin to build cross platform mobile iOS and Android native apps that tie into a cross platform .NET Web API, with a modern HTML front end, and integrating with your legacy .NET middle tier and SQL Server database! We have done several projects recently where we use ALL of the technology mentioned above, to augment existing systems with powerful new capabilities! It’s an exciting new world out there, and it just came sharply into focus!
John and J.