Supporting mobile developers through a Java IDE
Includes bibliographical references (pages 95-105).
Thesis
There exist several challenges in supporting mobile applications. For example, creating a separate target application for each device type, leaving developers with a huge maintenance chore. Most desktop applications run on largely homogenous hardware so instead of writing the same code over and over again, developers only need to write modules to implement a particular need. This is because even though there are differences in PC hardware configurations, the same desktop application will work fine on any hardware as the operating system provides an abstract layer. This is the way mobile applications are expected to work. However, this has been divided into dozens of ill-assorted versions. Java mobile applications developers spend more time rewriting code to run on different versions of mobile devices more than they do actually creating application in the first place. This is an intolerable burden for small mobile developers, and it stifles mobile software innovation overall. Mobile devices differ in a variety of attributes, such as screen size, colour depth and the optional hardware devices they support such as cameras, GPS etc. The differences often require special code or project settings for successful deployment for each device a developer is targeting but this creates a huge logistical overhead. One potential solution that is shipped with NetBeans IDE is to add a new configuration for each device, modify the project properties, add some pre-processing code, then build and deploy the application. In most cases, one configuration for each distribution of the Java Archive (JAR) one plans to build for the project is created. For example, if a developer is planning to support three· different screen sizes using two sets of vendor specific APIs, one needs to create six configurations. This reduces the performance of the application drastically and increases the size at the same time. This is not acceptable for mobile devices where memory size and processor performance are limited. The goal of this research work is to support mobile application development through a Java IDE (the NetBeans IDE in this case). Therefore, our approach will be to modify the NetBeans IDE to better address the difficulty that was mentioned above - namely targeting applications for different platforms. Our solution is to integrate another type of a preprocessor into the NetBeans IDE that will help alleviate the problems of the existing tool. Our approach is to directly implement this inside the NetBeans IDE to further support mobile application development with the NetBeans IDE.