StepZen and Vaadin logo

Consuming GraphQL APIs from Java applications

GraphQL has become a common alternative to REST as a way to provide data to modern web applications. They both solve the same problem, but GraphQL comes with a different set of trade-offs. It is designed to answer challenges pertinent to larger organizations, such as inter-team communication and ...

Don't let deep linking code clutter your UI logic

I recently did an exercise to clean up one of the most used view templates in the start.vaadin.com tool, the MasterDetailView. I implemented almost a dozen tricks to make the code readable and maintainable. I plan to cover some of those in the upcoming weeks, so I decided to start cleaning up the ...

Passkeys - Secure authentication in 2023

Last spring we published a multifactor demo, showing how MFA could be seamlessly integrated into an application to create a smooth experience while protecting specific actions. Around the same time, the FIDO Alliance announced that Apple, Google, and Microsoft have committed to implementing a new ...
Display screen with performance charts

Performance profiling: Rendering 90k table cells in 5 different ways

I met a customer at W-JAX who had a performance issue with one of their screens. They were rendering a huge 90-column and around 1000-row TreeGrid on that screen. The screen was a preview for a database query that would ultimately be downloaded as a file for further analysis in another software. ...
Infinite scrolling

How to implement infinite scrolling using Vaadin components

Infinite scrolling is a common UI pattern where more of a large data set is dynamically loaded from the server while users scroll through the page. The approach used by, for example, several social media platforms saves a lot of computing resources both on the client and server side without ...
Testing a custom component

Custom component unit and integration testing tips

How to make your custom component a robust building block of your UI. In this tutorial, I will share some more ideas in the domain of creating custom components. My previous blog post was about creating a custom component with Lit, this is the next chapter of the story. This time we will learn some ...
A laptop widget with a Bluetooth sign in the center.

The Java Developer’s Approach to Web Bluetooth

The Web Bluetooth API is one of the interesting new technologies that the Google Chrome team has cooked up that further narrows the gap between web apps and “real” apps. It allows full access to Bluetooth devices straight from the browser. The ability to connect directly to various devices like ...
An open browser graphic with a loading symbol on a blue background.

Enable Live Reload for your Vaadin project

Vaadin Flow supports live reload features out of the box. This enables developers to view their changes in the browser without manually restarting the server and refreshing the browser after each change in the code. In this blog post, I'll show you how to enable automatic browser reloads for your ...
Purple background with c

Create a custom component with Lit

Learn how to make your custom component a first-class citizen in the Lumo design system. In this tutorial, I will share some learnings I have gathered with my team when we have implemented custom components for Vaadin. When you start creating your custom components, I would assume you like them to ...