Skip to content. | Skip to navigation

Personal tools

Front-End

The interactive part

Frameworks

We have decided to base our efforts on the Eclipse Java Application framework. It provides with a very quick and solid starting point. We will develop Fritzing as a stand-alone application (not a plug-in) using several Eclipse projects.

Eclipse has several powerful libraries that integrate with SWT and are ideal for developing the kind of editor that we have in mind, such as:

Good starting points for us are the GEF examples (especially the Logic Example) and Stanford's d.tools project.

The UI is supposed to resemble that of Processing, so that we have to skin some of SWT. This means subclassing some of the widgets, but shouldn't be too much work for just a few items.

 

Original Evaluation

The choice of the framework was open at the beginning, with the following options.

Java

Besides the standard GUI toolkits AWT and Swing, there is the Standard Widget Toolkit (SWT) from the Eclipse project. It provides extensive features, uses a modern programming model and is constantly improved and extended. It integrates with several other powerful Eclipse projects that suit our needs, like RCP, GEF and EMF.

Another very interesting opportunity is the Java version of Qt, called QtJambi. Qt is supposed to be the most powerful cross-platform framework.

While Java is certainly the most widely known language among designers, it could be problematic technically to integrate existing EDA tools with it. Those are all in C++ or C, and the wrapping strategies that exist are usually cumbersome. On the other hand we do not necessarily want a tight integration.

Python

Python is also an easy to learn language and quite a few designers are familiar with it through  things like NodeBox and Blender. The advantage of Python is that it can integrate more closely with applications written in C/C++, because it is written in C itself. The major cross-system GUI toolkits all have a python binding, like wxPython for wxWidgets and PyGTK for GTK+. Here's an overview of Python GUIs. There are a number of vector graphics libraries, e.g., pyCairo or Mirra (interactive).

Flash

Finally, there's also the opportunity to develop in Flash. Adobe has recently made strong efforts to make it more developer-friendly with ActionScript 3, the Flex environment, and AIR. Certainly the user base is large, too, but not so much in terms of Flash for application development. I do not think that it is ready yet for larger applications in terms of flexibility, performance and stability, and integration with native code would be problematic.

Document Actions
© 2007- 2008 University of Applied Sciences Potsdam \ Powered by Plone