Development of Surface applications is done on the Surface Simulator. Even at Microsoft the Surface team works most of the time in the simulator: I’ve heard they have 1 Surface unit per 8 developers.
The simulator works fine and is a great tool for developing the applications: the debugging experience is actually quite nice. But sometimes you have to deploy your application to the actual physical unit to see what it looks like in ‘real life’. I think that is the only way to determine if what you’re building fits the Surface Experience, something you cannot mimic on the simulator.
However, when testing the application I am currently working on, I noticed the unit didn’t recognize my index finger anymore. It did work with my other fingers though, so I checked my finger to see if there was anything wrong with it. To me, my index finger looked just like it always did so I didn’t understand the problem. But, since I am under a tight schedule I didn’t have much time to investigate and used the application with my other 9 fingers.
After a while, the whole machine began less responsive. The launcher was slow, the applications were becoming more and more sluggish and the whole experience was getting worse and worse.
Time to investigate what was going on.
I used the performance counters but didn’t see any problems. The whole machine itself didn’t have any problems, it was just that when I was in User mode the machine didn’t behave the way I expected it to behave.
On top of the responsiveness problems, I noticed the screen wasn’t as vibrant as it used to be. Then the solution hit me: maybe I should clean the unit? So I took some cleaning stuff and gave the screen a good cleaning. And there it was: the screen was as beautiful and vibrant as the day it was delivered. Even better: it suddenly recognized all my fingers again.
So, if you experience bad recognition of your fingers, tags or objects, try cleaning the unit. It might help!
I never thought I would be able to debug applications by using a bit of water and soap….