Build for the mobile

I just had a revelation. An enlightenment, if you will.  You know how it happens – you think about a solution to a problem for a really long time.  Then you don’t think about it anymore. At least not consciously.  But your brain is still crunching.  You can feel it.  But if the solution is still not found, then get used to that constant crunching and ignore it.  And then you even forget it. And then, some time after, there is a Big Bang.  A huge flash in your head.  And it’s not the solution to the problem yet.  But it’s a sign and a reminder that your brain is still working on something you have long forgotten you had to solve.  That’s what I just had.

Being involved with a lot of web development, I was trying to figure out how to go about all those mobile devices.  Mobile Internet user base is growing fast and even today it is so big that it can’t be ignored anymore.  Gladly, most mobile devices run full blown web browsers with CSS and JavaScript support.  Some can even do Flash.  So it’s not like web development for mobile devices is something completely different from web development for desktops.

And yet, there are differences.  For the near future, these are the differences that I can think about:

  • Mobile devices have smaller screens and that’s not going anywhere.  Even if supported resolutions get higher and higher, the physical size of the screen won’t match the desktop screen any time soon.
  • Mobile devices have handicapped input.  Flip-out QWERTY keyboards are quite usable now and handwriting recognition is getting better by the day.  But mobile device is not and probably will not be as convenient for input as desktop computers.
  • Mobile devices have less processing power.  They get more power, but while they do so, desktop clients do as well.  And so the difference is maintained.  With more and more functionality being pushed out into client side, processing power is an important issue.
  • Mobile devices have unstable connectivity and higher bandwidth costs.  Again, with all 3G networks expanding globally and more and more free WiFi hot-spots installed everywhere, the connectivity problem is getting partially solved.  But it’s not going to be solved completely any time soon (coverage, higher costs, battery life are just some of the reasons).

While there are probably other things you can put on that list above, even the ones I have there are enough to consider a different approaches when developing for mobiles.  And why should we consider them at all?  Well, here is an image that actually triggered that big flash in my mind that I spoke about earlier (shamelessly borrowed from Paul Kedrosky blog post).

Mobile Internet Graph

You (of course I mean “I”, “we”, “they”, and “you”) cannot ignore mobile devices anymore when building web sites and applications.  So, how should this problem be approached?  And now for that revelation, enlightenment that I mentioned earlier in the post:

Build for the mobile device first, then extend for the rest.

That’s not a new approach.  It’s something that has been used and recommend before.  It was just phrased differently.  It was along the lines of : limit resources in your development environment and you’ll get a much more efficient and resource aware application.  If a developer has only 512 MB of RAM on the machine he uses to write and test his code, chances of that application being much more effecient on a 4 GB server are higher than of application written on a 4 GB machine. ([*] citation needed)

If you build your web site or application for the mobile device, you’ll ensure most of these:

  • It works well with small screen sizes and lower resolutions.
  • It requires the minimum of input from the user.
  • It has exactly the right balance between client-side and server-side processing.
  • It supports a whole lot of browsers, even most of those browsers don’t exist on the desktop.
  • It has at least some optimization in terms of download size, client-side caching, etc.

And when your web project works on the mobile devices, it will be much easier for you to check for extra resources in the client’s browser (higher resolution, better browser, etc) and enhance behavior with more bells and whistles.  You’d probably won’t want to do this yourself anyway.

I think adding additional bells and whistles would be much simpler and faster, then removing and reorganizing things in the application that has been built for the desktop browser and now needs to support, or at least behave nicely with mobile browsers.

I would be very surprised if you actually read the post all the way down to here.  And just to thank you, I thought I should surprise you.  Most of the above post just came out from the top of my head, has no research, measurements, or supportive data.  It’s not even something I have discussed with someone else yet.  So, I suggest, you take it with the jar of salt, jar of pepper, and a pint-sized bottle of red hot chili sauce.

New phone : Sony Ericsson G900

A couple of weeks ago my beloved Sony Ericsson P910 died.  It got dropped one too many times.  A rather large semi-lequid patch appeared in its left bottom corner and touch screen stopped working.  Since the keyboard died a long time ago, I was left with no way to input or navigate the phone.  Being an exceptionally smart individual I decided that a reboot might cure this, and, obviously, that left me at the “Enter your PIN” prompt with no hope what so ever.

Next morning I rushed to the mobile shop.  The first two on my way were closed, since that was too early in the morning, but gladly I remembered that there is a Germanos branch in Debenhams, which opens pretty early.  Like 8 or 9 o’clock in the morning.  And indeed it was open.

Continue reading New phone : Sony Ericsson G900

The sad truth about web working

Celine Roque of Web Worker Daily makes yet another observation that makes one nod his head in agreement:

There’s a slight irony about being a web worker and staying in your home office most of the time.

The post goes on to suggest a few ways to spice up your life, in case you are a web worker…

Android is coming along smoothly

Today is the last day of The Mobile World Congress which takes place in Barcelona.  Makers of everything mobile (as in phones, not as in real estates opposite) are showing off their stuff at this event.  Also, there are many announcements, news, and releases tied to the dates of the congress.

It seems like a good time to revisit the Android story.  Is it moving it all?  What’s happening there?  Will we see any of it any time soon?

It appears that the Android is moving along as planned.  There were a few pre-production prototypes at The Mobile World Congress, and people were pretty much impressed with them.

The biggest surprise of the demos was how well Android runs on slow devices.

In other news, Google released a new version of Android SDK.  This new version brought a few major changes and improvements, fixed many things that developers complained about.

The upgrade also takes to heart developer complaints about the software and includes several major but less visible upgrades: in addition to easier development of layouts, any app can now translate addresses to map coordinates and back. Audio formats such as MIDI and OGG are now also built-in, according to Google.

The same source suggests that we will indeed see some phones in the second half of 2008, as it was planned and announced last year.

Android’s upgrade brings the Linux-based platform much closer to production quality for its expected release, which should start with handsets in the second half of the year from companies such as HTC, Motorola, LG, and Samsung. Most of these devices are understood to focus heavily on Internet access and are expected to include some models with GPS and touchscreens.