Author: Matti Tahvonen

Implementing a custom UI for a web app that has no API
It has happened before, and it happened again. I found myself dissatisfied with software I had to use multiple times a week. As a professional UI developer, I am particularly sensitive to bad UX. When a perfectly functional phone reservation service for my home island’s ferry was replaced with a ...

Don't be afraid of classes
“Java is a high-level, class-based, object-oriented programming language” - Wikipedia. I get to see and read a lot of Java code at work. Sometimes, I even get to write some.🥳 Recently, I have noticed a tendency that we Java developers are, for some (wrong?) reason, afraid of classes. A class is a ...

How to publish Java libraries to Maven Central with GitHub
The Central Repository, often referred also as Maven Central or simply Central, is the primary repository for publicly shared JVM libraries, independent of the actual build tool. For example, since JCenter was closed, you are most likely using Maven Central, even if you wouldn’t be using Maven. ...

Three quick ways to display your Java objects in the UI
As a developer, there often comes a time when you need to quickly display your data structures in a human-readable format on the screen. During development, debuggers often provide a nice tree-like view of your data objects, which helps visualize the structure. Building something similar manually ...

Handling slow backend actions in Vaadin apps
Vaadin’s business-app-oriented web frameworks come with a helpful productivity feature that automatically indicates to users when a backend call takes unusually long. While this feature is incredibly useful for developers to understand and manage performance, and is sufficient for most backend ...

Building Vaadin add-ons with minimal dependencies and Spring Boot setup
In this blog, we'll show you how to minimize dependencies in Vaadin add-ons, use Spring Boot for easy development and testing, and set up a clean Maven project for compatibility with various tech stacks. It's crucial to keep the number of transitive dependencies in your add-ons to a minimum. This ...

Reading electronic competition card data with Web Serial API
In this blog, we'll cover how to integrate hardware devices like USB card readers with Java web apps using the Web Serial API in a Vaadin app. Many developers rule out web apps immediately when device integration is involved. But in many cases, it is for the wrong reasons. Technologies have ...

Hosting REST endpoints next to your Vaadin UI
When building your UI with Vaadin, you need no REST endpoints. With Vaadin Flow, you don’t even need to think about what gets transferred between your browser and the server. But it is common for your Vaadin application to expose some REST endpoints, for example, to separate services or ...

How to implement responsive web design in Java
Responsive design aims to improve the usability of your app on different devices and varying window sizes. Many consider responsive web design to be a task dedicated to CSS magicians. With Vaadin, the same end result can also be accomplished in pure Java. In fact, you can achieve much more than ...