views:

255

answers:

3

We're building J2ME "data collection" applications for the Nokia S40 series of cellphones (and possibly Android platforms).

I was wondering how other mobile developers learnt J2ME ? What were the roadblocks or bumps which slowed your progress ? What gotchas should I be watching for? Where did you learn the techniques for going beyond the standard set of features/connectivity/etc ?

Tools, websites, books, articles, training links, whatever: will be appreciated.

P.S : for what it's worth, I'm well versed in server side Java and Swing.

UPDATE : Thanks for the answers so far(3) -- I am sure this info will help me a few months/years from now. What I was looking for RIGHT NOW was "What is the best way to start and ramp up learning J2ME" given that the initial target for the 1st year is probably ONLY 1 or 2 phones -- most probably Nokia 2700 and/or a closely related Nokia phone(The idea is to target a rugged $80-$100 device). How do I go from Level 0 to Level 7 (on a scale of 0 to 10) on (Nokia) J2ME as fast as possible ? What resources are out there ?
a) articles,
b) books,
c) tips,
d) training (in Bangalore, India OR ONLINE)

Thank you,

+1  A: 

<rant> The biggest slowdown in J2ME development is:

  • Every telephone has a different virtual machine. (You can group them a little bit, but in all these groups there are still differences)
  • Every different phone firmware, potentially introduces or removes bugs in the J2ME libraries.
  • Every month 30-60 phones are released which you all have to test with.
  • Every phone has different specs (Screen size, Processor power, memory requirements, JSR availability, etc)
  • Every phone brand has it's own specific j2me libraries which you should use to take full advantage of capabilities. (Which of course makes your jar incompatible with the other brands)

So, all in all it's not J2ME development in itself which is tiresome or slowing. It's getting it to work on all the phones out there which is a complete exclusive X chromosome carrying creature. </rant>

Toad
thanks for the inputs. Can you give me inputs on learning and ramping up fast on Nokia J2ME ?
anjanb
+2  A: 

It's been awhile since I've done any J2ME development. Some of the tools I recall fondly are:

MPowerPlayer SDK (pure-Java device emulator, great for developing on Mac) - http://mpowerplayer.com/sdk

Ant tasks for building J2ME apps - http://antenna.sourceforge.net/

TinyLine - http://www.tinyline.com/

Not sure if any of these are still relevant, as it's been several years since I've done J2ME dev. Also, everything reinier said is true. :)

Nate
thanks for the inputs. Can you give me inputs on learning and ramping up fast on Nokia J2ME ?
anjanb
+5  A: 

One more thing I would like to add here, the development methodologies for an app that needs to port to say 10-12 handsets is very different from 40-60 handsets. It is important to know this as major publishing houses like Glu, EA Mobile etc use a highly optimised development process to port an app to dozens of handset.

Some other points to keep in mind:

  1. Depending on your target markets, the app should be able to work in portrait/landscape mode, support 4x3, QWERTY and virtual keypads and also support touch screen handsets. So design accordingly.
  2. Strings i.e user visible text should all be in a predefined set of classes, so that it is easier later on to do copy changes.
  3. Jar size used to be an issue before, make sure it isnt for the handsets your are launching on. On certain handsets the jad size cannot be more than say 5-6k, verify that well before deadlines.
  4. Signing the app can be non trivial, for ATT in US we use Geotrust, ensure that the registration process with the signing authority is taken care of.
  5. If you are working on preloaded apps on handsets before their launch, then have very good relationship with the handset manufacturer, it helps facilitate smooth launch.
  6. Jar obfuscation setting can be tricky, be sure to hash that out early in development cycle.
  7. Also, watch the bill from the carrier on the handsets you are testing with, in my work we support 600+ handsets and the carrier bill got huge. So we designated certain sim cards to be used only for voice tests, the rest were for data/Internet only. That way we were able to get different carrier plans and reduce our bill significantly.

Hope this helps. And good luck!

omermuhammed
thanks for the inputs. Can you give me inputs on learning and ramping up fast on Nokia J2ME ?
anjanb
Just keeping strings separate won't always cut it though. In German for instance, the average wordlength is 150% of that of English. In Eastern european Langagues, sentence sizes are almost reduced by half. Your UI needs to be able to cope with this, so that localization is less painful. (Also it is not atypical to use bitmap fonts in j2me apps/games. In that case, also be prepared to swap out different charsets for different languages)
Toad