|The Ultimate Code Challenge[^] continues into its second week. 6 developers, 6 svelte 3rd generation Ultrabooks, 6 apps that will wow and amaze us. In 6 weeks.
Most of you are thinking "and if it were my boss, he'd demand I do it in 3, and the specs would change on day 20". When I was a lad...
Lee[^] continues to work on Love Hearts, a social app for sugar addicts that utilises the Always On Notifications system to send alerts to your co-addicts and have their machine, which they thought was safely asleep, respond to your message by 'pinging' you. At 2am, presumably. Are they talking a polite "pip", or an actual 140dB full sonar ping. I'm sure there's a setting for it somewhere.
At the core, Lee is looking to create an app that showcases the abilities of the Ultrabook and the Windows 8 OS. Pick up the Ultrabook and the game responds. The app is playable using only the touchscreen, and his fundamental philosophy is that the game should be discoverable in an enjoyable way.
I am a little worried, but also grinning a big grin, when he discusses a major issue with Windows 8: a metro style app cannot use OpenGL. So he's going to write his own OpenGL library in DirectX 11. That's so awesome.
George and Suresh[^] continue to discuss MoneyBag, an expense tracking application based on (but a complete rewrite of) their 1.0 version of the same name. The standard challenges of screen resolution and touch vs mouse are discussed, as well as the use of power saving APIs in Windows 8.
I'll be honest with this one: I want to see more use of Ultrabook specific features. I hear rumours of an NFC chip on the units, and what better way to drive adoption of a financial planning application than by offering your users the means to bankrupt themselves by whipping out their Ultrabook from their jeans pocket, tapping it at their local supermarket, and spending themselves broke in a frenzy of Ultrabook NFC tapping madness. I'd do it, simply for the looks on the cashier's face. And then, obviously, I'd need to do some serious self-reflection, probably with the aid of a financial management app, and work out where all the money went.
Shailesh[^] continues to work on his BioIO teaching app. Again, the theme of variable screen resolutions and touch enabled interfaces came up, which is not enough of a differentiator among this group of contestants. I'm hoping they have a killer feature that showcases the Ultrabooks up their sleeves. One niggling comment is that as a dev I read code better than prose, so their screen shots of code at an equivalent of 3px font is a little painful to read. Guys - any chance of posting code as, well, code, instead of images?
Soma games[^] are writing Wind Up football. While I was hoping for a fully immersive experience involving the use of the gyro, accelerometer and touch screen capabilities, combined with your boot and a run-up kick, it turns out they had something far more prosaic, and potentially more sustainable in mind: a touch-screen football game. And it looks awesome. These guys are developing an iPad version in parallel, so have a headstart in terms of game design, graphics and audio, but are already identifying challenges such as variable screen resolution, and, well, a keyboard.
Sagar[^] have entered the second week and hit a brick wall. Metro apps can't use WiDi to stream Metro live tiles to a TV. This is crazy, and invites the inevitable comparison with iOS and AirPlay. They have also hit hurdles trying out the sample code for Ultrabook sensors, and have generously provided info on how to fix them. 5 weeks to go and they've done a reset. This is a pity, but the bigger pity seems to be the Metro/Desktop dichotomy. We all understand that Metro is for phones, tablets, and touch-enabled Ultrabooks, and Desktop for those times you need a desktop, but splitting support for hardware between WinRT and native will make no sense to users. Why would you have NFC support in Desktop apps but not Metro apps? Are you more likely to tap your desktop or your phone at a checkout?
Andreas[^] seems also to have stepped into the minefield that are the Microsoft samples. Once he had the exceptions under control, he found a neat little issue: push notifications will throw an exception if you have no internet connection. Obvious, really, and I understand that samples are merely snippets to get you started, but no exception handling? Guys... In any case, Andreas is on his way.
A se two common themes from the contestants. The first is that the UI for their apps should be easily discoverable. Time and effort is being spent ensuring that the actions you need to take to achieve outcome are obvious. This, to me, signals a serious maturity in Windows application development. Engineers are realising that users don't appreciate their technical excellence: they appreciate an app so easy to use that they forget they are using an app. Hallelujah.
The second is that the samples for Win8 sensor support is a mess, the support for sensors is uneven, and that the library support between Metro and Desktop apps is not consistent. This is a challenge. An unnecessary challenge, in my opinion. It does, however, make my life as a judge far easier because the harder the challenge the more the field is split.
A small disclaimer: in this post I use the term "Metro" to refer to the name of the Design Language Formerly Known As Metro simply because that's what the contestants are using. It has another name that I keep forgetting, so for now, when you see the now-defunct term "Metro", simply replace it with "The Design Language Formerly Known As Metro" and all will become clear.
The Code Project | Co-founder
Microsoft C++ MVP