Supported by VM:
Not currently supported:
- Power levels
JSRs implementations vary quite a lot from device to device, platform to platform, version to version.
Native APIs
- Accelerometer
- Contacts
- Messaging (SMS)
WebVM APIs
- Served from api.webvm.net
- Documented at api
Already implemented modules that Web developers can just start using. Or vendor can start using as a template?
- Primitive Location
- Bluetooth example
Constraints are mostly down to the demo platform’s browser.
- Online or offline demos (with or without reliable Internet access)
- The browser in question
- Interoperability with for example Google APIs
- Demos that use JBlend and which use the native API
- Requirement of a specific JSR or device (e.g. 179 and GPS device)
Prioritising the highest demanded APIs:
Demo ideas
Using REST and JS APIs with webvm.
security could feature in the demo, though I’ll keep it straight forward for now.
Device API use cases from OpenAjax
Bluetooth 82
- Showing nearby devices
- Parsing hCard and sending it to a connected device
Openid 2.0 WebVM server example
- User logs in as o.webvm.net from an OpenID 2.0 consumer
- Use redirected to OpenID 2.0 server which activates bluetooth module via WebVM to “authenticate” with a mobile device
- Login form is filled by authentication information (e.g. IMSI) from the mobile device
- Mobile user is identified and logged in to Web service
Try in an OpenID 2.0 consumer such as:
* caveats: Some sites allow you only to log in with an OpenID once you’ve associated their ID with that OpenID. In these cases the initial registration phase is very painful from a mobile device.
Music
Playing back MP3 files stored locally or stream via the Internet.
SMS 120
Logging
Sending an SMS via a Web application.
Camera 234
Use case: Upload a geotagged image to some photo service in a Web application
- Take a picture
- Give the file location of the image for an upload
- Probably need window functionality…
Image manipulation
Could implement the Google Gears Image API
Small files could be passed around with base64 data: encoding with this php upload script. This could be used to get around constraints of the browser.
Location 179
Use case: Show me on a map Requires: Internet access
Cooler demo: Marauder’s map
Emulating third party Geolocation APIs:
Fire Eagle
Google Maps
- Location on a map - online requires GPS
Is it worth implementing on another map site? Perhaps, just to show how easy it is to integrate WebVM.
Calendar (75 - PIM)
Use case: Export a Web calendar’s events to the local mobile event db. Wakeup and offline type scenarios can be exploited with JBlend.
Google Calendar
Addressbook (75 - PIM)
Use case: Sync up my contact list with my email account, Gmail
Missing the Java part to the puzzle.
How or where to merge the contacts. The obvious place, Google’s Contact manager doesn’t seem to have any server side merging functionality.
Yahoo!’s addressbook API is similar to Google’s, though a little bit more complicated with signing the requests. Currently Yahoo! only allow Read-Only support and Write access needs a special request. So the typical ‘use case’ would more likely to be:
Buy a new mobile. Dump contacts from Yahoo! Addressbook to mobile’s addressbook.
Yahoo! does have an interesting synchronisation API.
Offline access (75 - File)
Use case: Read some RSS feeds without Internet connectivity
Cooler demo: Puzzle
Implementing support for offline access by implementing gears.
Something to please standards bodies
Demonstrate how “standardised Location APIs of the future” can be implemented by wrapping an imaginary WebVM location interface implementation.
With a JavaScript wrapper we can show that we can implement a Google Gears or W3C Geolocation. Hence demonstrate WebVM device APIs are ‘forwards compatible’ to future API specifications.
A offline ‘turn based’ game SDK
Show how WebVM technologies can enable multiplayer Web gaming.
Further ideas
- Temperature
- A generic native C character device interface via a JS object
