I want to introduce you to Amino
- a graphic library and a very cool UI toolkit. The library was originally developed by Leonardo Sketch
as an auxiliary, but now it becomes an independent product. Now Amino is in a state of early alpha-version and is a 100% open source Java library, which has the following advantages:
- 2D / 3D set design on various engines (Java2D, JOGL and many others);
- multiple UI controls, syntax using CSS;
- various utilities to speed up the development process;
- tested to the smallest detail;
- is 100% free (BSD);
Whoever wants to start, can read getting started
, which will show how to make a completely basic application. Amino's Swing developers seem fairly obvious, but it’s important to take into account certain differences:
- Instead of listeners, a message bus is used (event bus), that is, roughly speaking, there are still listeners, but instead of clinging to each component, everything clings to the message bus, which allows us to better separate the model from the display.
- Available background task API, for working with multithreading
- Combining different scenography modes in paint APIs allows you to work at a convenient level of abstraction.
- Look & Feel no. All skinning is due to CSS 3, or the standard L & F is used.
- When using JOGL as a backend, you can mix 2D graphics with OpenGL code.
- Amino has created a tool called AppBundler, which generates .app bundles for Mac OSX, by analogy with JNLP. In the end, the user should not care deeply what the application is written on. It should stupidly like him.
What is the difference between Amino and JavaFX and other UI platforms
Amino is not so innovative. On the contrary, Amino has absorbed the best ideas of the past 20 years, which manifested themselves in various tulkits. The best was chosen, and any negative points were either improved, or they were somehow thrown out.
The main influence on Amino was JavaFX and Swing. At JavaOne 2010, Oracle announced that JavaFX 2.0 will follow the path with Java, which makes JavaFX even more similar to Amino. But despite all the similarities, there are several differences:
- Amino is licensed under the BSD license and is developed by the community, which allows you to do things inaccessible with JavaFX, which is owned by Oracle. For example, the substitution of any classes, such as: subsetting, delivery within your application, the creation of versions that are convenient for you, and so on.
- Amino is focused on desktop applications. JavaFX on web and mobile applications like Flex and Sliverlight.
- Amino is significantly more lightweight than JavaFX. The creators are faced with the task of making it quick, easy to learn, and very, very inconspicuous, which of course will affect difficulties with backward compatibility and the number of chips.
- Amino connects to Swing panels, so you can gradually add Amino components to existing applications.
What is expected from the ultimate developers
Amino is in the early alpha version and everyone clearly understands what this means. Aspirations are certainly great, but so far we have a slow, miserable and buggy release. So the first task before the end users of the toolkit is to search for available bugs, so go ahead to the site for the latest version. If you are interested in this project, then there is the following front of tasks:
- Working with events - we need a new implementation, since the current one is very slow and most likely has problems with memory leaks.
- Scene management - the current version is very minimalist and allows you to work only with elementary things.
- Maven support - now there is no project at all; however, a large number of developers use it. It would be great if, with time, Amino appears in the Maven repositories.
- CSS parser - it needs to be added so that it handles all properties and does it correctly
- Installers: AppBundler now supports JNLPs and Mac OSX .app. We would like to make support for MSI and Linux scripts, so we need developers who have worked with this.
- More controls are needed: there is a lack of such things as the taskbar menu, search fields, charts, and so on.