Thanks for visiting my blog!
Let me be clear…you *can* create HTML5/JS/CSS applications for Windows Phone 8. Yup. In fact, you could do it with Windows Phone 7 and 7.5. This is how PhoneGap works. The XAML page simply hosts a WebBrowser control and loads all of the assets locally in the XAP. What you can’t do is create WinJS application. Let’s step back a little and explain that better.
Windows 8 and Windows Phone 8 were both highly publicized releases this last week. One of the things that is not all that obvious to the casual observer is that the biggest change to Windows Phone 8 is that the underlying operating system now uses the same core as Windows RT (e.g. Windows 8 for ARM). In fact, the new phone SDK supports DirectX, C++ and creating WinRT components. All very cool.
The problem with the big pep rally around Windows Phone 8’s new inclusion of a built-in template for a HTML5 phone application is that it implies that you can write Windows 8-style JavaScript based applications. That you cannot. I heard the phrase “sharing code between Windows Phone 8 HTML5 applications and Windows 8 JavaScript applications” a few times. You can share code, but none of the UI code. You can share business logic and other non-UI specific code. Again, this isn’t new.
The big benefit of Windows Phone 8’s ability to create HTML5/JS application isn’t in the SDK…it’s in the operating system: IE10. IE10 is a much more complete browser and includes support for key features that made mobile apps and site difficult including Strict Mode and Touch APIs. With that rectified, HTML5 applications on the platform are indeed easier to build and better than before, but they are not Windows 8 JavaScript applications running on the phone.
True be known, this is similar to the problem with XAML applications on the phone and in Windows 8. The stacks are very similar (and indeed you can share more code between Win8 and WinPhone8 XAML apps) but it’s still building two apps.
Of course, this shouldn’t be a shock because the user interface between the two devices are pretty different. Much of that has to do with the fact that the devices are very different. The metaphors are different therefore even if you could run the same app, it would need to be different between the two devices.
I love what Microsoft is doing with WinRT and Windows Phone 8, but I wish they wouldn’t oversell some of it as it will just frustrate users once they learn the completely truth of the matter.
What do you think?