Tuesday, January 20, 2009

Do-it-yourself User Interface

Today new mobile phones - more or less - all share the same technical features. Still device manufacturers and operators must try to differentiate their products somehow to get media and customer attention. How to do that cost efectively is the question. New buzzwords arise frequently and technical gimmics are given too much attention. A couple of years everybody was supposed to have a phone that was slim like the Motorola Razr, today you must have a touch screen to be taken seriously in the game. These innovations and also the older ones like 3G and camera all are hardware related and so require the manufacturers to do the job and hope for the best. So far customer created innovations in mobile domain have been rare - it is a nontrivial task to create mobile applications.

I haven't had an opportunity to really use Nokia's new touch UI devices, but based on the quick feeling the user interface carries the legacy of the S60 platform. The latest and greatest UI is clearly an ancestor of the good'ol 7650 from year 2001. What was nice then, needs to be redesigned today.

What if user's could create their own mobile user interface? Could they innovate something that hasn't been seen yet?

I once began to think how we could implement a mobile home screen that a user could easily configure by himself? This time configuring is not about just changing the background image but really doing main UI structure so that user can decide what is visible, when and where. I made some tests with Nokia's S60 platform and I'm convinced that technically all this would be fairly straightforward thing to do. As always, having the implementation is...just a good start. Packaging the solution and marketing is completely another story. Did I hear someone ask about the business model? I don't have a clue.

Nerdy stuff follows.

Well, technically the idea is not very complicated. S60 terminals have an embeddable browser control framework that can be used to create an application that includes the native browser engine. Search for BrCtl* stuff from Forum Nokia or use my search tool. This is the core of the solution; you create an application that draws a fullscreen special browser and replaces or complements the native Menu application. 

When this application launches, it should connect to the server to download user's home screen preferences. As in any mobile application, here you should think how the application works in different situations (no network coverage, roaming, etc.). Caching data is a very good idea.

When you have done it this far, you are able to display a new menu to the user, only your designer skills set the limit. And yes, JavaScript works also. Now you understand there's a problem, you have no way to launch local applications or documents. The solution is that you can implement your own link resolver that you can use. Define your own url-type and encode the information of the application, view and other possible options.

Now the implementation has reached a point where you can display a menu to the user and he is able to launch applications etc.  Next question is where the displayed structure is coming from? Well, create a nice website for that purpose, where users can manage and share their own mobile UI.

When the solution described above is done, it will allow users to create mobile interfaces by themself using your nice editor, html and javascript, helping them out from the native S60 menu jungle. Because javascript is available, you can do lots of nice things, like enabling and disabling stuff based on the terminal's local time and so on. I'm sure you get the idea and can imagine more possibilities.

Somebody might notice that the solution above is quite near what Nokia's WRT-runtime can do today. That's true, but this way you will gain better control to the features that you will provide to the user and you can handle browser events at the lower level which will later allow more possibilities for new features. 

Previously I've given ideas to many student projects, I guess this could perhaps be a nice project work for a mobile related course in any polytechnic or technology university? Project would include mobile implementation, web implementation and graphical design, allowing a team with mixed skills work together.


No comments: