Want to read Slashdot from your mobile device? Point it at m.slashdot.org and keep reading!

 



Forgot your password?
typodupeerror
×
Java Books Media Programming Book Reviews

Learning Wireless Java 110

prostoalex writes: "Teaching developers to program for wireless platforms is probably not an easy task, since there are just so many focus groups in your audience. This book assumes that reader is already familiar with J2EE concepts, has programmed Java and knows the basic APIs for string manipulation and mathematical operations. Learning Wireless Java was a part of my first-month Safari subscription, and since learning to program for Java-enabled phones was a specific task I set for myself, there were some other books on the list that taught you the details of J2ME."
Learning Wireless Java (1st Ed.)
author Qusay Mahmoud
pages 262
publisher O'Reilly
rating 9
reviewer Alex Moskalyuk
ISBN 0596002432
summary Java developers’ guide to programming wireless devices

Qusay Mahmoud's text starts off with an introduction to the Java wireless platform, which includes learning about a good deal of four-letter abbreviations, among which are J2ME, CLDC, and MIDP. In fact, the first three chapters of the book offer a detailed explanation of what those platforms are, what they provide, and how they differ. For those who have done some J2ME programming before, this might seem a bit too detailed, but for beginners venturing into the wireless world these chapters offer helpful information on where to start, what software to download on your machine and what different software packages represent.

In fact, the author goes into detailed explanations of each software package that you need to download in order to start developing for J2ME, and most of the examples, such as setting the path and required system variables, provide step-by-step information for both Windows and Linux platforms.

You don't get to write your own MIDlet until chapter 4, and by that time you should be pretty comfortable with the terminology and abbreviations used throughout the book. Most of the examples in the early chapters of the book involve working with the command-line compiler, and only in section 4.2.6 does the author introduce the J2ME Wireless Toolkit IDE.

The rest of the chapters are concentrate heavily on the classes provided with the J2ME platform. Chapter 5 gives an overview of MIDP GUI programming with abundant examples and source code. Chapter 6 goes into MIDP event handling, where you learn about the ways users interact with their cellular phones and how all those button pushes are interpreted by the K Virtual Machine. Chapter 7 deals with networking issues (you actually get to write your own J2ME application for accessing the server), and Chapter 8 provides an introduction to database programming and storing non-volatile data on J2ME phones. While the application examples are definitely helpful, well-written and commented, I wish the author would spend more time discussing the hardware implementation of server-client communications, since it's not precisely clear how you can test your J2ME Internet-enabled applications on a real phone without calling your cellular operator and using up valuable minutes.

There is also a chapter on Palm OS programming, which was of limited value to me, and thus cannot be properly evaluated in this review. The appendices are very nice, and include the information that most of the developers would probably find very relevant. Appendices A, B, C, D, E, F and G include descriptions of such J2ME API libraries as java.io, java.lang, and java.util (even though the names are the same as J2EE versions, don't be tricked -- to save space, a lot of classes didn't make it to J2ME) as well as complete javax.microedition reference.

The book is a worthwhile read, easy to understand and follow if you have a good knowledge of Java behind you, and can definitely give you a good introduction to wireless development.


You can purchase Learning Wireless Java from bn.com. Slashdot welcomes readers' book reviews -- to submit yours, read the book review guidelines, then visit the submission page.

This discussion has been archived. No new comments can be posted.

Learning Wireless Java

Comments Filter:
  • Yes but... (Score:2, Interesting)

    ...Will this be useful in developing for TabletPCs?

    Will the TabletPCs even support Java?

    I only ask because these things are coming out SOON, wil work on wireless techonology, but won't be running an open-source OS. Remember, just because you like it so muc doesn't mean it's the reality of the situation, M$ does still dominate over 90% of the market.

    Which brings me to my next point, why not do more open source development for windows, it's not like it would be impossible. Maybe if some really neat win32 based OSS projects became popular, it would really boost the image of OSS in general.

    (BTW this was not supposed to be a troll, so if it comes across as such I'm sorry)
  • J2ME, CLDC, MIDP, MIDlet, IDE, MIDP, GUI, OS, API, J2EE.

    TOO MANY ACRONYMS!!!! ;)

  • by SkyLeach ( 188871 ) on Wednesday June 26, 2002 @10:09AM (#3769456) Homepage
    Teaching developers to develop good Java is hard, but it's easy to port good Java code to J2ME. I've done it dozens of times.

    The only code I have to change is anything UI related. As long as the developers don't embed BL into the UI then we can use the same code for both the PDA and the desktop. Even the event model can be the same.

    Just change the UI.

    Oh, and one more thing: don't use every package in the book. Trying to have every jakarta library on a PDA get's a little harsh.

    • sig:
      My $0.02 will always be worth more than your 0.02, so :P

      You might need to update your sig soon [newsday.com]...
      • Re: Your sig (Score:1, Flamebait)

        by SkyLeach ( 188871 )
        even when the euro is worth more than a dollar my $0.02 will be worth more than any 0.02 ^_^

        No, this isn't flamebait, it's just a friendly jab at the other side of the pond.
  • I would like to start toying with J2ME and other phone api's however I have yet to come accross a single phone my company (telus) supports. Does anyone know of a wireless phone api list?
  • This book assumes that reader [...] has programmed Java

    basically, only James Gosling! :)

    (yeah, my .sig is wrong, so what?)
  • Another needed book (Score:1, Interesting)

    by Anonymous Coward
    I just started developing applications using J2ME for the Nokia 9290 Communicator and Voicestream GPRS enabled SmartPhones. There is one book by WIley "GPRS and 3G Wireless Applications" that is a perfect companion to this o'reily book. You will understand the underlying wireless network architechtures which is very important. GPRS devices are the future for developers, check em out http://www.racowireless.com/voicedataphones.htm

    franco
  • by cpfeifer ( 20941 ) on Wednesday June 26, 2002 @10:27AM (#3769618) Homepage
    The title of this book should be 'J2ME programming for devices' since there's nothing inherently 'wireless' about the material the author presents. There's no mention of programming for different wireless networks (GPRS, mobitex, flex...) or how to integrate w/existing popular wireless services (SMS).
  • I attended a talk given by Sun, where they delved into the J2ME platform, and extolled its benefits. As I understand it, J2ME is a pared-down version of Java for use in mobile devices (what Sun demoed were cellphones and those Blackberry devices).

    This would have been a great thing to have - about a year ago. A few select phones support J2ME at the current time (more on the way, I guess) - but what we're seeing, really, is a move towards Convergence cellphones [slashdot.org], which are combining PDA's, cellphones, GPS, (you name it), into one tiny phone-shaped device.

    With phones running PalmOS or M$-Whatever-its-called-this-week (and Linux, as soon as you nerds get around to it), I see no need for J2ME as a platform. You want software? Use the thousands [palmgear.com] of applications already written for Palm (and likewise for the M$ solution).

    I like the idea of J2ME - I just think it is a day late and a dollar short. Sun is trying to get a handhold on a platform that is being outdated by the next generation of handheld devices. Sure, J2ME will probably run on the next generation of devices - but the user base and development community for those platforms is already in place.
    • Wrong.
      Phone companies have an extremly strong market power. Just look at the number of phones sold. Then compare to the number of palms sold.
      Did you know that the Noka Communicator is the most sold Organizer?
      This is the market power and this is why all newer phones will get one of the following features.
      1. MP3
      2. Camera
      3. Java

      The newer phones are getting better and better. Who needs a Gameboy if he has a java phone with colour screen? You can download applications (say games), new levels, even play with others.

      My opinion is that J2ME will be the future. Who knows, maybe we will sometimes get a phone where you can switch the whole UI because it is all implemented in Java.
    • With phones running PalmOS or M$-Whatever-its-called-this-week (and Linux, as soon as you nerds get around to it), I see no need for J2ME as a platform. You want software? Use the thousands [palmgear.com] of applications already written for Palm (and likewise for the M$ solution).

      The variety of OS's available for cellphones is exactly why running J2ME is a good thing. Spanning the different platforms underlines the whole point of Java's write once, run anywhere concept.

      It's great that there are thousands of Palm applications.... but what happens when I want to run them on a Linux phone? Java apps are nice because you theoretically don't have to care about stuff like that.
  • While I understand and agree with some (not all of the comments) understand that J2ME is not targeted for just phones and PDA's. It extends beyond this space to include embedded systems, devices with no real display etc... While the book focus' on wireless devices, that is only one small area of J2ME. It terms of the comments on the slowness of the Java platform, I would suggest that you look at this again. Benchmarks have shown that Java's speed rivals that of a native language like C or C++. 90-99% of the slow Java programs out there are a result of programmers who have no clue as to what they are doing. They read Learn Java in 21 Days and boom they are Java programmers, don't think so. Just because you can read, doesn't mean you truely understand, comprehend and can apply the technology. Just my .02.
  • i am actually quite surprised about some of the misconceptions here about j2me.

    there's the usual java is slow mantra, which related to circa 1997 java maybe, but certainly not java today. there's the "but microsoft controls 90% of XXX", which of course forgets the fact that we're talking beyond the desktop here... etc,etc.

    for a partial listing of reasons to use j2me:
    http://www.blueboard.com/j2me/why.htm [blueboard.com]

    btw, j2me is a PROVEN solution, with more than 23 MILLION handset clients already running it around the world (projected to more than a BILLION by 2004), and more than one hundred million java smart cards being used. it runs as the OS, on top of BREW, on top of SYMBIAN, and on top of LINUX, and on top of the lone WinCE phone.

    more info:
    Lurker's Guide to J2ME [blueboard.com]

  • I'm a Java programmer about to be in the market for a cell phone... does anyone have any recommendations for nice Java enabled phone that would be well suited for hacking* on? Not major application development here, mostly just for screwing around....

    Looking for a model that is

    1) Reasonably inexpensive
    2) Preferably supported by Sprint PCS (which looks like its going to be my carrier of choice.)

    Any ideas?

    * By hacking, of course I mean in the I-like-to-play-with-code sense, not in the evil, screw-with-other-peoples systems sense.
    • if you are in the USA:

      Sprint PCS is coming out with new J2ME phones this summer along with their rollout of the new network. i am not sure specifically what phone types, but you could contact them.

      Nextel has had J2ME phones since last year. There are several java phones from motorola, from the cheapo i50sx ($49-$79?) to the i90 (which is a clamshell). motorola is also adding a color j2me phone this summer to nextel's line.

      Nokia has just started shipping one of its high end phone/pda (Nokia communicator, forgot the number), but this costs more than $400 and runs PersonalJava instead of MIDlets (MIDP).

      RIM BLackberry has rolled out a j2me-handheld with phone functionality for the enterprise (there's a link to that news article in the lurker's guide, i believe).

      • Thanks for the info. I have been looking into it, and I think I'll go for the cheapo i50sx for now, and spring for something nicer when it comes time to buy the wife a cell.

        I would definitely prefer something in color, but I need it next week, and not later this summer. Looks like Nextel/Motorola is what's fitting my needs now... so they get my business. Still, something in my heart would prefer a Nokia.

        Thanks,

        Bobby
        • it's not that bad a phone.

          here's mine running a skateboard game: http://www.blueboard.com/phone/nextel.gif [blueboard.com]

          Br sure to order the data cable the same day you order the phone. You'll need it to install your own apps into the thing. i think it's $19 or so right now.

          You'll also need to get the download software at iden.motorola.com, and (if you want to install your own network-aware apps) need to get permission from nextel (it's by email and fast).

  • by hqm ( 49964 ) on Wednesday June 26, 2002 @01:14PM (#3770942)
    I was in Japan for two years, and did extensive programming on the iAppli (Java that runs on iMode phones) and J2ME platforms. I even wrote a web browser for J2ME. You can see it all and get the source at http://www.ai.mit.edu/people/hqm/imode [mit.edu] and also at sourceforge, look for the http://bearlib.sourceforge.net/ [sourceforge.net] bearlib libraries.
  • Many seasoned programmers I have known have jumped onto bandwagon of java, and got burnt here and there, so they are not so excited about java anymore. For clean style and programming you can use Jython, which is Java generator, but also integrates tightly with Java and its frameworks, including J2ME. I know C++, Perl, Python and Java, of them all I find python most clean and easy to work and maintain. So if I would have something to do and I can do it in Python(Jython) i'd use that...

There is very little future in being right when your boss is wrong.

Working...