The focus on programming wireless devices is growing these years. New devices arrive every day, having a huge set of functions - you just want to play a game or get some music on these small gadgets. You could really use a pocket database or another type of application.
Trouble is that these devices are all different. There are at least two different major operating systems on the PDA's and what the OS-situation is for the mobile phones can be difficult to tell. Even having the same operating system is not enough as the hardware platforms are different. This can certainly complicate the life of a developer. Choose your platform, mate!
Unless JAVA is used, of course! The promised land of Code Once, Run Everywhere cannot completely be fullfilled (we know!), but in the world of small devices there now exist a set of standards. These have acronyms such as CLDC and MIDP and are found within the Micro Edition of the JAVA environment (J2ME).
This book describes at a good level the J2ME-platform. The focus is placed mostly on the MIDP libraries which is natural as it is here that the most functions are found. The book covers the available API calls in a good way: Not too detailed, but clear and with a lot of example code. The authors remember to include proper warnings against misuse of some of the library routines - do not overdo the vibrator or flashing background, remember to add commands so that the user can navigate: That sort of advice. And trivial as this may seem, it is still needed, because programming an embedded or wireless device is something completely different than coding a PC-based application.
Between the release of the first edition of the book and this there has been a rapid development within the J2ME area, especially when it comes to the MIDP-platform. A host of new API's has been added to MIDP and this is clearly marked in the book. This is of course helpfull if you have older books and wants to compare. Or if you want to promote the new stuff - else I find it unnecessary.
The book is mostly concerned with the MIDP API and as such does not cover much outside of this scope. You will look in vain for a description of the JSR-82 BlueTooth specifications or the WiFi-protocols. This, I feel, is a weakness because of the growing impact of such network technologies.
The book itself is platform-independent: While it shows many examples it does not show how to compile and deploy an application to a specific wireless device, much less discuss existing platforms. It is an introduction to the CLDC and MIDP API's, not to the development process itself. But the book is important for a good introduction to programming in the "small world" and is a must for the developer. The starting chapters also give a good overview of the position of the J2ME environment and its components and should be required reading for any JAVA evangelist and architect.