Amino - the new UI toolkit for desktop Java applications

Original author: Josh Marinacci
  • Transfer
image
I want to introduce you to Amino - a graphical library and a very cool UI toolkit. Initially, the library was developed by Leonardo Sketch as an auxiliary, but now it is becoming an independent product. Now Amino is in an early alpha version and is a 100% open source Java library that has the following advantages:

  • 2D / 3D scenography on various engines (Java2D, JOGL and many others);
  • multiple UI controls, CSS syncing;
  • various utilities to speed up the development process;
  • tested to the smallest detail;
  • is 100% free (BSD);
  • 100% Java, ready for use in various, can be used in different languages ​​ported under the JVM (Groovy, JRuby, Jython, JavaScript, JavaFX Script and so on)


Those who are eager to start can read getting started , which will show how to make a completely basic application. Amino seems to be quite obvious to Swing developers, but it’s important to consider certain differences:

  • Instead of listeners, the event bus is used, that is, roughly speaking, listeners are still there, but instead of clinging to each component, everyone clings to the message bus, which allows you to better separate the model from the display
  • Background task API available for multithreading
  • The combination of different scenography modes in paint APIs allows you to work at a convenient level of abstraction.
  • Look & Feel no. All skinning is done through CSS 3, or standard L&F is used.
  • When using JOGL as a backend, you can mix 2D graphics with OpenGL code.
  • By analogy with JavaScript, you can set an id for all controls so that you can then access them directly.
  • Amino created a tool called AppBundler that generates .app bundles for Mac OSX, similar to JNLP. In the end, the user should not care what the application is written on. He should like it stupidly.

What is the difference between Amino and JavaFX and other UI platforms



Amino is not something so innovative. On the contrary, Amino has incorporated the best ideas for the last 20 years, which were manifested in various toolkits. The best was chosen, and any negative points were either improved, or they were somehow thrown out.

The main influence on Amino was provided by JavaFX and Swing. At the JavaOne 2010 conference, Oracle revealed that JavaFX 2.0 will follow the path of Java, making JavaFX even more like Amino. But despite all the similarities, there are several differences:

  • Amino is licensed under the BSD and is being developed by the community to make things inaccessible with JavaFX, which Oracle owns. For example, the substitution of any classes, such as: subsetting, delivery within your application, the creation of versions 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 fast, easy to learn, and very, very inconspicuous, which of course will affect the 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 end developers



Amino is in the early alpha version and everyone clearly understands what this means. The aspirations are certainly great, but so far we have a slow, miserable and buggy release. So the first task for end-users of the toolkit is to search for existing 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 a memory leak.
  • Stage management - the current version is very minimalistic and allows you to work only with basic things.
  • Maven support - now it’s not at all in the project, but a large number of developers use it. It would be great if over time Amino appears in the Maven repositories.
  • CSS parser - it needs to be added so that it processes all the properties and does it correctly
  • Installers: AppBundler now supports JNLPs and Mac OSX .app. We would like to make support for MSI and scripts for Linux, so we need developers who worked with this.
  • More controls are needed: there are not enough such things as the taskbar menu, search fields, diagrams, and more.

Related links:

Also popular now: