MIDP 2.0 Style Guide for J2ME 38
MIDP 2.0 Style Guide for the Java 2 Platform, Micro Edition | |
author | Cynthia Bloch, Annet Wagner |
pages | 260 pages approx. |
publisher | Addison Wesley |
rating | 8 |
reviewer | nut |
ISBN | 0321198018 |
summary | A comprehensive guide to usability in MIDP 2.0 programming. |
MIDP 2.0 is also a fairly new specification -- in fact, the final release only came out in November of last year. Some phone and handheld manufacturers are already supporting it, however. Nokia, for example, have announced support for MIDP 2.0 on their Series 60 devices quite recently, and I would be very surprised if the competition hangs back in the wake of the success of the MIDP 1.0 specification.
A lot of the content in this book can be usefully applied to the many MIDP 1.0 devices. There is in fact a MIDP 1.0 style guide, now available online, but I would still recommend this book for the wealth of extra content that it has.
The MIDP 2.0 Style Guide is a widget-by-widget guide to best-practice programming with the MIDP 2.0 API. The information contained within comes from established design principles, J2ME programming and implementation experience, and usability studies. Usability studies, especially, don't come cheap. Such labour-intensive research is well out of the reach of most individual programmers and small companies, so there is real value for money here.
The layout is very browseable, with most of the sixteen chapters each being a set of recommendations for a specific widget such as a text box or a gauge. The first three chapters (this includes the introduction) are more concerned with defining the goals of the book, the technology it relates to and the bones of a user-interface design process. For the most part, each chapter follows a standard format that is defined in the introduction.
Some of the later chapters cover topics that have less to do with user interface design, such as application installation and management, and the security API. The table of contents is comprehensive, listing not only chapters but two layers of headings within chapters -- useful in a reference book.
There are two target audiences here: J2ME developers and MIDP 2.0 implementors. For the former, it's an excellent resource. For the latter, I would say it was required reading. This is because it ends up defining what amounts to a contract between MIDP implementors and application developers.
For instance, from two successive recommendations on text boxes:
Application Developers
"Use [The NON_PREDICTIVE] modifier in a textbox that has a URL, EMAIL, NUMERIC, or DECIMAL constraint. Email addresses and domain names are not typical words, so turning off predictive text input ..."
And in the next paragraph,
MIDP Implementors
"If the application specifies the NON_PREDICTIVE modifier, allow users to enter one character at a time without any predictive input facilities."
Clearly the first recommendation is only meaningful if the second has been followed already. There are lot of these sort of co-dependent recommendations, covering areas such as default actions for abstract commands, list selection defaults, field constraints, etc.
There is still a lot of slop in the MIDP 2.0 specification. Its scope is, after all, fairly broad -- encompassing forms and form widgets, graphics canvases, game canvases and sprites, command design patterns, messaging and networking, security and application delivery APIs. Besides which, large chunks of the spec are optional, or can be implemented in more than one way. In part this is to preserve backward compatibility with MIDP 1.0, but it also means that your UDP-based streaming video application might work on only some the devices that support the same standard.
This looseness is only to be expected in such a young technology, but it means that books such as this may help to define the standard if people use the recommendations they provide. I would expect many of the recommendations in here to become part of future versions of the MIDP specification.
NOTES:
For more information on J2ME in general, and MIDP in particular, I also recommend Programming Wireless Devices with the Java 2 Platform, Micro
edition [2nd ed.] and, of course, there are all the specifications and tutorials at Sun's Java site.
The J2ME Wireless Toolkits versions 1.0.x and 2.0 are good starting points for development as well. Version 2.0 of the wireless toolkit supports MIDP 2.0.
You can purchase MIDP 2.0 Style Guide for the Java 2 Platform, Micro Edition from bn.com. Slashdot welcomes readers' book reviews -- to see your own review here, read the book review guidelines, then visit the submission page.
Re:Acronym Bingo (Score:1, Funny)
Let me get this straight... (Score:5, Funny)
Re:Let me get this straight... (Score:2, Funny)
abstract commands - a Good Thing (tm) (Score:5, Insightful)
The challenge of any style guide (whether it's for MIDP, SVG, HTML, or whatever) is trying to get developers to stick to writing content and not interfere with the user agent (the MIDP environment on a specific phone in this case) and its job of actually representing the UI in concrete form.
It's the same challenge UI framework designers have always had, and there's always l33t fanboyz who insist on implementing (generally very badly) their own widgets, just so they can have animated bass-relief shaded transparent buttons. Egomanical "I'll write all the pixels myself" content creators make the web a pain (flash, applets, mad DHTML), but on more varied and less forgiving mobile-device platforms this will simply result in stuff that just doesn't work.
We're already seeing "works only on Nokia 1234 or Ericsson Tfoo platforms" midlets, which are the MIDP equivalent of "works best with IE5" banners (which naturally should be subtitled "I'm an abject fucking moron who doesn't know how to write portable stuff, or doesn't care").
So this isn't just a style-guide. It's a weapon in the eternal struggle between good and stupid.
Re:abstract commands - a Good Thing (tm) (Score:1, Informative)
Hell, Sun's own MIDP 2.0 emulator doesn't even properly emulate MIDP 2.0's GUI! (Layouts don't work)
Re:abstract commands - a Good Thing (tm) (Score:2, Informative)
It's usually only games that are limited to specific brands - the reason being that plain ol' MIDP is just too limited for throwing graphics around. MIDP2.0 goes a long way to fix this but we'll never totally be rid of phone specific versions.
Re:abstract commands - a Good Thing (tm) (Score:1, Interesting)
Corrections (Score:2)
MIPD2.0 will last aboput 15 years its currently on about 3..
Sun WTKs if you have 1.4jdk you should use wtk2.0 for mIDP1.0 unless you want to mess aroudn setting compiler flags for 1.3 jdk binary compaitibilty..
As the handsets using MIDP2.0 are not offically out in high numbers and since the spec is what actually the vendors implement..this book is more for maybe hardware implementors rather than appplications developers..
just your humble J2ME de
Re:Corrections (Score:3, Informative)
Sun's J2ME Wireless Toolkit has worked out of the box with JDK 1.4 for ages--since J2MEWTK 1.0.3 at least.
If you're developing for today's phones (all MIDP 1.0), you should use J2MEWTK 1.0.4_01 rather than J2MEWTK 2.0 (which is for MIDP 2.0).
Re:Corrections (Score:2)
there's another reason to use it though, the obfuscator/cruncher in it doesn't choke on (for example) nokias extensions.
MIDP ... bad choice ? (Score:5, Informative)
For the moment, the J2ME defides the "one application for all devices" concept, the base of the JAVA language.
Re:MIDP ... bad choice ? (Score:4, Informative)
Re:MIDP ... bad choice ? (Score:2, Informative)
Mostly useless (Score:4, Insightful)
Re:Mostly useless (Score:5, Interesting)
J2ME is a dedicated programming environment optimized for cell phones. If it included the full selection of java.util classes, it would be too large to fit on a lot of cell phones.
Do you really expect a lot of J2SE code reuse when you're limited to a JAR size of about 64K? (The limit varies depending on the device, but applications larger than 64K won't work on many MIDP devices. To work on all MIDP devices, you need to be under 30K.)
Re:Mostly useless (Score:2)
If you look at the phones in a UK phone vendor, say
[virginmobile.com]
Virgin Mobile, you will see that java is not sold directly, instead 'downloadable games'. And they list it second, after 'downloadable ringtones'.
So there we have it, the cross platform language intended to replace the windows API is, in its sole 'post-PC' client configuration, used to sell phones, after downloadable ringtones.
Maybe the next iteration will improve, but the 1.0 version was so
Its okay, Symbian is better (Score:1)
Also you can tell the MIDP stuff is 'different'. Apps do not appear in the main menu of
Who's getting paid? (Score:1)
Who's getting paid for the parent AC posts link to amazon?
Who's getting paid for the Barnes & Noble link at the of the article?
If there's good money to be made from /. referal links, then where's the howto?