I meant to post this yesterday, but then Blogger had some problems and did not log me in. Now everything is ok, so here’s the post.
I read that Opera Mini 3.0 Beta 2 was out. I was just in the process of downloading and testing. I clicked on the ChangeLog page to discover the new features and fixes.
To my suprised I discovered that eventually Opera decided to re-introduce a parameter to recognize the device it’s running on. This was a hot topic on wmlprogramming as more than one developers and service providers did not know how to deliver contents to their users (don’t think only about ringtones, also consider images rescaled to best fit the screen, for example).
Users download and install Opera Mini because they want a better experience on WAP (and Mobile Web), developers work hard on their mobile sites to provide an optimized experience, but with the old Opera Mini this was not possible. This was certainly an issue.
From the service providers’ point of view it was a problem because they could not recognize the device as all were identified with the very same user-agent.
From the browser’s point of view it was a problem as Opera Mini should be able to manage the download, store it and manage the DRM if implemented. Not an easy issue.
I exchanged a few e-mails with my friends at Opera and they understood the problem. Talking is always good.
So Opera Mini 3.0 Beta 2 comes with a solution. Reading from the changelog:
# Added three new request headers, X-OperaMini-Phone, X-OperaMini-Phone-UA and X-OperaMini-Features
But wait… Let me think… Haven’t I seen this before? Something similar… Oh, YES! MS IEMobile! Now I remember! If you don’t, check out this other article I wrote before, new MS IEMobile user-agents.
I know Opera is for the open standards and is one of the most active companies in the W3C, but… this does not solve the problem for developers! Trying to read Opera’s mind in 3 points:
- Opera is for open standards
- Opera wants to be nice to developers
- Opera wants sites to provide the same page to their browser as if it was a web browser and then the client will adapt
For these reasons they kept the user-agent unique for all devices, but added extra HTTP headers (respecting the standard, of course!). Nevertheless, this requires additional work from site developers aimed only at Opera Mini.
What are developers supposed to do? Install Opera Mini on EVERY device and check how the HTTP headers change to discover which device it is?
There MUST be a better solution.
A unified solution among all browser developers should be taken. I would suggest a solution around WURFL, of course, but if this is not possible, well, then even UAProf would be better.