I was chatting with Mehul in the DevExpress offices yesterday about writing iPhone apps with MonoTouch. He wanted to know what iPhone app had most impressed me, now that I'd had the phone for a little while and therefore what I might be trying to emulate in my own programming. My reply was Sudoku Grab.
Yeah, yeah, I can hear you saying. There are a bazillion apps out there already that do Sudoku. What's so special about this one?
Well, it's the grab part that fascinates me and that elevates this app above the run of the mill (I'll admit, the solving part of the app is quite ordinary). What I like is the way it uses other iPhone features rather than just the screen and touch interface. Without embellishing it too much, the grab feature allows you to take a photo using the iPhone camera of a Sudoku puzzle printed in a newspaper or displayed on your screen (say, from Web Sudoku). The program does a bit of image processing and OCR and imports the puzzle into the program's own interface. The program even determines the difficulty of the puzzle. You don't have to transcribe anything to play a puzzle on your phone, the program does it all. It really is quite magic to see it for the first time.
The author of Sudoku Grab has written a very informative blog post about how the image processing and OCR works. It's fascinating to read if you're at all interested in algorithms.
So, in short, it's the programs that make use of the iPhone's hardware features (GPS, compass, accelerometer, camera, etc) that I find the most interesting. It reveals that the author is trying to fit what might be after all a pretty bog-standard program into the universe of the iPhone to make it uniquely recognizable as an iPhone program.
Vangelis - DesolationPath
(from Blade Runner (25th Anniversary Edition, CD2))