Wednesday, January 28, 2009

Mobility is not easy for anybody

Mobility should be something that makes life easier, simple solutions for everyday problems, right? Considering from the users' point of view something has gone wrong when 
"...setting up a new handset is as challenging as moving bank accounts."
as BBC's report about a recent study puts it.

Dear users, life isn't easier for developers. Some time ago I was involved in obtaining a Publisher ID for Symbian development and signing. The process includes creating a request and then sending it to the authority, plus a copy of your passport, official document (no older than 9 months) verifying the existence of the company and a signed confirmation document supporting the request. Then you might be allowed to get your certificate, that of course isn't useable right away but requires some certificate-voodoo to get it working. As a comparison, check the process of getting license to acquire firearms here in Finland.

Executive summary
To create a mobile solution that is too complex to use, developers need a certificate that is more difficult to get than a license to buy a shotgun.

//Harri

Friday, January 23, 2009

What to study for mobile development?

After having written my previous entry and suggesting that the presented idea would make a nice student project, I began to think what I would study if I were a computer science student today and interested about mobile application development. (Well, if you are a CS student you should study the theoretical foundations to ensure that you are able to grasp the future, but you get the idea...)

Not so long ago I would have suggested you to focus on Symbian development because on that platform you have access to interesting set of features and terminals are very widely used. Native applications have access to almost all of the terminal's resources and the there isn't any runtime overhead when running compiled applications. But taking now a look back, I understand that I haven't been doing much Symbian stuff during the last year. Why is that?

Symbian (as a development platform) is as it has been for quite a long, but other platforms have improved a lot. It is like driving slowly on an expressway; you are moving but all the others are passing you.

The platforms I'd study today for mobile development are all useful also for non-mobile devices:
  • Web technologies. Mobile browser is a very good platform for a wide range of solutions. With html and javascript you can have first version running before you have created and built a new Symbian project with a Carbide project wizard! New runtimes like Nokia's WRT even allow you to access native applications and terminal data.
  • Flash. I haven't ever done Flash-applications myself, but I see everyday new mobile applications implemented with it. There must be something in it, at least when you want to make nice looking graphical applications.
  • Qt. This is the new player in town and Nokia seems to be putting a lot of effort on this. Also with Qt you can enjoy the benefits of being able to use your implementation with multiple platforms. Keep your eye on this.
You might notice that native Symbian API's are the enabling layer for all these, which is aliged with the message I've been trying to communicate: Symbian is an important platform, but think carefully if native Symbian development is worth the effort. Somebody might already have done it for you allowing you to concentrate more on the actual substance.

Finally quick non-scientific statistics from Nokia's career website (January 23, 2009):
  • There are 19 open positions that match search "Symbian"
  • There are 51 open positions that match search "Qt"

//Harri

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.

//Harri

New precompiled iPhonesque package, N95 header

I hope it's not too late to wish Happy New Year to all of you!

I just added one more iPhonesque version to the application site, now there is also a precompiled version that sends Nokia N95 headers. As always, the package is unsigned.

//Harri