- The Open Web as a Platform
- Reasons to Build Windows Store Apps Using Web Technologies
- Reach
- Final Thoughts
Reasons to Build Windows Store Apps Using Web Technologies
There are countless reasons you should consider building apps for Win8, but in this article, I'd like to focus on the three that I consider to be the most important: familiarity, portability, and standards. These three represent the main reasons why I started developing for Windows 8, and even decided to write a book on the subject earlier this year.
Familiarity
If you're a front-end developer who is familiar with HTML, JavaScript, and CSS, you're already familiar with most of what you need to know to build apps for the Windows Store. When Microsoft first announced Win8 at Build in 2011, I'll admit that I was skeptical. At first blush, I assumed that the claim of using HTML, JavaScript, and CSS was a marketing ploy, and that developers interested in building for the platform would be required to use custom markup, proprietary CSS, and a vendor-specific superset of JavaScript. And I know I wasn't alone in feeling this way.
Once I started playing around with the platform, though, and building apps for Windows 8, I discovered that my assumptions were wrong. Just as with web apps, Windows Store apps were marked up with HTML, styled with CSS, and made interactive with JavaScript. I felt like I was still writing for the web, not using a superset or vendor-muddled version of these languages. I enjoyed the experience so much that I decided to build an app for the store as I was working on my book.
Developing Windows Store apps presented a shallow learning curve for me because, as a front-end developer, I was already familiar with the tools of the trade. That's not to say that there was nothing specific to the platform I needed to learn. There are some vendor-specific pieces to Windows 8 here and there. In HTML and CSS, they are rare, but are always exposed in ways that embrace web standards. In JavaScript, those specific features (like WinJS and WinRT) exist to help you build within the confines of Microsoft's Windows Store style, or provide access to device APIs (like notification, geolocation, accelerometers, and NFC) that have long been reserved for desktop developers.
There will be a few things for you to learn when you start building Windows Store apps, but this is true of every new platform—web or desktop. The advantage of Windows 8 for the front-end developer is that you have a familiar environment to work in, one that quickly puts you on solid ground so you can start building apps quickly and fill in the details as you go along.
Portability
Writing native apps using web technologies allows you to transfer your skills to multiple platforms, but there's a corollary here that's also true. Writing native apps using web technologies allows you to transfer your apps to multiple platforms as well. This is part of what I mean by portability. The ability to use HTML5 and JavaScript to create Windows Store apps unlocks Windows as another option for cross-platform device development.
Much of what makes this portability possible is the same factor that ensures the familiarity of building apps for Win8. That factor is standard HTML, CSS, and JavaScript. Not only did Microsoft bake web technologies into the platform, but affirmed its commitment to the web standardization process by implementing many features that fall under various HTML5, CSS, and ECMAScript standards. A few of these, like CSS Grid Layout, are features that Microsoft was among the first to implement. Some of these standards even changed during the time between Microsoft's first Developer Preview of Windows 8, and the RTM in August 2012. One example was the CSS Flexible Box Model specification, which saw a fairly drastic syntax change earlier this year. Rather than declare it too late to change its own implementation, Microsoft made the choice to stick to the spec and rolled out an update with the next preview release of the OS.
It's this commitment to standards that encourages me as a front-end developer, because it makes building apps for Win8 feel like building a cross-platform app from the start. I know that I could take the apps I've written for Win8, remove or replace some API calls, and have a functional app in Chrome or in iOS with PhoneGap. The same goes in reverse. If I'm building apps with PhoneGap today, I already have the makings of a Windows Store app. There will be changes, of course, as there should be for any cross-platform app, in order to adhere to the style guides of the platform. The key here is that Microsoft isn't trying to lock me into its platform; it’s trying to free me to build for it.