Not afraid to go cross-platform
Microsoft has recently shown what it means by mobile first. It has acknowledged its lack of leadership in the mobile device space and started to build great user experiences on iOS and Android. It encourages its developers to do so as well.
The first cross-platform surprise I got was during the installation. I was asked if I wanted to install Xamarin tools. Of course you still need the appropriate Xamarin license to use the tools, but that was one less thing I had to install after Visual Studio. Microsoft is really embracing its partnership with Xamarin. If you have an MSDN subscription, take a look at the benefits it provides to subscribers.
If you don’t have a Xamarin license, don’t worry: Visual Studio 2015 can still help. In the past there was something called Multi-Device Hybrid Apps for Visual Studio (Microsoft naming at its best). This has been renamed to Visual Studio Tools for Apache Cordova. Apache Cordova makes it easy to build, debug and test cross-platform apps that target Android, iOS, Windows and Windows Phone. I have not used Apache Cordova, and in the past it has gotten a bad reputation for producing applications with poor user experience. I still say that for rich user interaction, you need to go native. But over time Apache Cordova has improved, and Microsoft has continually improved the tooling for developers. Here are some of the highlights:
- Debugging an iOS version of your app from Visual Studio when it is deployed to the iOS Simulator or a connected device on a Mac
- Improved security and simplified configuration for the included remote iOS build agent
- An improved plug-in-management experience that includes support for adding custom plug-ins to your project from Git or the filesystem
- Select platform-specific configuration options from an improved config.xml designer
- Support for Apache Cordova 4.0.0.
One of the biggest pain points with cross-platform development is testing. You either have to use emulators or buy devices to test your apps. Microsoft provides excellent support for Windows Phone emulators, with a wide variety of configurations to choose from. They have even committed to providing images of Insider builds as each is released, along with SDK updates.
When it comes to iOS, you are out of luck. You have to use a Mac to run the emulator or deploy to a device.
For Android, there are a plethora of emulators to choose from. Most of them clash with Hyper-V, which is required for Windows Phone emulation. Plus most of them are extremely slow. Microsoft now provides an Android emulator in Visual Studio 2015.
The Microsoft Android emulator resolves the Hyper-V conflict, provides a wide variety of sensor simulations, and supports Android versions 4.4 (KitKat) and 5.0 (Lollipop). Using this emulator has been night and day from the other emulators out there. I also like the fact that I no longer have to turn Hyper-V on and off depending upon the platform for which I was testing. This has definitely sped up my development of cross-platform applications.
There is another cross-platform ecosystem for which Microsoft would love for you to develop apps with, and that is the breadth of Microsoft Windows 10 platforms, which include the following:
- IoT devices
One of the biggest additions to Visual Studio is the Universal Windows Platform. The Universal Windows Platform is used to create one project and have it run on all the devices listed above. For the last couple of years Microsoft has been converging their APIs into a unified set of interfaces. With Windows 8/8.1, they were close. Windows 10 is the culmination of this effort.