Develop Universal App that runs across Windows, Windows Phone and FirefoxOS

With this release of the Windows developer platform of universal Windows apps, Microsoft sets out to accomplish three major goals: 1) Reach customers across phones, tablets, and PCs; 2) Deliver innovation that supports developer investments; 3) Make cross-platform technology easier and more capable.

Starting Windows Phone 8.1, it is now possible to use the Windows Runtime to build apps that can target each form factor in the family of Windows devices. Using the universal Windows app project templates, you can now create one app where your business logic can be surfaced up through a user experience relevant to the device. This unified approach to app development means that your app has the potential to reach not just Windows phones and tablets, but Windows laptops and workstations as well.

Creating a new Visual Studio solution using the shared project template will produce a Visual Studio solution configuration that includes a shared project space where you can define the code to share between an app targeted for tablet & PC and another targeted for phone. It will also establish separate projects for elements of the app that are unique to either. A number of improvements is included in Visual Studio 2013 Update 2 to support universal Windows app development for all Windows devices.

You can build an app for Windows and Windows Phone at the same time, and share code, user controls, styles, strings, and other assets between the two projects in Visual Studio. This reduces the expense associated with building and maintaining an app for each type of device. The universal  app templates in Visual Studio is currently available in JavaScript, C#. VB and C++.

If you already have a Windows Store app, you can easily add a Windows Phone Store app to the same solution. Similarly, if you started by creating a Windows Phone app, you can easily add a Windows Store app.

With the open sourcing of WinJS, it might be interesting to see if we can build an app that runs across phone, Windows and another platform such as Firefox OS. Martin Beeby did an interesting demo on building a JavaScript app and see how far we can take it.