Windows 8 App Development: A Burden or a Breeze?
Redmond, we have a problem.
With PC sales stalling and tablet sales booming, Microsoft decided to shed the shackles of its desktop-focused past in favor of a touch-friendly, mobile-first future. It's goodbye Start button, hello Start screen. Icons are out, tiles are in.
The new look-and-feel in Windows 8 (Microsoft wonkily calls it the "Modern U.I. Style") also beckons a whole new software ecosystem—apps created specifically for the new tile-based interface. And therein lies the rub. The apps just aren't there yet, either in quantity or quality.
A Microsoft vice-president just publicly stated that his company will “aggressively pursue 100,000-plus apps over the first three months," but nothing about the current Windows Store app inventory (it's hovering just below 4,000 for all storefronts worldwide) suggests such lofty goals will be realized.
Our previous examination of the state of the Windows Store detailed some of the reasons why developers might not be flocking to Microsoft's baby. One widespread sentiment posits that developing apps for an unproven Windows 8 ecosystem doesn't make as much fiscal sense as putting the finishing touches on apps for the already established (and thriving) Android and Apple marketplaces. Meanwhile, some developers echo Valve honcho Gabe Newell, finding only craven motivations in Microsoft's move to the "walled garden" model.
Still, we pondered, could part of the scarcity of apps be placed at the feet of plain old technical difficulties rather than high-minded moral ideals? Just how easy is it to create a Windows 8 app?
The question holds implications for more than just Windows 8 launch day. If Windows 8 takes off in a stratospheric way—and it very well could, considering the OS will be installed on the vast majority of PCs sold after October 26th—an easy development process would smooth the transition for currently hesitant developers who decide to hop on the gravy train at a later date. On the flipside, however, a coding nightmare could help to cement the dominant positions of the entrenched iOS and Android platforms.
So what's it really like developing a Windows 8 app? We spoke to a handful of top developers who are already working with the platform to get a clear view of the situation.
Using the Windows 8 Software Development Kit
Microsoft supports several programming languages with its Windows 8 SDK. The developers we spoke to said that versatility makes developing Windows 8 apps a breeze, particularly if you have a background in developing for Windows or Web apps, or if you're familiar with C++ or C#.
"It's been a pretty straightforward transition with the Windows 8 SDK, in translating our app to that platform," says Jonathan Sasse, senior vice president of Product and Programming at Slacker Radio. "Certainly, from our perspective, it's on par with implementing other operating system SDKs that we've done before. In fact, in some cases, it might've even been a little bit easier."
Others developers sang the same song. Richard McKinney, the chief technical officer for Halfbrick—best known for Fruit Ninja—calls the platform's WinRT API backbone "great for C++ developers, and good for other developers."
Developers who use cross-platform C++ and C# development tools to create apps for other platforms will find the transition just as easy. "Once you've set up your core framework, (the new Windows APIs) really just get out of your way and let you use cross platform C++ code to do what you need," McKinney says.
Hitcents, whose Draw a Stickman Epic will be available when the Windows Store officially launches on October 26th, developed its apps using Xamarin's cross-platform Monotouch and Mono for Android. "This allows us to use the same language, C#, and share code between all platforms," senior application developer Jon Peppers says. "I was able to port our game to Windows 8 in less than four hours, not counting the time to resize things to fit the new screen resolution." (Peppers and his Hitcents cohorts have posted a brief YouTube video describing the benefits of using Xamarin tools to create cross-platform apps.)
Business apps wouldn't port quite as quickly, and the process wouldn't have been so swift, without the cross-platform Xamarin tools, Peppers notes, but JamPot CEO James Scott says that the easy transition to the Windows 8 SDK enabled his company to get its Windows 8 app support up and running in half the time it took to get its Android or iOS service off the ground.
Where Are The Native iOS and Android Ports?
So developing Windows 8 apps shouldn't be difficult for developers with a Windows, web or cross-platform background. But is the transition just as seamless for developers who cut their teeth diving into the native languages of competing platforms, such as iOS's Objective-C or Android's Java?
That's a bit more difficult to answer.
Tracking down a dedicated Android or iOS developer that's making the jump to Windows 8 is like trying to find a diehard fan of EA's Origin gaming service: They just aren't out there, and the hesitance has little to do with technical hurdles. If you spend any amount of time in Android and iOS developer forums, it quickly becomes obvious that the majority of developers who are dedicated to competing mobile platforms plan to stay dedicated to competing mobile platforms until Microsoft proves that there's money to be found in creating Windows 8 apps. Fortunately, a few of the Windows 8 developers we spoke to offered some insights about the hurdles faced by developers only steeped in iOS and Android work.
"If you're starting from scratch or coming from another environment like iOS or Android, you should find everything very straightforward," says Halfbrick CTO Richard McKinney, though he admits that porting native iOS and Android apps to Windows 8 would take a while. "If your gameplay code is written directly in Objective-C or Java, you'll need to port all of that over in addition to the platform code." Hitcent's Peppers agrees that porting non-cross-platform iOS and Android apps to Windows 8 could "take some time."
Even still, the small bumps presented by the Windows 8 SDK pale compared to the hoops developers originally had to jump through to work on mobile applications. "You hear some people complaining about [development] hurdles, but it's nothing compared to the original hurdles face when Apple's Xcode [integrated development environment software] came out," says JamPot CTO James Barr. "That was a big challenge to get people started on iOS."
The Windows 8 developers we spoke to don't agree with the wait-and-see approach of the hesitant Android and iOS developers. "Windows 8 isn't a new device that we're unsure is going to succeed. It's the next generation of the most popular operating system in the world," says McKinney. "There is a guaranteed huge audience there."
Lean On Me
Having a flexible SDK is nice, but developers spent just as much time praising Microsoft's support infrastructure, starting with the Visual Studios 2012 software used to create Windows 8 apps.
"Visual Studio 2012 is the best IDE in the world for developing games," McKinney says. "No other IDE even comes close to the speed and power of Visual Studio." JamPot's Michael Barr agrees, saying that Visual Studio has "really nice debugging tools built-in and really nice test kit tools out of the box."
Microsoft's software evangelists earned a heap of praise from the Microsoft faithful as well. Every single developer we talked to worked closely with an evangelism team, and all say the mutual benefit is nothing short of heavenly.
"We have a good working relationship with the evangelism unit within Microsoft," says JamPot's Scott. "We work with those guys and they support their developers through things like providing devices and heads-ups when new things are coming out. If there are any problems, they feed it back into the organization. They're very easygoing guys to work with, and they're very open as well."
Microsoft's developer assistance doesn't end there. The company helps would-be Windows developers get a handle on Microsoft software through initiatives like BizSpark and DreamSpark, programs that dole out free subscriptions to premium-priced development tools for technology startups and students, respectively. Once you've got your hands on some development tools, the Windows Apps Dev Center provides an abundance of helpful documentation and a packed developer forum.
The company also holds free Windows developer camps all over the world on a near-daily basis, where developers can learn from experts in an interactive environment and then try their hands at what they've learned.
Want to learn how to create an app that's flawlessly, well, "Modern"? Microsoft has teamed with top design agencies around the globe to teach them the principles of the Modern U.I. Style interface, and it points inquiring developers in those agencies' direction when necessary. Sometimes, Microsoft even foots the bill for developers to receive up to 40 hours of design education from its agency partners.
Finally, a Microsoft rep told us that the company also plans on reintroducing its App Excellence Labs program—which has been on hiatus since the Windows 8 Consumer Preview hit—in the form of retooled Windows Store App Labs. At the registration-only events, developers will receive access to both x86- and ARM-based Windows 8 devices in various form factors, along with hands-on development assistance from Microsoft engineers and design tips from the aforementioned interface experts. The Windows Store App Labs will kick off in 30 locations around the world on October 15th, though the design help won't be available until after the official launch of the operating system on October 26th.
But there's still one carrot that Microsoft isn't waving in front of Windows 8 developers: paid subsidies to create apps. Microsoft doesn't offer cash payments as an incentive in any way, contrary to what RIM is doing to stimulate BB10 interest. The developers we spoke to confirmed that they hadn't received any monetary assistance to create their Windows 8 apps. What remains to be seen is whether the no-subsidy policy will stay in effect if the Windows Store fails to fire on all cylinders at launch.
Developers! Developers! Developers!
Between the flexible yet straightforward SDK, the powerful Visual Studio development software, and a robust support infrastructure, Microsoft has squashed the major concerns usually associated with jumping ship to a new platform. Meanwhile, tools like JamPot's TheAppBuilder help even non-developers hop on the Windows 8 bandwagon with DIY app creation services that require no coding experience whatsoever.
Steve Ballmer's focus on developers! developers! developers! could pay long-term dividends for Windows 8 adoption, but it looks like the strategy may just pay off in the short run as well. According to Microsoft analyst Wes Miller's WinAppUpdate.com, the Windows Store currently offers nearly 4,000 apps worldwide, a number that's almost doubled in just over two weeks. The Windows Store's growth rate still isn't exponential enough to challenge the hundreds of thousands of apps available for Android and iOS, but it's looking like Microsoft could very well hit the magic 5,000 app number analysts say is crucial for early Windows Store (and Windows RT) success.
Of course, keeping the bar low acts as a two-edged sword. The Windows Store might be growing rapidly, but most of the apps available now are, well, uninspired at best and flat-out bad at worst. The shoddy state of the current app selection prompted WinAppUpdate's Miller to go on a quality-related rant at the beginning of October.
"You’ve got almost one month before the Windows Store goes live," he pleaded in a recent post. "Take the time to build a few great apps. Don’t build a mass of mediocrity. There’s already app stores that do that."
Will developers step up their game? Can Microsoft's excellent app framework entice the masses to Windows 8? Those questions won't be answered for a while, but one thing is already certain: Microsoft is doing everything it can to give developers everything they need to make Windows 8 apps a success.