Xamarin : Past, Present & Future
A year ago, at the Build 2016 Conference in San Francisco, Microsoft announced the acquisition of Xamarin. I thought it would be interesting to look at some of the Xamarin milestones from the past year and their business impact.
One year later, it is interesting to see where Microsoft and Xamarin made progress, and where they are going.
The XAML Standard 1.0
The most compelling Xamarin milestone in the past year was the creation of the XAML Standard 1.0. To understand what this is, we need to take a quick look back in history.
Microsoft released the XAML markup language in 2006.
- Previously, it was utilized to create user interfaces for Windows Presentation Foundation.
- While other environments were already using markup for the UI (such as HTML…), XAML was very popular
- Most interestingly, it played extremely well with Microsoft’s visual designer - Expression Blend.
- XAML allowed the developer to choose how she worked, either visually in Blend, or directly in the source code editor.
XAML was also used with other .NET based platforms such as Silverlight and Windows Phone. Later, it was adopted as a first-class citizen in Windows 10. When Xamarin.Forms was first created, and after a few initial preview versions, the team decided to also adopt XAML as their markup language for the user interface. However, things are never easy in technology. Because Xamarin was not Microsoft yet, there were a few discrepancies between “Windows XAML” and “Xamarin XAML”. While it can be argued that these differences weren’t difficult to learn, they did introduce a hurdle to adoption.
Microsoft decided to unify all the XAML platforms by defining a standard XAML vocabulary.
The standard will evolve over time like the .NET standard that Microsoft published earlier (and is still evolving).
For the developer in a business environment, this is great news, because it means that we will be able to share more than ever before. For example, a developer can take pieces of a Xamarin.Forms user interface into a Windows 10 UWP application, or vice-versa. Most importantly it means that the small painful differences between these environments will disappear over time, and we will have one “truly universal platform”. For more details about the XAML standard 1.0, and the plans that Microsoft has for this standard, please refer to Microsoft's original blog post.
No more Mac! Xamarin Live Player
For iOS developers using Xamarin, there are two options for the development environment: Using a PC with a Mac on the network, or using a Mac as a single machine. The Apple terms of services specify that an Apple computer must be used to create the packages that will be submitted to the Apple store. Until now, it meant that Xamarin developers had to use an Apple computer to develop, test and debug the applications too, with one Apple computer per developer.
Xamarin is helping relax these requirements by providing the Xamarin Live Player. This handy tool allows Xamarin applications to be deployed directly to an iOS device without the need for a Mac. Xamarin Live Player is an app that you install on your iOS device. The application is deployed from the developer’s computer straight to the device. There is also a Live Player for Android, though the need for it is less important since you can already deploy to an Android device from a PC today.
Like before though you will still need a Mac to create the package that will be sent to the Apple store. The Apple terms of services have not changed! But the Live player will help streamline the develop-deploy-debug process quite a lot, and allow developers to work faster and more efficiently. It will also greatly simplify deployment to an iOS device for tests, which is currently very painful due to the need to sign the packages. There are a few restrictions with the Xamarin Live player, which is a work in progress, and available today in preview only. However, this is an interesting peek into a great improvement for the Xamarin developers of tomorrow. More information can be found on the Xamarin developer pages.
Other earlier improvements
Since the acquisition last year, Xamarin has announced a few other improvements too. Most interestingly, the iOS simulator can now be brought to the PC. In fact, what is happening is a remote connection to the Mac where the actual simulator is running. Xamarin then grabs frames and sends them to the PC. It seems as if you are running the simulator on the PC (but in fact you still need a Mac for this, which contrasts with the Xamarin Live Player announcement).
What’s really interesting with the iOS simulator on the PC is that this is the only way that you can test touch with the simulator. Since Macs don’t offer a touch screen yet, testing your application on the PC offers a good alternative to the real device, especially since it supports multi-touch.
The continued work on Xamarin.Forms by the team is also interesting. Xmarin.Forms has gone from being a side project that could be used to build very simple apps, to a complete solution that is compelling for business use. The ability to use native Android, iOS or Windows controls in the user interface allows developers to easily customize the pages for a specific platform, giving the user that feeling of familiarity. For example, you could easily add a floating action button to the page on an Android device, but that new button would be absent from the iOS or Windows versions, where it would be replaced by a different experience.
Interest in Xamarin has skyrocketed since the Microsoft acquisition. With its robust & constantly evolving technologies, Xamarin should always be an option for cross platform application development. The multiple enhancements made to this technology in the past year and the unification of the cross-platform landscape within Microsoft are very promising. Both the XAML standards and the Xamarin Live Player bring a new, dynamic level of efficiency to the business of developing cross platform applications.