Sergey Mikhanov  

Steps towards better mobile user experience (March 24, 2008)

I’ve stumbled upon the Mobile Wireless Server Developer vacancy in Google UK and asked yourself a question: what would I personally do as a server software developer to deliver a better user experience of rich web applications on mobile devices? It looks like the problem could be split in several parts:

  • Device computing capabilities. Rich web applications (read “applications using lots of JavaScript”) require the device to be powerful enough. This is the simplest of all parts because actually, there are devices powerful enough already. There are at least two bold players in this area: iPhone/Safari and Nokia S60 platform’s browser, and this number will inevitably continue to grow, thanks to Moore’s law. However, if this trend would not exist, as a server developer I would implement a front-end proxy a) striping out JavaScript which was tagged by web application developers as “non-mobile” (say, drag’n’drop functionality of Netvibes), and b) executing as much of the remaining JavaScript at the proxy’s side, resulting in the page which look is closer to final render (say, preloading and arranging mashed contents in advance). At this point we go to the next problem:
  • Narrower bandwidth. Several possibilities exist for a server developer. Content could go through proxy doing markup conversion and compression like this is done in Opera Mini. Applications could be made bandwidth-aware to queue data transmission when possible.
  • Device rendering capabilities. Static media (pictures), by the way, could also be processed by the proxy or the server itself (reduced in size). Critical operation of zooming out JPEGs could be performed quite fast using low-frequency selection from Discrete Cosine Transform curves that form the JPEG image. I was unable to find any information about Opera Mini’s proxy doing this or not.