Vaadin is a Java framework for building modern Business Web Applications. It is designed to simplify and abstract away the complexities of web development, allowing you to create rich, interactive user interfaces using ONLY Java. I personally use it for Administrative interfaces as it minimizes the need to write separate logic for the server-side functionality and for the user interface.
Server-side Rendering Session
One of the distinctive features of Vaadin is its server-side rendering approach. The applications and user interface state is saved in the user session. The stateful nature of this approach may hurt scalability for public applications that are open for any user. But, for Business Applications that are opened only by employees within corporations – it will most likely never hit the limits of the server.
How Vaadin Accoplishes – PWA?
Up to version 8 Vaadin was using Google Web Toolkit as underlying components. As Google abondoned the project to Apache, for any meaningful enterprise – this means – no support and so – no-go.
After some version iterations – they’ve now use their own framework underneeth – Hilla. They use React JavaScript Framework and Spring Boot as a base. As a Java Developer – what you need to know is
- You can use all Spring & Spring Boot stuff
- You do not need to touch any React, JavaScript, CSS or HTML code – for the purpose of business logic.
Development Speed from no Context Swich
Businesses that want to be successful need to deliver software fast. One of the ways is to use a low or no-code solution. But, this option is not suitable for all cases. For complex business requriements a custom development is the only option. And for these cases – using a programming language in all layers of the software is key for
- reusability of software components
- development speed thanks to no context switch between different programming languages.
- minimize the cost thanks to lower need of engineers.
Vaadin – write only java – and get Web Applications
In the Hilla framework seems like they’ve replaced JavaScript/TypeScript – with Java – when writing React Components. If you do not want to write HTML – the option is Vaadin. You could access some of the user interface properties from java code.
- setWidth
- setHight
- setFlexGrow (so an element can expand to the available space)
- And if you really need it, you could write CSS stuff from the java code