Out of all Java web frameworks, Vaadin appears to be one of the more popular choices for developers focused on designing nice interfaces. I wanted to find out more about Vaadin, so I spoke with Henri Muurimaa.
Henri has been a professional developer, software architect and team leader since 1997. Over the years he has used many Java technologies and tools in several projects of various scopes and sizes, and he has been a member of the Vaadin team since 2002.
DZone: Could you give a one paragraph intro for what Vaadin is and what it solves?
Henri Muurimaa: Vaadin is a web framework that makes it super easy to create beautiful web user interfaces. You create your UI using the server-side API in pure Java, and Vaadin takes care of all of the RPC and browser stuff for you. Vaadin includes a comprehensive set of rich and beautiful components. The resulting UI is fully Ajax enabled out of the box, and can be easily customized using CSS. Vaadin requires no browser plugins, and supports all modern browsers, application servers and Java portals.
DZone: Is the framework backed by any company in particular?
Henri Muurimaa: The Vaadin Framework is created and supported by Vaadin Ltd, a Finnish company founded 11 years ago. The company, which was originally called IT Mill Ltd, has developed the technology since 2000, but only after significantly increasing the amount of marketing did the general public start hearing about it. The new name and brand was launched at the JavaOne 2009.
Vaadin Ltd makes money by selling services (consulting, training etc.) and optional add-ons. We currently employ 44 developers.
DZone: Where did the name come from?
Henri Muurimaa: Vaadin is a Finnish word that means a female reindeer. It is also a mythological creature in the Finnish folklore. Further background can be found in an appendix in the Book of Vaadin: http://vaadin.com/book/-/page/vaadin.html
DZone: What development tools exist to help developer productivity? Are there visual editors available?
Henri Muurimaa: Regarding IDE support there are plugins for Eclipse and Netbeans.
The visual editor makes it easy to create views and composite components using a WYSIWYG interface. The editor supports roundtrips, so you can modify the visual presentation or the generated source code, and the changes are automatically reflected to the other side. The editor is included with the Eclipse plugin. See a demo at http://demo.vaadin.com/visualdesigner-nightly
There is also a plugin for Spring Roo that allows the developer to easily create a rich UI for his domain model. See http://vaadin.com/springroo
The documentation is top notch: there is a free book that contains the full reference. The book is available online, and we give away free copies at conferences and meetups. We will also mail them to any interested company upon request. See http://vaadin.com/book
The Vaadin Sampler makes it easy to see all different components in action. Source code snippets are included. http://demo.vaadin.com/sampler
The Chameleon Theme Builder makes it easy to create a look-and-feel for your application. You just define the colors and fonts and immediately see how the various Vaadin components look with them. The resulting theme can be downloaded as a JAR file that is simply dropped to your project, and can be modified later. See http://demo.vaadin.com/chameleontheme
Vaadin includes a powerful yet simple add-on mechanism, and a directory with over 180 add-ons. A few of the add-ons are commercial or dual licensed, but the vast majority are free. The community can distribute their own add-ons through Directory. See http://vaadin.com/directory
The last but not least productivity booster is our commercial support service, the Vaadin Pro Account. It includes several features that ensures you get the most out of Vaadin. See http://vaadin.com/pro-account
DZone: Could you provide an overview of the architecture?
Henri Muurimaa: Vaadin consists of a server-side framework and a client-side engine. A developer creates the UI using the components, and Vaadin takes care of sending the UI state to the browser and rendering it there. The client-side engine captures user interaction and sends it to the server as needed. User interaction is can be reacted to by registering event listeners to the components.
This makes it easy to separate the user interface from the business logic.
DZone: Could you give some tips to those who want to get started with Vaadin?
Henri Muurimaa: Vaadin is very easy to learn and get started with: http://vaadin.com/tutorial
There are lots of examples available in the book and on our site, but if you run into a problem just head over to our forum that is frequented by dozens of friendly and helpful experts.
DZone: Will Vaadin have any response to Spring Roo or Play?
Henri Muurimaa: As mentioned before we support Spring Roo. The Roo plugin has been created in collaboration with VMWare.
DZone: What are the add-ons?
Henri Muurimaa: There are currently over 180 add-ons available. They are divided to the following categories:
- UI components - add new functionality to your user interfaces
- Data components - interface various data sources to Vaadin components
- Themes - add a fresh look to your application
- Miscellaneous - the rest
Most of the add-ons are free under the Apache 2.0 license, but a some of them are commercial or dual licensed. Vaadin Ltd offers currently five such add-ons, see: http://vaadin.com/pro-addons
Note that licenses for all pro add-ons are included in the Vaadin Pro Account subscription.
DZone: What are the most popular add-ons? Is it difficult to write one, and how can I make money from my add-on?
Henri Muurimaa: The list of most popular add-ons can be seen in the Directory: http://vaadin.com/directory#:s=downloads
Creating and packaging new add-ons is easy using just Java. Add-ons with a client-side part are created using GWT.
The Directory includes instructions on how to create and package add-ons: http://vaadin.com/directory/help/creating-vaadin-add-ons
You choose the license and pricing for your add-on when you submit it to the directory.
DZone: What mobile support exists for Vaadin?
Henri Muurimaa: A Vaadin UI doesn't rely on any plugins, so it can be rendered on any modern browser, including mobile ones. In addition to this, release 6.6 brought many special improvements targeted solely for touch devices: one-finger touch scrolling, drag and drop, sliders, sub-window handling etc.
However, to bring your Vaadin touch interface to the next level you must consider the Vaadin TouchKit. It is a Vaadin add-on that makes it really easy to create Vaadin UI's with a native iOS look and feel. The current version is a bit dated, but a new major version of with a ton of changes, improvements is due very soon.
Vaadin TouchKit is a commercial add-on released with dual licensing.