Stumbled across
OpenMoko today, via
Engadget, and it's
very, very impressive, especially for an open-source project. It's essentially
an open-source attempt at creating a next-gen mobile software stack that rivals the best out there. The basis is a touchscreen device, with a couple of buttons for turning the phone on and off and other shortcuts.
They've partnered with FIC to create the first hardware prototype, looking like this:
Could be a bit more creative, and distinctive by not imitating the metallic design cues from Apple (or at least use cues not so often copied, like anodized aluminium on the new nanos). The non-touchscreen space could also be better utilised I reckon.
What impressed me the most however, was the
massive amount of thought into user experience and user interface design, which I haven't seen in an open-source project ever (where traditionally, the GUI is an afterthought).
The basic UI looks very stylish (has a very good chance of matching or beating Apple's visual design I reckon), and there are tons of
graphical guidelines to help developers make their apps match the system's design (I think they're a bit rigid sometimes that can restrict the exploration of new ways to interact with and present info though - its a compromise in the end).
Yes, that means lots of nice pretty pictures for those who can't be bothered reading spec documents (me included), especially the Look and Feel section. (Hopefully they'll employ better English speller along the way though...)
From their '
general principles for application design':
- All modifications are saved instantenously, there should never be a save command.
- Make sure users can't make interface operation errors, or
that the effects are easily reversible, instead of just notifying them
of the potential consequences of their actions.
- When you open a document you should be returned to the place
where you were working when you last closed or save it (this is our
concept of sessions).
- Label buttons with adjectives, which describe the state of the object affected
- Designers should seek an efficient monotonous solution to
gain benefits, including ease of learning, simplicity of
implementation, minimization of documentation, and lowered maintenance
costs.
- Whenever you find yourself specifying an error message,
please stop; then redesign the interface so that the condition that
generated the error message doesn't arise.
- If the user gets no utility from a process, there is no reason to tell them that it is happening.
These general principles are a very good start, and signifies an understanding of the differences between developing for a computer vs. a mobile phone.
For example, here's a graphical mockup of the
messaging app:
Looks a bit crowded for my liking, but the great use of metal textures, transparancy and gradients is unprecedented when compared to the phones released nowadays. Hell, it looks better than most apps we have on the PC nowadays! It'd be even better if they could incorporate GMail's conversation feature, much like Apple's iPhone does with text messages.
It remains to be seen
how well various parts of the system interface with each other (i.e. can I easily use an address from an SMS message in Google Maps; and no, cut and pasting is not an option),
how intuitive it is when its all put together, and
how well they can customise the device so that it appeals to basic end-users as well as Linux hackers. Because once something is open-source, the possibilities are endless, but when people google and find something cool but don't understand the difference between hacks and well-polished apps, users begin to think that its an absolute pain in the arse to use and customise their phone.
There isn't much information on how additional apps are installed either, apart from the
Application Manager, where I sincerely hope they bury that 'dependencies' screen - no user should have to see that unless they know what it means. If you ask me, the
applications paradigm is inappropriate for phones - it was a concept brought over from the PC because people couldn't be bothered thinking it through and took the easy route.
The phone was not designed as a platform; it was designed as a device, and hence it should be improved upon as such. Therefore, instead of installing applications, we should be installing addons or plugins that completely integrate into the phone's interface. After all, how many of us actually use 90+% of our phone's features? I'll bet most don't but would if they knew it existed and was easily accessible, not hidden in the non-descriptive 'programs' menu or deep inside the UI of another application that can only be found after 25 clicks and without any context.
Web integration is missing too, and I'm disappointed that
nothing has really changed with regards to text input, but the project is in very early stages.
Hopefully the programming side of things will get easier too - C and C++ is hardly conducive to the vast majority of developers when compared to Microsoft's .NET, Java or python for that matter. Hell, that's the main barrier (and my lack of Linux knowledge) that's preventing me from contributing.
The software has enormous potential (more so given its open-source), but ultimately, much like computers but on a much larger scale,
it is the hardware manufacturer and distribution company that dictates the success of this product, and this is where Apple holds an
enormous upper-hand. Unless they can find a company that is willing to co-operate with this community, can design a user-friendly, workable yet economical device, and has the knowhow, financial power and persistence to market (including convincing the phone providers) and support this product, this idea won't have much success beyond the nerd community. Anything less than that criteria will simply drag the OpenMoko name through the mud and damage its potential. FIC is a start, but they're hardly one with the knowhow and infrastructure to do so - they're a contract hardware manufacturer primarily after all.
That said, the wiki is well worth exploring - the breadth and depth of the content there still astounds me, and so much of that resonates with what I reckon the perfect phone would be. If you're a consumer, check it out and see what you're in for in the future; if you're a company in the phone industry battling the iPhone threat, I'd get a team together and carefully read it as it would be a great starting point.
The latest Windows Mobile, Access OS, Blackberry OS or Symbian OS doesn't even come close - they all better have something amazing up their sleeves. Apple aside, Microsoft is the next best bet as they have the technology to do it (e.g. WPF), but whether or not they actually do it is another question. The power of Flash shouldn't be underestimated either, with
Samsung's f700 slated to use it already.
The evolution of the phone is finally coming together.
P.S.
Happy Chinese New Year to all my asian readers, 恭喜發財! - have fun raking in the lai-see and stuffing yourself with food until you literally can't take anymore

. I've managed to escape the vicious food eating cycle for the time being but dessert is coming and I'm already stuffed...