Community Spotlight - April 2016

For this month’s Community Spotlight, I interviewed Godfrey D. Beray.

Godfrey D. Beray is a Senior Development Consultant at Cubeworks Technology Consulting & Solutions and IT Consultant for the F&C Group of Companies and Society Agri-Venture Enterprise in the Philippines. He's also a co-founder and event head at Developers Connect (Iloilo Chapter), and Finance & Admin for Philippine Institute of Cyber Security Professionals (Panay Chapter). During his free time, he spends most of his time with his family, especially with his daughters, Yza and Gab.

Hi Godfrey, it’s great to have you with us for this interview. You have been doing a lot of web development with Vaadin. How did you come upon Vaadin and why did you decide to use it?

I started my career as a Java Developer way back in 2011, but since I'm not good in web design, I had difficulties in creating good Web-UIs for my project. I started searching for a good Web-UI framework and I happened to come across and read the blog For the Love of Vaadin: RIAs Done Right. It's like a light from the end of the tunnel as I have tried several java frameworks but designing the front-end with HTML + CSS + JavaScript has always been my weakness.
 
Vaadin comes with a decent default theme so I could focus more on coding and less on the styles. When I started with Vaadin, the default version of the unofficial plugin for Netbeans was v6.2. I started working on a prototype project and slowly moved up from one version to another.

For the Love of Vaadin! That was a pretty popular blog post. How have you seen the evolution of Vaadin since then, considering we are now deep into Vaadin 7 series?

There was no Grid component back then, you needed to work a lot with the Table component to get a nice functionality, and Calendar was just an add-on, not yet part of the Vaadin core. The reason why I have kept using Vaadin until now is because of the dedication that the Vaadin team has put into it. I can't think of any requirements that will force me not to use Vaadin in most of my projects.

What do you consider to be the top features of Vaadin?

Plain server-side Java coding is the top feature for me. You build up user interfaces just like you do with Swing, so you can focus more on your coding and worry less about the layout. I was able to build a simple employee directory just by trying some available components from the demo, and exploring and reading some documentation about the framework.

So, how does Vaadin work? Could you briefly explain it for anyone with no previous experience?

It just works out of the box without getting yourself into HTML/CSS/JavaScript. If you're a desktop developer, then Vaadin Framework is for you.

What other technologies or libraries are you often using in your Vaadin projects?

Since most of my projects are business applications, common libraries that can be found in my project dependencies are POI, JFreeChart and JasperReports.

What are the top features you’d like to see in the upcoming versions of Vaadin Framework?

As of now, I'm currently satisfied with the feature set Vaadin provides to finish all my projects, and there’s still a lot of room for me to explore and learn about Vaadin. I was just lucky enough that I was able to get a copy of the book Vaadin 7 UI Design By Example from Packt Publishing when I migrated from Vaadin v6 to v7. And with the introduction of the Valo theme in v7.3, the look and feel was brought to a new level (great work and good job!). 

Thanks Godfrey for sharing your thoughts about Vaadin and best wishes with your future projects!

We are Vaadin - Working at Vaadin

Vaadin is one of the Great Places to Work companies in Finland and working here gives you a unique opportunity to work with open source tools that affect hundreds of thousands of other people’s lives.

Jonni Nakari

Vaadin is growing at such a rapid pace that new opportunities for both professional and personal growth arise every day. Here’s the story of one.

Hello world, meet Jonni!

Jonni is a great climber and a Vaadin Expert. He's been working at Vaadin since 2012 as a developer and trainer. “I'm a sporty nerd who seeks new technologies. Earlier I worked in a smaller software company and studied IT in the university. A headhunter contacted me through LinkedIn and I got interested in developing my career at Vaadin.

During the first month I was in a training project, which served as a quick introduction to the tools. Since then I worked in one of our larger customer projects for a few years. Today I work as a software development consultant and a trainer. On the software development side, agile development really is the key to success. We use Scrum practices both in internal and external projects here at Vaadin.

In my work, I need versatile software knowledge, I have to learn what different browsers are capable of and how to create appealing user interfaces. I also need to understand the problems, think quickly and be eager to find solutions.

As a workplace Vaadin is open, skilled and constantly evolving. The best thing about working at Vaadin is the fact that whenever you get stuck with a problem, there is always resourceful colleagues you can ask for help and get unstuck. The work environment here is really good and in fact, Vaadin has been successful in many "Great places to work" listings. Another big reason for me to work here is the whole open source mentality.

Both my work and my most treasured hobby, climbing, offer interesting challenges. I have been climbing in Jordan, Iran and all over Europe. I find new energy at the mountaintops!”

Vaadin is experiencing rapid growth. Will you be the one to help us conquer the next mountain?
 

See the open positions 

What’s up in Vaadin R&D?

The core framework team, whose responsibility it is to develop Vaadin Framework, has been busy during the winter building a major update to the Vaadin Eclipse Plugin. But we have built many other new features during 2016 as well - most of them available for you to try today.

We have also decided that there will still be at least one big release for the 7.X series. Originally we planned to release Vaadin 8 next, but decided to publish some exciting features to the 7-series earlier. Version 7.7.0.alpha1 is just fresh out of the oven and you can try the most relevant features today.

The improvements in 7.7 (before summer) will be fully backwards compatible. API wise the same applies for Vaadin 8, with its improved data binding APIs and mobile support, but we’ll be paving way for new features by dropping some legacy browser support and only supporting Java 8 and newer in Vaadin 8-series.

Let’s cover some things that we have planned for Vaadin 7.7 and which you can already try out via our pre-releases repository.

AppWidgetset will make your widgetset invisible

In Vaadin 7.7 the widgetset concept will be invisible by default. Also transitioning from a “default widgetset project” to a project that is using add-ons will be easier. Practically we will be auto-generating the .gwt.xml file with tooling (Maven plugin) and you don’t need to think about it at all.

The autogenerated widgetset will by convention be called AppWidgetset and it will be a generated source file that you, for example, shouldn’t add to your source code management system. If you are using the autogenerated AppWidgetset, you don’t need to add a @Widgetset annotation or similar error prone web.xml configuration to your application, unless you are doing something more advanced. If you need some application specific GWT module declarations, you can still create the widgetset manually as you have done before.

Maybe the most visible thing with the new widgetset handling is, that if you don’t use any client side extensions, there will be no GWT compilation at all. A fresh Vaadin project from vaadin-archetype-application is now built in couple of seconds, if Maven has cached the required modules. To create a project with 7.7.0.alpa1, try following CLI commands:

mvn archetype:generate -DarchetypeGroupId=com.vaadin \
    -DarchetypeArtifactId=vaadin-archetype-application \
    -DarchetypeRepository=https://maven.vaadin.com/vaadin-prereleases \
    -DarchetypeVersion=7.7.0.alpha1 \
    -DgroupId=org.test -DartifactId=testapp -Dversion=1.0-SNAPSHOT 
cd testapp
mvn install jetty:run -Pvaadin-prerelease

 

CDN - widgetset goes to the cloud

We did an April’s fool about “CDN”, but seriously, we are working on hosting all your widgetsets from the cloud. Along with Vaadin 7.7, you can actually delegate the compilation of your widgetset to a cloud service and even leave the hosting for its task. And the best thing is that if the widgetset-combination already exists in the CDN, no compilation is needed and you’ll get it immediately! We’ll store all permutations used so far by any other Vaadin developer.

Many Vaadin developers only use add-ons from Vaadin Directory or maven central, which is a really good habit, actually. With a CDN mode, the next version of vaadin-maven-plugin can request a correct permutation of add-ons and Vaadin, and use that as your application’s “client side engine”. There is also a “hybrid mode” that downloads the CDN compiled widgetset for your web app to serve.

Although we believe it will become the most common way to consume Vaadin Add-ons, the cloud based solution can’t fit all cases. Some apps and organizations just cannot trust a third party service and if you have some application specific widgets or extensions, you’ll still have to use the plain old local compilation option.

If you try the 7.7.0.alpha1, you can adjust the widgetset compilation mode (local, cdn, fetch) with the following configuration to your vaadin-maven-plugin part in pom.xml:

    <configuration>
        <widgetsetMode>cdn</widgetsetMode>
    </configuration>

Maven build for framework - now easier to contribute to the core

Refactoring the old build system doesn’t affect you as a Vaadin user, but in case you want to contribute to the Vaadin Framework project, it will be a big help. Also, if you have an urgent situation in your project, you can really easily build custom versions of Vaadin for your project.

You can actually try the Maven build today, if you want. Assign the following commands to get Vaadin checked out from github and a development version built and installed into your local maven repository for testing it out in your own projects.

    git clone https://github.com/vaadin/vaadin.git
    cd vaadin
    git checkout feature/mavenize
    mvn clean install -DskipTests

Naturally we’ll get rid of the “branch checkout” step, once the feature branch is merged to master.

So now, if you get bored waiting for a fix to land in Vaadin, it should be easier to try fixing it yourself and testing the fix in your own project. We of course wish that you share the improvements with the community. See the contributing page for more details about pushing changes for review.

See all feature branch builds

We have still a couple of other neat changes we wish to finish for 7.7, but then we’ll go full steam with the data binding improvements and Vaadin 8.

Naturally you can follow all Vaadin development and feature branches from the github page, but if you’d just like to try some of the pre-releases (alphas, betas, feature branch releases), browsing the pre-release repository is an easy way to find all cool new features you could try. And remember to share your findings about experimental things as well via dev.vaadin.com.

Try Vaadin 7.7.0.alpha1 today!