Windows Phone 8 development: How to get started

TECHREPUBLIC [28/01/13]

Takeaway: Here’s the rundown of what you need to know to start developing for Windows Phone 8. We also highlight the differences between Windows 8 and Windows Phone 8 development.

With the launch of Windows Phone 7, Microsoft went out of its way to inform developers about what they needed to know well in advance of the release. With Windows Phone 8, this was not the case. The SDK was not available until very late in the Windows 8 game. In fact, the final version was not released until October 26, 2012, a few days after the formal Windows 8 launch, and well after Windows 8 was available over MSDN. To compound things, Windows Phone 8 devices have been dribbling onto the market well after Windows 8 computers were available.

All the same, Windows Phone 8 does represent a possible market opportunity for developers, especially with Microsoft pouring so much money and effort into marketing the Windows 8 launch. The strategy may be working. I recently priced out Windows Phone 8 phones from AT&T, and saw that a number of the Nokia Lumia 920 colors were sold out, and that Windows Phone 8 was given the most prominent part of the site.

To get started with Windows Phone 8, you need the SDK. Unfortunately, you also need Windows 8 if you want to use the emulator (and really, what good is it without the emulator?). Even worse, I found that Windows 8 is not a good experience within virtual machines, thanks to its dependence on mouse cursors being near the edges and corners to trigger important parts of the UI. I am not reviewing Windows 8 here, but I am saying that as someone who has used Windows 8 off and on for about a year to try out development, I highly suggest that you have a Windows 8 physical PC or run the VM in a full screen mode with the mouse fully captured (unable to go past the edges of the VM’s screen) if you are going to do a substantial amount of development for Windows Phone 8.

The SDK will install next to an existing Windows Phone 7 SDK installation, and if you do not have Visual Studio 2012 installed, it will install a standalone version. The Windows Phone 8 SDK is also the SDK for Windows Phone 7.5 (”Mango”) to existing Windows Phone 7 devices, so there is something here for you even if you plan on sticking to the existing Windows Phone 7 market.

I installed the Windows Phone 8 SDK on a Windows 8 Pro that already had Visual Studio 2012 Ultimate on it. My installation was not a good experience. It required a reboot, and afterwards when it was performing the “cleanup” stage of things, there was an error. It does not seem to have affected the installation, but there are probably some temp files floating around. Once you have this installed, no other installations are needed to get started. Also note that along the way, Hyper V is going to get installed on your Windows 8 machine. This is needed to support the emulator.

If you have been working with Windows 8 and are wondering if it makes sense to port your app to Windows Phone 8, you will be curious about the differences between Windows 8 and Windows Phone 8. The biggest difference is also the most baffling. Windows 8 introduced support for HTML + JavaScript as a UI/coding combination. This was a smart move to bring in developers who had gotten used to that platform and have them quickly get on board with Windows 8, but this is missing in Windows Phone 8 yet you can work in C++ on Windows Phone 8. Yes, I know that Herb Sutter (a major C++ thought leader) has a lot of pull at Microsoft and folks keep predicting a resurgence of interest in C++. And yes, I know that C++ plus DirectX3D on Windows Phone 8 promises great things on the gaming front. But to have spent the time and effort to get HTML + JavaScript working on Windows 8 but not on Windows Phone 8 is confusing. This is the kind of mixed message that is harmful to the Microsoft ecosystem.

For the most part, the Windows 8 Runtime API has been adopted by the Windows Phone 8 SDK. There are some additions to the Runtime API to support additional phone functionality (particularly around the store). There are also a pile of new APIs for phone-only functionality. Looking at the list, they seem to be focused on SMS messaging, camera functionality, and speech recognition. MSDN has a full list of which APIs came into Windows Phone 8, what was added to those APIs, and what new APIs were introduced.

While the differences between the two are not show stoppers, I can understand why some developers will be frustrated by them, especially if they made a commitment to Windows 8 with the expectation of not needing to make a single change to run on Windows Phone 8. Those developers who went with HTML apps are up a creek without a paddle. All the same, if you are still evaluating Windows Phone 8 apps, knowing the differences up front will allow you to decide how easily your existing Windows 8 apps will translate to Windows Phone 8.

No comments:

Post a Comment