This is a follow up to my previous post (“Where are the Mobile Windows Devices?“) in which I gave my initial impressions of mobile windows devices. As part of our assessment of these devices we also developed a few apps and this post details how that went.
Windows Phone 8.1 applications have to be developed on Windows 8.1. I am using a Mac so I installed Windows 8.1 Enterprise Trial (90-day Free Trial) in a Parallels VM. In order to run the Phone Emulator (which is also a VM and so I was running a VM in a VM), I had to enable Nested Virtualization in Parallels.
Development is done in Visual Studio, I don’t think you can use any other IDE. You can download a version of Visual Studio Express for free.
Finally, you’ll need a developer license to develop and test a Windows Store app before the Store can certify it. When you run Visual Studio for the first time, it prompts you to obtain a developer license. Read the license terms and then click I Accept if you agree. In the User Account Control (UAC) dialog box, click Yes if you want to continue. It was $19 for a developer license.
There are 2 distinct ways to develop applications on the Windows Platform.
Using the Windows Runtime (WinRT)
Applications build with WinRT are called “Windows Runtime apps”, again, there are 2 types of these:
- “Windows Phone Store apps” are WinRT apps that run on the Windows Phone.
- “Windows Store apps” that run on a Windows device such as a PC or tablet.
What’s really cool is that Visual Studio provide a universal Windows app template that lets you create a Windows Store app (for PCs, tablets, and laptops) and a Windows Phone Store app in the same project. When your work is finished, you can produce app packages for the Windows Store and Windows Phone Store with a single action to get your app out to customers on any Windows device. These applications can share a lot of their code, both business logic and presentation layer.
Traditional (Not using the WinRT)
Applications that do not use the WinRT are called Windows desktop app and are executables or browser plug-ins that runs in the Windows desktop environment. These apps are typically written in Win32 and COM, .NET, WPF, or Direct3D APIs. There are also Windows Phone Silverlight apps which are Windows Phone apps that uses the Windows Phone Silverlight UI Framework instead of the Windows Runtime and can be sold in the Windows Phone Store.
To deploy to my device I had to first “developer unlock” my phone (instructions).
Deployment is a breeze from Visual Studio, just hook up your phone, select your device and hit deploy. The application gets saved to your phone and it opens. It appears in the apps list like all other apps. You can also “side-load” applications to other windows machines for testing purpose, just package your application up in Visual Studio, put it on a USB stick, stick it in the other Tablet/PC and run the install script created by the packaging process.
For best User Experience when developing Universal Apps using JS/HTML5/CSS3 you should develop Single Page Applications (SPA). This ensures there are no weird “page loads” in the middle of your app running. Users will not expect this from their application, remember, these are universal apps and could be run by a user on his desktop.
State can be easily shared between devices by automatically roaming app settings and state, along with Windows settings, between trusted devices on which the user is logged in with the same Microsoft account.
Applications on the Windows App Store come with build in crashanalytics: This is one of the valuable services you get in exchange for your annual registration with the Store, no need to build it yourself.