I've been using IDEA for many years for J2SE and J2EE development, and have recently had the opportunity to start using it for J2ME development working here at Nokia.
Let me start by saying that IDEA does many things well in the J2ME world. However, I still think there are a few small changes which could make a huge difference in the usability of the IDE for J2ME projects. So, thanks for all the hard work on getting to this point, great job! The rest of this message will focus on areas for improvement.
The first main area I see for improvement is in the J2ME module configuration. The system is designed to support a single JAR and JAD file combination, as evidenced by the fact that the module configuration only provides for a single JAR/JAD file.
This is flawed, because it requires the developer to structure their project directories according to IDEA's concepts, rather than being flexible enough to conform to the developer's preferred mode of operation.
There are two things which contribute to this situation. The first is that you can not set up a J2ME run/debug target if you do not have a J2ME module. The second is that no two modules may exist in the same directory.
It is possible to configure a simple Java module with a WTK JDK, which enables the developer to set up a project with ant, as long as the developer doesn't want to use the run/debug functionality of IDEA, but this solution does not address a few situations very well.
Consider a project which includes a set of core classes which are both J2ME and J2SE compatible. (This is possible if you restrict your API usage to only those classes and methods which are available in both APIs.) There may then be two sets of classes which provide platform specific support, one for J2SE and one for J2ME. The obvious project structure for this type of project would be as follows
It is difficult to configure IDEA to have both a J2ME and a J2SE project which both compile the common src, as well as the respective platform specific source.
The other type of project which is difficult to support is the project which includes a number of different MIDlets. As IDEA stands, a J2ME project only supports a single JAR and JAD combination, and you must package all of your MIDlets into this single JAR and JAD.
Often a developer may want to use a common code base to build several different MIDlets, and deploy them as several JAR/JAD combinations. You notice that there is really no reason in a J2ME module to have more than one run/debug target, since the module will only build a single JAR/JAD file containing all the MIDlets in the source tree.
What I would like to see is the three mobile tabs in the module configuration panel moved into a separate MIDlet build target system which allows multiple JAR/JADs to be configured, which will compile, preverify, and package the J2ME MIDlet appropriately.
I would also like to have the ability to place two modules in the same directory.
These two changes would allow both a J2SE module and a J2ME module to be placed in a common directory, to build products for both platforms from the same source tree.
Comments and questions welcome.
Nokia SNAP Mobile