Last month at Microsoft’s annual conference Build, a lot of really cool stuff was announced across the entire product suite for developers. As a newly selected Microsoft Windows Phone Developer MVP, I have a particular interest in the announcement of Windows Phone 8.1.
As many awesome features as there are coming in this massive update for the greatest smartphone platform (yes, I am a little biased), I wanted to make mention of one in particular: Universal apps.
WHAT IS IT?
In a nutshell, this means Windows Runtime apps can now run on Windows Phone. You can still build, run and publish traditional Silverlight apps as well, and there is a swathe of new features for that, but the world’s most personable smartphone can now run your Windows 8 apps as well.
For some time there have been rumours and some action about cross-platform development and apps. This is the first step towards true multi-platform targeted apps that has come out of Redmond. Days of trying to build apps that target several platforms by using portable class libraries and then several projects for your views and front-end are now gone. Well sort of at least.
In the future, your Universal apps will also run on Xbox One. This will be another step towards truly ubiquitous apps.
WHAT CAN I DO?
You now have a large number of common APIs that work across devices with the same code. This goes for toast notifications, background processing, live tile management, menu items and much more. You can build a single project that is then able to run on multiple target devices.
The XAML components will either adapt their layout to the different form factors, or there will be a different implementation for each. As a developer though, you just use the one control. Easy.
WHAT CAN’T I DO?
There are certain APIs that aren’t available when building Universal apps. These include using alarms and reminders, integrating your app as a Lens (for integrating with the camera), use the GPS background process, and using the camera chooser task.
There is a distinction between the two approaches, and you need to understand what you can and can’t do before choosing one app type over another.
WHAT DOES IT MEAN FOR YOU?
This is the coolest part. You can now build one app that runs on phone, phablet, tablet, desktop and everything in between. You can truly build something awesome once that works across platforms and provides a much better return on investment. You can sell the same app on both phone and desktop with no extra work. This makes cross-platform development a breeze.
WHICH FRAMEWORK SHOULD I CHOOSE?
If you are slightly confused by now, I don’t blame you! There are now two frameworks to choose from when developing Windows Phone apps. Should you choose traditional Silverlight apps, or use the new Universal apps?
If you are already building an app, the easiest option is to keep using the Silverlight framework. You avoid any rewrite this way and you can use all of the new 8.1 features without rework.
If you are building a brand new app, I would recommend using the Universal app, unless a specific feature only available on Silverlight apps is needed. I believe Universal apps are the way of the future for most apps, especially if you are building a relatively simple project that isn’t relying on specific phone features.
HOW DO I GET STARTED?
To get started with Universal apps, you need to download the latest version of Visual Studio, which is available here.
Then start your first Universal app project by following the MSDN documentation. Happy coding and enjoy being twice as productive!
For more information, the announcement about Universal apps can be found in the Build Day 1 Keynote presentation in the developer update section given by David Treadwell, starting at 01:08:49 in this video from Channel 9.
Additionally, if you’re use Telerik, it appears they are gearing up for Universal apps, too!
This post was originally written by Lars Klint for DVLUP