It’s time for another chapter of the Community Spotlight! And for this month’s edition, I had the opportunity to have a nice chat with Marco Collovati, winner of the IBM/Vaadin Challenge, author of the Spinkit Add-on for Vaadin, and active member of the Vaadin Community. Marco lives in Udine, a town in northeast Italy, and works for Techfriuli as a Senior Developer. He enjoys learning new software technologies and languages, likes reading books about archeology and history, and dedicates most of his spare time to his wife and daughter.
Hello Marco, thanks for accepting the invitation. Nice job with the add-on. I really liked the demo app. When did you start working on it and how did you come up with the idea?
Hi Alejandro, thank you for the invitation. I started working on it during the last Vaadin Challenge. I came across the Spinkit CSS library because I needed a loading screen for an application. So, I found the PleaseWait JavaScript library that uses Spinkit. I first used it on a non-Vaadin application. It was an HTML5 application hosted on a Xerox printer. After that I created the add-on and used it during the Vaadin challenge, and also in some other small Vaadin apps.
Hosted on a printer. Sounds cool! What was the purpose of the HTML application?
We developed two applications.The goal of the first one was to show advertising where the printer is idle. We use Magnolia CMS as backend to let customers load advertising images.
Magnolia! They use Vaadin as well.
Yes, they rewrote the UI completely with Vaadin on version 5. The second app was used for customer support. From the printer, users can send help requests by filling a form. The app also sends the printing counter to the server, used for billing purposes. The printer has a WebKit based browser with some functionality blocked (like audio).
Interesting. So... after that you decided to implement the add-on. Apparently you had some experience with Vaadin before implementing the add-on, right?
Yes, I used Vaadin 6 in the past to build some portlets on Liferay. After that, I built some applications inside Magnolia using Vaadin 7. They were small apps that integrate external data sources within Magnolia, for example simple CRUD views for legacy app databases and some sort of geolocation on top of the Vaadin Leaflet addon. Recently, we also built a UI to integrate a RFID reader. The app is connected to the RFID reader and when a tag is read and the associated information is fetched from JCR and displayed on the screen, if the tag is not recognized, the user follows a wizard to register data related to the tag.
Sounds like an interesting project. So, how did you find the experience of creating a Vaadin add-on?
Creating the add-on was easy. Vaadin documentation is very good and there are tons of other material that are very helpful (for example the blog and the wiki). I like AbstractJavascriptComponent and AbstractJavascriptExtension very much. They make integrating JavaScript libraries very easy
Yes, those are good options when implementing Vaadin client side components. Do you have any tip or advice for developers trying to implement their own add-ons or widgets?
I think the better way to learn something new is taking a look at existent code. So, downloading source code from other add-ons and studying them is my preferred way to start. Another useful thing is to use mvn vaadin:run-codeserver. Sometimes debugging connectors with console.log is not enough, if you know what I mean!
Totally agree! Well, thanks for sharing your thoughts with the community. Is there anything else you would like to add?
I’d like to thank the whole Vaadin team for your great work.