A Developer Perspective on Windows Phone 8

This blog post takes a look at what Windows Phone 8 (WP8) means for Windows Phone 7 (WP7) developers and the Microsoft development platform in general.

This has been a big week for Microsoft; Monday saw them unveil the new Surface tablet that runs Windows 8. This was followed up yesterday with Window Phone 8 being revealed to the crowds at the Windows Phone Summit (You can see a video of the keynote here).

From a consumer perspective, unfortunately WP7 devices will not be upgraded to WP8. However, they will be upgraded to WP7.8, which will give them the redesigned start screen. There have been very few details about what else WP7.8 will include, but it isn't likely to include that much.

The image above shows the new re-designed WP8 start screen. I'll talk a little bit later about some of the interesting new features of WP8, but for now let's cut to the chase, what does WP8 mean for us developers?

NOTE: Some of these statements are based on speculation / educated guesses. I will indicate when that is the case.

UPDATE - It looks like some of these assumptions are wrong, or at least might be wrong. I have posted a brief updated on this blog post. As noted above, some of the statements noted below are based on assumptions. I have left them here because I still am not entirely sure about what is or is not correct, but in the interest of providing a balanced argument i would urge that you read my update after this blog post.

WP8 devices will run all the 100,000 apps that are currently in the marketplace. The marketplace will automatically re-compile WP7 apps for WP8, meaning that your time investment in your WP7 app is safe. It also gives future users of WP8 a well-populated app store from day one.

WP8 has the same runtime architecture as Win8. Porting code between Win8 and WP8 should be very easy - apart from screen size concerns. However, Microsoft has so far only explicitly mentioned that C++ / DirectX code will work almost seamlessly between Win8 and WP8, however, I think it is most likely that the same will be true for XAML-based applications.

WP8 will not support Silverlight directly, rather, WP7 apps will be recompiled by the marketplace to provide a form of emulation. This is something of an educated guess. The fact that WP7 apps are recompiled via the marketplace in order to run on WP8 indicates a lack of Silverlight runtime on WP8. Also, this is the same story with Win8, WinRT/XAML is similar to Silverlight/XAML, yet subtly different.

Migration of you codebase from WP7 to WP8 will involve the same set of issues as migration from Silverlight to WinRT. Again, based on the above assumptions. Whilst on the surface Win8 XAML / WinRT looks and feels pretty similar to Silverlight or WPF, migration is not a trivial task. See Morten's series on migrating from Silverlight to WinRT, or my own article on writing cross platform WinRT / Silverlight apps.

This is NOT the same story as iOS or Android. I've seen a few people on Twitter try to make the point that with the recent announcement of iOS6 that iOS developers will be experiencing the same process. I'm afraid this is not the case. With iOS you can support older versions of the OS within the same codebase via simple 'if' statements, whereas in Android you can support libraries to bring newer UI features to old devices. In contrast, the differences between WP7 and WP8 are fundamental and architectural.

So why such a radical change? For a good overview I'd recommend reading Sorry, But Microsoft Screwing Windows Phone Fans Is the Right Thing To Do", in a nutshell WP7 is based on Windows CE technology, which significantly limits the hardware capabilities. Whereas the WP8 architecture provides support for up to 64 processors, a much higher screen resolution, NFC (think contact-less payment).

I've been using WP7 for about a year now, and I really think it is a great phone. I also have a iPhone and can honestly say that WP7 is a better phone for business users. The support for multiple mail accounts, a much better email client, live tiles, a very good calendar app make it a great device to use on a day-to-day basis. I don't doubt that WP8 will be even better, especially with true multi-tasking, the company hub (with device management), the improved start screen and more.

However, I think Microsoft developers are feeling a bit burnt right now. Let's not forget that WP7 was a reboot, dropping Windows Mobile 6.5. To reboot once again in such a short space of time is not good news. And as for Silverlight being dropped in Windows 8, together with other plugins, only for MS to do an about face and announce that the plugin-free IE10 browser would support Flash - that's not good news either! At the time the message from MS evangelists was that Silverlight still lives on in WP7, but there is no the denying in Silverlight.

Ex-MVP Josh Smith wrote a few months ago "Does anyone actually care about WinRT?". I've observed something similar myself (see "WinRT - where's the buzz?").

Microsoft is going to have to work hard to win the support of the development community that were right behind them on Silverlight and WPF (I was part of the WPF Disciples group, that was re-branded as XAML Disciples when Windwos 8 was announced, but has since become rather quiet). So many people I know really like the look of WP8, Windows 8 and Surface, but not many seem to be chomping at the bit to develop for them.

Regards, Colin E.


blog comments powered by Disqus