What's it like building apps for Windows 8? Developers speak out

What's it like building apps for Windows 8? Developers speak out

Summary: Some developers already have begun building Metro-style apps for Windows 8. Here's what they're experiencing so far.

SHARE:

Even though Microsoft released the Developer Preview of Windows 8 back in September 2011, I haven't found many coders already building apps for the coming platform.

But there are some out there. And a number of them participated in Microsoft's First Apps contest, announced back in December. The contest is designed to boost the number of Metro-style apps that will be available in the Windows 8 app store, an early version of which will be "turned on" in February when the Windows 8 beta is released. (Microsoft also is using its annual Imagine Cup student contest to encourage more Windows 8 app development.)

As Microsoft announced last year, those First Apps contestants who made it into the second round of the competition are getting a special "confidential" build of Windows 8 to allow them to fine-tune their apps. The contestants who have received this build are under nondisclosure agreements preventing them from sharing more about it.

I solicited feedback from a few of those who built Windows 8 Metro-style apps for the contest. I asked them all the same few questions and decided to leave this in interview form since they had so many good details to share about what's working and what isn't, at this point. A few common themes emerged: More documentation is badly needed. Silverlight and Windows Presentation Foundation (WPF) developers may have an adjustment curve -- and may find themselves missing some of the good old features they've come to know and love. And WinRT, the new Windows runtime at the heart of Windows 8, is a mixed bag for those who've cut their teeth in the Win32/.Net worlds.

Without further ado, here's what these devs had to say about their early experiences writing for Windows 8:

Tim Greenfield Software developer at Vertigo Software PuzzleTouch Jigsaw Puzzles (this app is a finalist in the Microsoft contest) http://programmerpayback.com Have you ever developed an app for Windows or Windows Phone before?

For Windows Phone, I’ve built three apps: (1 game, 1 “entertainment” app, and 1 LoB app). At Vertigo Software, we helped build some of the first Windows Phone apps so I’m very familiar with the platform. Besides building apps, I am also the technical lead for the Microsoft Media Platform Player Framework open source project which includes a version for the Windows Phone. Although the majority of my career has been building Windows apps (both commercial and line-of-business), I actually haven’t worked on many “Windows” apps in the last few years and have primarily been developing web based apps using Silverlight, HTML and JavaScript.

What kind of Win 8 app did you create? Do you consider this just a sample app, or something you might ultimately sell/give away for free?

My Windows 8 app is a jigsaw puzzle game called PuzzleTouch. It has extremely realistic puzzle pieces, supports multi-touch, and lets users play dozens of diverse jigsaw puzzles of different difficulties. It also allows the user to create their own puzzles from existing photos or camera. One of the biggest challenges I am currently facing is choosing the right business model. There are a number of strategies to generate revenue for apps and I am still considering what the best fit is for PuzzleTouch and which approach will prove to be the most successful on the platform. I can look to other platforms like the iPad for hints but Windows 8 is a unique platform with a unique marketplace and unique users. What tools did you use to build this app and why?

PuzzleTouch is written in Xaml and C#. This route was an obvious choice for two reasons: 1) I personally prefer C# & Xaml over js & HTML and 2) PuzzleTouch is based on the award winning Silverlight web site and Windows Phone app which took over three years to create and refine. Because Xaml and C# is so similar on Windows 8 to Silverlight for the phone and web, this gave me more than just a head start: it was practically already written.

What was the hardest part of building this app? Was there enough tooling/documentation?

The tooling and platform available today is a developer preview version that I’m guessing was created long before it was made available last September. Needless to say, there are many of bugs in the platform and my app required a lot of hacks to make it work. Overall, the app took me approximately 2 solid weeks to port and I spent about a third of that time hunting down obscure problems that do not exist in Silverlight for the web or phone. That said, I fully expect the platform and tools to improve dramatically with the next release.

Because the platform is so new, another difficulty others may encounter is that there has not been enough time for the community to blaze many trails. Open source projects and blog posts for the platform are just starting to appear, but for the immediate future developers need to rely on those created for derivative technologies like Silverlight and .NET or HTML and JavaScript.

If there’s a silver lining, it is that the Windows team is doing an amazing job fielding questions on the Metro developer forums.  Engineers from Microsoft are out there in force helping developers and frankly, it’s the next best thing to being able to send a personal email to the engineers themselves. After building this app, what’s your opinion of WinRT and how it will help/hurt developers trying to create Win 8 apps?

So far, I’d say my impression of WinRT is mixed but overall positive. From a C#/Xaml point of view, it is Silverlight v.Almost. The developer preview version is still missing some important features that we’ve enjoyed in Silverlight and WPF for a while now and without any transparency on what future versions will bring, we can only hope the gap will close soon.

On the other hand, there are many new platform features and respective APIs that will make it kindergarten simple to do complex tasks like support touch, mouse, keyboard, and pen with – in some cases – no additional effort. The Windows team also did a great job adding and exposing native OS features like “contracts” which essentially allow others apps to become features of your app.

But the thing I am the most excited about is the business opportunity. The app store offers an easy way to gain visibility, charge money, and create a user base and most developers won’t have to learn a new language to participate. This isn’t just Microsoft’s version of the iPad, it is also the next version of Windows; so the market potential is huge.

Anything else you’d add about your Win 8 app building experiences?

Even though I built PuzzleTouch in C# and Xaml, I am also working on another project using HTML5 and Javascript. The thing that impressed me the most was how well Microsoft put JavaScript developers on equal footing. While C++ is still king in Windows 8, JavaScript (and C#) are definitely first class citizens.

However, I do have concerns about the pace of innovation we might expect to see. First, web technologies like Silverlight and Flash have enjoyed high paced innovation because they are independent frameworks neither tethered to an OS or browser release cycle nor subject to committee approval and widespread implementation. Second, even though Microsoft has done a stellar job rebuilding the Windows runtime to support three unique app development models; technical reasons could easily throttle advances in one because it is not realistic to support in another.

Beau Gunderson Read it Later (http://www.readitlaterlist.com/) http://github.com/beaugunderson

Have you ever developed an app for Windows or Windows Phone before?

Yes, I've been a Windows developer for a long time. I started out with a copy of Visual Basic 4.0 a friend's dad who worked at Microsoft gave me when I was in middle school. I've written desktop apps (none of which are commercial) and have worked freelance on some ASP.NET web applications. Most of the Windows applications I've written are available on Github: https://github.com/beaugunderson What kind of Win 8 app did you create? Do you consider this just a sample app, or something you might ultimately sell/give away for free?

It's a reading application based on Read it Later (http://www.readitlaterlist.com/). I bought a Samsung Series 7 slate knowing that I would put Windows 8 on it and use it for development, but right now I find Windows tablets much less useful than an iPad.  There are great Instapaper and Read it Later apps for the iPad and I wanted to have something like that on my slate.

What tools did you use to build this app and why?

I used Visual Studio 11 Developer Preview (it had more features than the Express version provided with Windows 8). I also used the VsVim extension because I can't live without my vim keybindings. :) http://visualstudiogallery.msdn.microsoft.com/59ca71b3-a4a3-46ca-8fe1-0e90e3f79329

What was the hardest part of building this app? Was there enough tooling/documentation?

The documentation is lacking currently. Some things are only documented for one language--things that are documented for the JavaScript API may not be documented for C# and vice versa.

Here's the list of problems I had from my forum post: http://social.msdn.microsoft.com/Forums/en-US/windowsdeveloperpreviewgeneral/thread/bf31f74f-7a50-46bc-b2fa-df537040bbe6 - No library support (was planning on using RestSharp and Newtonsoft.Json but ended up rolling my own REST classes and using the built-in Json support) - The ObservableCollection vs. ObservableVector thing - The lack of .FindResource for finding controls within templates - The lack of an IndexedDB equivalent for C# (I ended up storing .json files in the local app files folder) - The inability of WebView to open local files, and its lack of a bindable property to set the HTML content (vs. the NavigateToString method), and the fact that you can't derive from it to provide that property yourself

After building this app, what’s your opinion of WinRT and how it will help/hurt developers trying to create Win 8 apps?

I think Microsoft is shooting themselves in the foot by intentionally crippling the WebView control.

My motivation for entering the contest was to secure access to the next build of Windows 8--I wanted to see if some of the things missing in the current build had made it in (like a FlowDocument or a RichTextBox).

Anything else you’d add about your Win 8 app building experiences?

Things mostly worked, and it was fun to learn about the new platform. It was a huge pain in the ... to work around the missing functionality and the things that were there but didn't work.

More Windows 8 developers speak out on the next page

Andy Beaulieu Physamajig (this app is a finalist in the Microsoft Windows 8 First Apps contest) www.andybeaulieu.com

Have you ever developed an app for Windows or Windows Phone before?

I have developed several game and entertainment apps for Windows Phone 7 including “Boss Launch 2”, “Bouncy McFuzzin”, and “Talking Ragdoll”. I am active in the developer community and have published libraries to help with physics games and simulations under WP7, Silverlight and now Metro. I also speak at developer groups on various technologies and have earned a Silverlight MVP award.

What kind of Win 8 app did you create? Do you consider this just a sample app, or something you might ultimately sell/give away for free?

I created a fun creativity app called “Physamajig” which lets you create and share animations using 2D physics. It’s probably best to watch a demo rather than try to explain it. Physamajig will likely be an ad-supported free app.

What tools did you use to build this app and why?

I used Visual Studio 11 as the dev tool, and chose C# as the language and XAML as the UI technology… because I am very well versed in Silverlight and these technologies allowed me to quickly become productive creating Metro apps.

What was the hardest part of building this app? Was there enough tooling/documentation?

Much of the code I used for my Windows 8 app I was able to port over from Silverlight and WP7 projects I had done in the past. However, there are lots of breaking changes and missing functionality in WinRT when compared to Silverlight 5.

After building this app, what’s your opinion of WinRT and how it will help/hurt developers trying to create Win 8 apps?

WinRT was a bit of a jaw-dropper for many developers, given that .NET Technologies have been Microsoft’s focus for the past 10+ years. Unfortunately poor messaging and an information blackout did not help matters. But the big takeaways from WinRT will be a fresh start for Microsoft platform development, focused on performance, security, and faster integration of the latest technologies – all while leveraging the skills that developers already have today.

Anything else you’d add about your Win 8 app building experiences?

If you are a Silverlight developer, you will quickly miss many of the Silverlight goodies that are missing in WinRT such as the DrawingSurface and 3D support added in Silverlight 5. Here’s hoping that some of these missing items return in future releases!

Patrick Godwin Student at the University of Michigan Networked paint application http://ximplosionx.com

Have you ever developed an app for Windows or Windows Phone before?

I’ve developed some small IT/Business apps on Windows, primarily through the use of C#/.NET. I handled some work with Infor Visual ERP, among other things. I’ve also dabbled in some work on Windows Phone 7, mainly working with XNA game development. What kind of Win 8 app did you create? Do you consider this just a sample app, or something you might ultimately sell/give away for free?

I built a HTML5/Javascript App. The app itself was a networked paint application where users could doodle on a sort of whiteboard, all in real time. I’m currently weighing my options, and am considering pursuing the app further, both on Windows 8 and Windows Phone 7.

What tools did you use to build this app and why?

To build the app client I simply used Visual Studio Express for Windows Developer Preview. For the backend server code, I worked in Node.js on Ubuntu, building and deploying the prototype to Nodester.

What was the hardest part of building this app? Was there enough tooling/documentation?

The hardest part of building the app was trying to get certain APIs to function properly. The current build is very much a developer preview, as the exception messages are either very vague or nonexistent when working with certain features. I enjoyed being able to dabble with the tooling and other new features on Win8, but over all I felt the lack of solid documentation really slowed me down. The tools, as far as I can see, are very robust and great. They just need to improve documentation during the beta. The giant Metro Style App sample pack was able to provide a lot of help, but you ended up having to dig through it to find the bits you need. After building this app, what’s your opinion of WinRT and how it will help/hurt developers trying to create Win 8 apps?

After working with WinRT for the better part of a month, I feel that it is a step in the right direction for app developers. Current Win32 Developers will have to change the way they build their systems to accommodate the new patterns of WinRT, including Async. A lot of what developers got away with in Win32 won’t fly in WinRT, as the certification requirements will likely be very strict. New developers, particularly those who have picked up .NET or WP7 in the last year or two, should be able to dive right in and feel comfortable. A lot of the concepts learned in WPF and WP7 seem to be very relevant still. And XAML developers should feel right at home in the C# tooling.

Anything else you’d add about your Win 8 app building experiences?

My initial impression of the tools was quite positive. It’s a great time to get involved with WinRT, as the platform is still in its infancy, and will need a lot of developer support to build even more robust tools. I’d like to see some more buzz within the .NET/Windows Developer community about the new tools, as I think that will be the best way to bring people to the platform. It’s part of the reason WP7 was able to get 50,000 apps in a little over a year. So I ask developers to get involved, write blog posts, go to user groups. Get excited about WinRT.

Any other readers out there been tinkering with building Windows 8 apps yet? If so, what's working and not for you?

Topics: Windows, Apps, Microsoft, Mobility, Operating Systems, Software, Software Development

About

Mary Jo has covered the tech industry for 30 years for a variety of publications and Web sites, and is a frequent guest on radio, TV and podcasts, speaking about all things Microsoft-related. She is the author of Microsoft 2.0: How Microsoft plans to stay relevant in the post-Gates era (John Wiley & Sons, 2008).

Kick off your day with ZDNet's daily email newsletter. It's the freshest tech news and opinion, served hot. Get it.

Talkback

59 comments
Log in or register to join the discussion
  • RE: What's it like building apps for Windows 8? Developers speak out

    Kudos to the guys here that have won MS contest.
    I understand no one will sell their app?
    Dazzibao
    • You always had VC++ and Delphi to build apps

      Statically compiled VC++ and regularly compiled Delphi allows you to create rich and complex application software THAT IS very small in executable size and memory footprint. Such software does not depend on any run times (CLR, JVM) or DLLs and beats everything else in performance as well. You can create complete complex executables less than 1 mb in size. Don't say you can do the same in C# or Java, the run times needed for these run to 20MB +
      GoForTheBest
      • RE: What's it like building apps for Windows 8? Developers speak out

        @iRMX

        Does C++ have a garbage collector that deletes objects automatically when you close a program? :)
        Grayson Peddie
      • RE: What's it like building apps for Windows 8? Developers speak out

        @Grayson Peddie In C++, it is guaranteed that all application memory is freed, when an application closes / is terminated.<br><br>In addition, a garbage collector can be used, where it is needed to use it. There are many available on the Internet.
        cppdeveloper
      • RE: Delphi

        @iRMX And that's why I don't understand WHY Borland/Inprise killed Kylix back then! I hear the Lazarus FreePascal compiler is multi-platform though. It would be great if a community edition of Delphi was available to run on Linux/BSDnix
        maxtheitpro
      • RE: What's it like building apps for Windows 8? Developers speak out

        @cppdeveloper: That's not true but the real reason to use C++ for developing apps is because of the RAW power of C++
        shellcodes_coder
      • Garbage collection vs performance and battery life

        Garbage collection mechanisms lead to bloated code in run times. We were field testing C# and Java code for those who had to be out in the field with laptops and no power lines nearby to charge/recharge, we found that (like everybody else) battery usage goes up drastically with C# and Java. We switched back to a combination of VC++ and Delphi and stripped down Windows services to a minimum and succeeded in extending battery life by almost 35% over CLR and JVM based code. We are still not happy with the results and we still feel that Windows 2000 properly configured could beat everything else MS has out there in terms of both performance and battery life.
        GoForTheBest
  • RE: What's it like building apps for Windows 8? Developers speak out

    It's better than Crapple and their 200,000 fart apps. when almost half the apps in your app store are fart apps, you know you're in trouble. There are actually more useful apps in the WP7 app store, than the Itoones store. Crapple even stole the idea of the store's name from Microsoft's Zune store. Zune is better than Itoones!
    Stephen-B
    • RE: What's it like building apps for Windows 8? Developers speak out

      @Stephen-B So basically you're just here to spout FUD. Really, like how old are you 5 years old?
      Tablazines
      • RE: What's it like building apps for Windows 8? Developers speak out

        @Tablazines
        You're all acting like 5 year olds IMO, everyday I get on here to read news about Msoft, and it's all the same, Apple is better than Google and Google is better than Msoft. Guess what? No one cares. It's like my professor says, if you're conversation isn't adding substance to the overall conversation, then don't bother posting it. So do you honestly think getting on here and arguing over your little baby tech devices is doing anything? It's doing something, making you look like you should be taking naps every 3 hours.
        charlesdjones1
    • RE: What's it like building apps for Windows 8? Developers speak out

      @Stephen-B The best way to install windows 8 is here: http://www.technologyfazer.com/how-to-install-microsoft-windows-8.html
      nomikhokher
    • Cool story, bro. [nt]

      [nt]
      olePigeon
    • RE: What's it like building apps for Windows 8? Developers speak out

      @Stephen-B

      Oh, I see..... "Crapple", "fart apps", "Itoones".... I get it. You are a Microsoft fanboi!

      Oh, and just for the record: The Zune was released on November 14, 2006, and the iTunes Store was launched on April 28, 2003. I'm not sure how the iTunes Store stole the store name from the Zune's Store three years before a Zune existed....
      benched42
      • RE: What's it like building apps for Windows 8? Developers speak out

        @benched42

        Stole?

        Ford was in business before Chevrolet was...Guess everyone else that followed is just stealing...

        That and Apple has never had a product fail...want links?
        Raid6
      • RE: What's it like building apps for Windows 8? Developers speak out

        Sorry no post
        jsargent
  • RE: What's it like building apps for Windows 8? Developers speak out

    Let's start with the fact that in terms of what it offers, WinRT is not far off what Silverlight (SL) or WPF offered. I would argue, it's not even as capable as either WPF or SL (OOB). And the way it is right now, it's in no-shape or form a replacement for Win32 as a whole, it's more like .NET, a wrapper around Win32/OS functions, with a black-box like implementation - implying, it has the potential to bypass Win32 internally. However, currently it doesn't offer either OS hooks or extensibility options to effectively replace Win32 (e.g. connecting directly to db, or change OS-level settings). <br><br>On the other hand, what it brings two things above and beyond WPF/SL; one, a standardized/unified rendering engine, that works with .NET, Javascript, and C++. That's a big addition, but the core concepts are not far from either WPF or SL. The other thing it does bring is optimization or added capabilities to handle touch based input, and this is natively baked in. <br><br>The above is all good, but it doesn't address one of the fundamental problem that has besieged all Microsoft UI efforts - performance. The reason why this is being undertaken in the first place (beyond unification perhaps), given it's not that different from WPF, is that neither WPF or SL can offer performance close to what's achievable with iPad given the same amount of computing resources. That's the gold standard, that I think WRT fails to meet as it stands now - but I would reserve final judgement given we are still in pre-beta stage. <br><br>The other problem with WRT is that it doesn't work in the desktop mode, which is IMO quite a big limitation as there is no graceful fallback if you want the same code-base to work in the desktop mode too. WPF/SL and WRT, performance characteristics are sufficiently different that one would need to duplicate or re-do a lot of the UI to have apps work in both modes. That might be by design, but it's a big failing IMO.<br><br>So apart from the standardization/unification of the rendering engine across the three platforms, I'm not sure WRT is that big of a boon. And it doesn't fundamentally change the landscape of Windows UX, which is a shame because it just became a bigger chore with one more option that you are forced to use if you want to target the tablet form-factor.
    Orktane
    • That's because iOS development

      @Orktane is still Objective C xcode based. You're writing real C without a runtime.
      Mac_PC_FenceSitter
      • RE: What's it like building apps for Windows 8? Developers speak out

        @rbethell true, but that's still the gold-standard to meet - runtime or no-runtime. And in its current incarnation/state, I don't think WinRT meets that standard whilst being the only game in town (for Win8 tablets' that is).
        Orktane
    • RE: What's it like building apps for Windows 8? Developers speak out

      @Orktane

      Well said!

      However, WPF really isn't the proper interface for computing devices. Metro offers easy HTML5 development which is much more optimal for phones and tablets than WPF and Objective C. I personally feel the dev environment for Win8 and Metro blows Apple's away!
      omdguy
      • RE: What's it like building apps for Windows 8? Developers speak out

        @omdguy yes, HTML5 based apps are important, but that doesn't take away from the need and irreproducibility of native apps. A lot of the experiences you see in iPad cannot be done without a rich/performant native platform - e.g. 3D games like N.O.V.A. or PDF rendering engines.
        Orktane