J2ME Device Database
We need a database with all the problems etc. out there for each phone. I was perusing the Nokia Forum last night and I downloaded this doc: JavaOne Report: A Mobile Game Developer's Perspective. In it there's a summary of some of the sessions at JavaOne, including a session by Mforma on the pitfalls of some MIDP devices like:
- Motorola T720: Timers cannot be cancelled
- Nokia 3650: There are problems with writing text to offscreen images [and the sockets support :-( ]
- Sharp GX10: MIDlet can connect only to originating download server
- Siemens M50: Manifest is order-sensitive
- Nokia 7210: Presents heap limitations
- Handset- and carrier-specific APIs from Nokia, Sprint, Motorola, and others add to porting problems.
That reminded me to go out and look for a site that I had run across months ago, but had forgotten about, JBenchmark.com which is a fantastic site for evaluating the relative robustness of the hardware and KVM implementations on various Java-enabled mobile phones. This is an important resource - especially when you look at the new phones that are coming out. The SonyEricsson T610 looks fantastic, except when you look at JBenchmarks table, it's down near the bottom on J2ME speed. Ugh!
So that's insanely informative from a speed point of view, but doesn't go into the specific problems with each device. There needs to be somewhere central (Sun?) where developers can go to find the benefits of one phone vs. another. Write Once, Debug Everywhere is incredibly apt when talking about Mobile Java - but instead of having just a handful of different OSes to work with, you know have dozens of mobile phones. Each with their own KVM implementation, APIs, hardware speeds, etc.
I'd volunteer to develop something like this for janywhere.com, but nothing I seem to start working on gets done lately so I won't. But it's tempting - I'm constantly trying to figure out what to do with that domain: A nice developer's resource would rock, wouldn't it? At one point I had a wiki up there... I should've kept it going.