What is a killer app for J2ME? Well, if I had a specific answer to that question I'd be slaving away over it during all my free time, dreaming of the riches and life of ease ahead of me.
If you scan various MIDlet sites, you'll find a preponderance of games, numerous business applications, and a scattering of "other." The appeal and value of business applications has been widely discussed, so I won't rehash old ground. It's also easy to see the appeal of developing games, as the portability of handheld devices makes them an obvious target for entertainment applications. However, I've never heard of anyone making it big by developing J2ME games, so I'm afraid any J2ME developers counting on game royalties to pay the food and rent, let alone fund the purchase of that private island, may be in for a disappointment.
What I haven't seen are any significant personal applications developed in J2ME. There are toys such as dog-age calculators and biorhythm calculators, and I once developed a J2ME mortgage loan calculator under contract. But how valuable is a dog-age calculator, and are you really going to use your cellphone mortgage calculator to calculate your pay-off schedule that often? Are there J2ME applications, potential or existing, with functionality that's of real value to the average person?
I believe there are, and encourage you not to overlook their potential. Such applications may not have the pizzazz of games or the obvious economic benefits of business applications, but the payoff could be far greater. Imagine an application that appeals not just to a particular business segment or to gamers, but to every household. Such applications are already present both in the PC world (e-mail and Web browsers) and on wireless devices (text messaging).
I'll proffer an example of such an application for wireless devices - in the heady '90s I might have even been able to get venture capital on a thread as thin as this, but alas, those days are past.
I want my cellphone to have my always up-to-date grocery list, so I don't end up at the store having forgotten my list and inevitably making a second trip to pick up something I couldn't remember was on the list. Briefly considering the server side, which is functionally my kitchen, I'd eventually like to be able to speak to my house computer whenever I need to add to the grocery list, but for now assume text entry on my home PC. Whenever I'm home I want my (future) Bluetooth-enabled handset to get the current grocery list from my house computer. To ensure that I have any updates made by my (hypothetical, for those who know me) spouse while I'm away from the house but she isn't, I also want to be able to either pull or push (MIDP 2.0!) the current list to the handset. I want the app to remember the order in which I check off items as I go down the aisles, so the next time I shop it can organize the item list so I don't have to keep going back two aisles to get something I forgot was in that aisle. And finally, since my grocery shopping is done in one of two stores, I want my J2ME shopping list app to present me with the list organized correctly for the store I'm in, as determined by the app using onboard GPS.
Even without Bluetooth and GPS capability, the core of this functionality can be provided using existing J2ME platforms. The pool of potential users is huge, and since a small slice of a huge pie can be much larger than a huge slice of a small pie, the payoff could be greater than for business apps or games. Granted, few people are likely to buy a J2ME-enabled device simply so they can use this intelligent grocery list, but having a number of such convenience apps could constitute a critical mass that lets J2ME gain entry to the world of ordinary people and everyday life. So when you're brainstorming ideas for J2ME applications, don't forget to consider such convenience apps.
Glen Cordrey is a software architect working in the Washington, DC, area. He's been using Java for five years, developing both J2EE and J2ME applications for commercial customers.