Introduction
In 2004 we were creating software systems and were investigating how to deliver finished software products. The projects we were working on didn't require a specific operating system or hardware. So, we desired a cross platform delivery option that we could easily document with step-by-step installation for our users.
We began quite simply, reading and writing zip files and then made a class hierarchy to model their entries. It was easy to imagine further uses of the software so we decided to make a standalone utility.
Most of the code was written and tested over a four month period. It was released in 2004 and was soon followed by a minor update. Then in early 2005 we made a more colourful release with a dedicated website. This is version 2.0 of the software that is still current today.
Making of a Java desktop application
Most of the code was written using version 3.2.1 of the NetBeans IDE. The user interface is made using the Swing graphical user interface framework, and adheres to the Java Look and Feel Design Guidelines. Some components are extensively customised to suit the needs of the application.
The Java Software Development Kit provides the basic functionality for reading and writing files in the zip format. The application then uses its own models of data for presentation and editing by the user. Multi-threading allows the UI to be redrawn while other tasks are working. Much optimisation was necessary to maintain performance when working with thousands of entries, for presentation and rule checking which happens transparently from a user's perspective.
The software is compiled to target version 1.3 of the Java SDK. This version of the API offered the right balance of functionality to make a workable implementation. Coincidently, the early editions of Mac OS included a Java Runtime Environment made by Apple that supported the 1.3 specification. At the testing phase it became desirable to support that implementation as well as the JREs created by Sun Microsystems for Microsoft Windows and Linux.
The small application size is due to the ProGuard Java Optimizer which cleverly reduces Java class files.