With Windows 8 and its radically redesigned Metro interface, Microsoft is offering software developers a new set of challenges and opportunities. Rather than reusing tactics from building for previous versions of desktop Windows, developers are creating applications in the style introduced on Windows Phone, and making them work across the larger screens of multitouch tablets and keyboard-and-mouse-driven PCs.

With the Windows 8 Consumer Preview out, many developers have already built preview versions of the apps they plan to offer Windows 8 tablet and PC users. We spoke with the creators of Photobucket's Windows 8 application to get their take on the Metro development process.

The beta-quality Photobucket app was built in Visual Studio 11 using C# and XAML, said Luke Swanson, VP of engineering at Photobucket, and Jerome Laban, a developer for Photobucket contractor nVentive. For the new Metro user interface, Photobucket was able to reuse some code originally made for Photobucket's Windows Phone application.

Code convergence

"We were able to use the C# library that we built for Windows Phone to interact with Photobucket APIs, and reuse that in the Windows 8 platform," Swanson said.

"We took an approach directed at developing on both platforms," Laban added. "That's why we were able to share a lot of code."

The Windows 8 application will work across both x86 and ARM systems. But Swanson is hoping that Microsoft provides more convergence across platforms after Windows 8 is finalized.

"One thing that would be nice is the convergence of Windows Phone, the Metro interface, and even down the line the Xbox and other platforms. Having the ability to have more code reuse, especially on the UI side, across those platforms is something that would be extremely powerful for Microsoft," Swanson said. Ideally, he said, "a developer could build a Windows Phone application and the majority of that code could be ported over to be used on the Windows 8 metro interface or even on the Xbox."

Do users want Metro, "regular" Windows, or both?

The biggest challenge for Microsoft—and application developers—in Windows 8 may be the task of building applications and user interfaces that work well across both desktop and tablets. Photobucket, which already has mobile apps for iPhone, iPad, Android, Windows Phone, and BlackBerry, is building new applications both for Windows 7 and Windows 8.

Photobucket will eventually decide whether to merge the "traditional" Windows desktop application with the Metro-styled one.

"We're looking at the pros and cons of that," Swanson said. "The Windows 7 application we're working on right now sort of monitors the file system and uploads photos to the Photobucket cloud asynchronously in the background, and the Windows 8 application we've built has a much richer user interface and is more about the consumption, viewing, browsing and sharing experience. We're looking at whether we can combine those two into one application or if we can keep the background uploading and syncing application as a separate program."

The adoption rate of Windows 8 and the Metro interface compared to Windows 7 will play a big role in Photobucket's planning, Swanson said.

Windows 8 apps are not silos

Windows 8 does offer some advantages over existing versions of Windows, Swanson and Laban said. The various "contracts" Windows 8 offers developers are plug-ins aimed at letting applications work seamlessly together instead of acting as isolated silos of data. The file picker contract "allows our application to work with other applications in the Windows 8 environment without having to know anything about them," Swanson said.

This, for example, would let Photobucket share photos to a Facebook application. Alternatively, PowerPoint could more easily grab a file from Photobucket.

In previous versions of Windows, "there's no way to share content from one application to another without knowing exactly what you have to exchange between the two," Laban said. "This is very powerful for us. Previously, it was pretty difficult to do that kind of stuff across a wide range of applications."

Live tiles, which show updated application information on the start screen, are another new development that offers something unique. They let Photobucket show users notifications and photos other users have uploaded, or other types of updates, before they even click on the application icon. "That provides a richer experience even when you're not using the application," Swanson said. "You can get a quick snapshot. It's completely different from anything iOS or Android supports right now."

Background processing—but not too much

The ability to share data across applications with contracts is more similar to Android than Apple's iOS, he said. Like Android, Windows 8 also allows more background processing than iOS, but it doesn't get too crazy because of battery life concerns.

"The background processing is specifically designed for scenarios like real-time communication, audio streaming, updating the user tile," Laban said. "It's not a free-for-all. It's understandable, it's important to have the longest battery life possible. You don't want applications running in the background all the time and doing whatever they want."

Although Photobucket aimed to make the application "touch-first," it also made sure not to neglect keyboard-and-mouse users. "We used a lot of Microsoft's recommendations with regard to how to build a good Metro application," Swanson said. "It's sort of making sure that it's touch-first, thinking about how big hit targets are and not doing things like a hover that don't work on a touch interface, and really taking advantage of the contracts, and the horizontal scrolling."

While Windows 8 applications are designed to be full-screen, developers also have to support a "snap view," a miniature version of the application for when users have multiple windows open at once. By the time Windows 8 is released as a final product, the Photobucket application will expose many more Metro capabilities.

"I would consider it a phase one beta," Swanson said. "For phase two, we want to implement video uploading and playback into the experience. We want to take advantage of Windows 8 metro features like semantic zoom, which lets you zoom out and present the content differently at different levels based on how zoomed out you are. We think there's some interesting things you could do there, and some better integration with the share contract. We feel like the application we have out there is a great starting point and a great beta to get feedback from users."