Mobile devices today live and die by the Apps they have. Gone are the days when one used a mobile device to make phone calls, have a contact/address book and keep a calendar. The iPhone changed all that. If one has a mobile device, say a cool smart Phone, users will only want to use the device if there are cool Apps, in fact 1000s of Apps to choose from. Else, the device will die!
Microsoft, with its Windows 8 Surface device and the Windows Phone has this very problem – a cool set of devices, but very few Apps. Microsoft will not release official numbers, but a consultant who works with Microsoft technologies tells me that more Apps are submitted to the Apple App store every month, than there are Windows 8 Apps in the entire Microsoft App store, period. So, Microsoft is on a war effort to drive App development for Windows 8 Apps. They are doing free online webinars, giving free tools (MSDN) and even holding free classes (dinner included) in local Microsoft stores.
Win32 v WinRT
But what is a Windows 8 App and how is it different from a legacy Windows desktop application? Windows desktop Apps have been around for years and quite frankly, windows still rules the PC market, especially in enterprises. The key difference is the new Windows Runtime (WinRT) platform. This is a new platform with its new capabilities for touch devices and other mobile capabilities. The old platform is what is known as the Win32 API. This API is what allows traditional desktop apps to communicate with the OS. The new WinRT platform includes APIs specific to mobile/touch devices. Remember, many new PCs are touch devices too. The good news is that WinRT will be a common platform, with a common API across the Windows 8 PC, Windows 8 RT (that runs on the Surface device), the Windows 8 Phone and the Xbox. This of course, is a big plus for developers as they can really develop once and deploy across all operating systems by Microsoft. Furthermore, traditional/desktop windows applications that use the Win32 API can also use the WinRT API to access touch capabilities. Another big difference between Win32 and WinRT is that WinRT is written in C++, making it Object Oriented in its behavior and interactions with Apps. Win32 was written in C.
A note about the Surface tablet. The current Surface only runs Windows 8 RT. So, it can only run WinRT Apps. It does not run desktops or Win32 Apps. Microsoft has announced a Surface Pro device that will run the full PC version of Windows 8, just like a PC, that can run Win32 and WinRT apps.
In terms of development, WinRT also changes the install process for Windows app radically. WinRT takes apps in a single file install, just like Android and iOS. No more installers that put files in folders all over the hard drive!
XAML is another new capability introduces recently by Microsoft. It is a language focused primary for design. Designers can now use a tool call Blend to design Apps and it integrates with Visual Studio, allowing developers and designers to collaborate. This is a great move by Microsoft, as design and UX is critical to the success of mobile Apps.
Will this be a winning strategy from Microsoft to get developers on board? Do Android and iOS finally have competition? Time will tell. In the meanwhile, I installed Windows 8 in a VM and am running it on my MacBook Air (It blazes). Will be trying out some Apps from the Store. More to come.