Extending the BOM: Improving the Mobile Web
Yes, Virginia, there is a mobile web.
Sometimes all a site needs is to be accessible via mobile devices. Maybe you want to do that with a handheld style sheet, or maybe you can just rely on the various browsers and gateways to do the job for you. I am currently working on a site and taking this approach based on the business requirements, user needs, and site functionality.
But sometimes, the site needs to incorporate the mobile context. Perhaps the site information needs to be reorganized into a different page layout. Or perhaps the site needs to exploit mobile capabilities.
Carriers, device manufacturers, and browser providers need to do more to support this. Specifically, scripting in the browser needs to have direct access to camera operation, on-device images, location, advanced text input methods, and the microphone.
This increased functionality could be accessed by way of extending the Browser Object Model (BOM). The BOM is the mechanism that Javascript and ECMAscript (and I assume other methods) use to control the browser and access information about it. Imagine a method in the BOM that got the current location and an object in the BOM that was the image library. A method in the BOM could get one image from the camera (activating the camera, allowing the user to take a picture) and another method could allow the user to choose between taking a picture or using one on the device.
Web developers are well-accustomed to "graceful degradation", ensuring that if a function is not present the web page still functions acceptably.
Extending the BOM would also help in the desktop world as well. It could provide access to the microphone so a user could talk directly to a server.
Browsers have to do a bit more than providing access to these systems; they must also provide user controls. After all, a web page that captures voice, location, and surrounding images without telling the user would be a terrible safety hazard for the user, as well as providing a major cost in battery life and connection charges.
Browsers built in Java ME (are you listening, Opera?) have an advantage: many Java environments already provide access to some of these device capabilities using standard interfaces.
Comments
“many Java environments already provide access to some of these device capabilities using standard interfaces”
Opera Mini makes use of multimedia features available via MMAPI in its photo blogging feature. As far as I know you can’t make podcasts via Mini, nor record and send videos, but that might come later.
An extended AJAX/BOM could provide such support as well. Maybe via a “DOM” (Device Object Model), that would provide both access to the phone’s available features as well as tell the application what features (and subsets) are actually available.
I can’t say exactly about the video, but as far as I know Java is quite good to use
Add your comment