2

At the company I work for, they use Spring for backend. Spring is solid but it gives me a headache. I want to try a simpler Java web framework for a personal project, that can scale later on.

I'm a linux user but nowadays I'm using windows 10, I tried grails and the thing is its setup is hard, Cygwin and stuff, plus the only IDE that truly supports grails is Inellij paid edition, so I won't use it.

I tried play framework but it's giving me errors running on windows plus the fact that play uses scala, and I don't know scala, you can use play with java but you'll have issues down the road, that's what the people say.

Spark seems like a micro framework with some libraries included, not sure if I go for that. What I want:

  1. A real java web framework, open source, fully supported by eclipse or spring tool suit, and maven is its dependency manager. No commercial restrictions.
  2. Easy to setup on windows, easy to work with, no steep learning curve
  3. Can easily be used to create rest api and single page application
  4. Plays well with Junit and AngularJS
  5. Actively maintained, good documentation.

It's a plus if it has a decent community, either on stackoverflow or the forums.

1

Vaadin

Vaadin is a Java framework for building desktop-style web apps written in pure Java.

Your app lives in the server-side, executing in pure Java in a JVM.

The user-interface is generated at runtime by the Vaadin framework servlet and rendered remotely on the client-side in standard web technologies (HTML, CSS, JavaScript, DOM, WebSocket, etc.).

So Vaadin is unlike all the other page templating and web frameworks. You need know virtually nothing about HTML, CSS, JavaScript, DOM, WebSocket, and such. You say you want a layout with some buttons, fields, labels, grids, and other such widgets, write behaviors for those widgets, all in pure Java. Vaadin automagically presents that layout with widgets in the web browser. No Java nor plugins needed in the web browser.

Meets perhaps all your needs. Works as a single-page app. Open-source, free of cost, very actively maintained by a dedicated company with a growing base of over 150,000 developers using it, and excellent documentation in The Book Of Vaadin. Now completely Maven-based for use in any IDE including NetBeans, Eclipse, and IntelliJ.

Vaadin is built on top of the proven Google Web Toolkit (GWT) technology. The Vaadin company is involved in the GWT governance.

You would build your REST API separately if any is needed. Then your Vaadin app would be a client making calls to that REST API if you so desire.

You can of course use JUnit as your web app is entirely written in Java. In addition the company sells a product, TestBench, a tool for automated user interface testing of your web app on all platforms and browsers. (I've not yet used this product.)

The Vaadin framework does not restrict the use of third-party library or widgets. Quite the opposite, they provide infrastructure for outsiders like you to create your own widgets and plug them into Vaadin. They encourage this practice, going so far as to provide an online directory of such "add-ons". You can publish your own created add-ons if you so desire. Hundreds are available now, both visual widgets as well as non-visual components. Occasionally some of these add-ons may even come to be incorporated into the Vaadin framework itself.

Explore the extensive live demos.

  • vaadin seems interesting but i have few questions, vaadin sells its own components, like charts, is it possible to use jchart or charts.js, or did they restrict the use of third party libraries in order to sell their own? and another question, if I want to develop a native mobile app, I have to buy vadin touchkit. Is it possible to use vaadin on the backen and ionic on the frontend to develop native mobile apps without buying anything? – Lynob Sep 27 '16 at 10:12
  • feels like creating an android application – Lynob Sep 27 '16 at 10:35
  • @Lynob No, no prohibition on third-party libraries. Quite the opposite, encouraged. See my edit. – Basil Bourque Sep 27 '16 at 15:28
  • @Lynob I don't think it makes sense to use something like ionic on the front end as the whole point of Vaadin is to render in web technology client-side a user-interface defined in Java server-side. Also, if the Vaadin framework is not for you, the Vaadin team has been innovating with exposing some of the sophisticated Vaadin widgets for use on their own on other web frameworks. Vaadin Elements are built on Polymer technology and work with Angular2 data-binding. – Basil Bourque Sep 27 '16 at 15:45
  • I'll definitely be using if I don't have to create native apps and vaadin elements are awesome, thanks a ton! – Lynob Sep 27 '16 at 15:57

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.