Table of Contents
Hilla, a new web framework from Vaadin for Java developers, combines the backend with Spring Boot and the frontend with a mix of TypeScript and Lit.
Vaadin Introduces Hilla to Unify Frontend/Backend Web Development
Hilla, formerly Vaadin Fusion, has several features that make business application development easier, such as a single project setup for Java and TypeScript that stays in sync. It includes a large number of UI components, such as Vaadin components. It also includes support for single-page apps, as well as Spring Security for application security. Hilla includes all of the required assets for a web application, such as routing, forms, security, and build tooling. Furthermore, the framework supports automated TypeScript code creation, which maintains the frontend and backend in sync.
Hilla needs Node 16.14 or above, as well as JDK 11 or higher, and the Getting Started guide has instructions. Vaadin created and maintains Hilla, although it does not contain the Vaadin Flow. Instead, it builds native web components with Lit, a lightweight library comparable to ReactJs. Hilla also contains both the frontend and the backend in the same project. Only Spring Boot is presently supported by the Hilla framework. Other frameworks, such as Quarkus or Jakarta EE, are not currently supported.
Although Java is supported in the first major version of Hilla, according to a Vaadin webinar, other JVM languages, such as Kotlin, may be added in the future. Additionally, because it is an open-source project under the Apache 2.0 licence, anybody may examine, expand, and alter the source code, as well as report bugs. Vaadin’s early resources, including documentation, a webinar, and a Spring Tips blog post, can be used by developers interested in evaluating Hilla. On GitHub, you’ll find the source code.
What is Vaadin Framework?
Why Was Hilla Built?
Is there a need for another frontend framework in the world? We believe it does because various frameworks have different underlying assumptions that lead to different optimizations. Let’s look at the concepts that lead to the development of Hilla, a framework that combines Spring Boot backends with reactive TypeScript frontends. It was discovered that traditional web application development approaches aren’t entirely matched with the requirements of ordinary commercial apps. Hilla developers wanted to help by developing a framework that’s tailored to those kinds of apps.
Whereas a typical consumer application might have a large number of users focused on a few discrete use cases and application views, many commercial apps have the opposite scenario. Complex business procedures, massive data volumes, and a user base that is frequently in the hundreds or thousands, rather than millions, are all present. These variables combine to provide very modest hosting costs (ignoring backend features like data storage and system integrations) and a significant development effort to support all of the application’s numerous perspectives. In other words, development effort accounts for the majority of the application’s entire cost, and an increase in productivity will have a significant overall impact.
The loading of sophisticated data from the backend to be shown in the browser, and then sending changes back to the backend is a key aspect of any business application. We can either spend more time adjusting each use case to better fulfil your users’ demands, or we can have more use cases built in the same amount of time, by focusing on making this section incredibly easy to build. More than just moving data around and verifying it, business application development entails a lot more. Hilla provides all of the tools you’ll need to create and link your app’s UI to a Java backend. This comprises the items listed below.
- a single project setup for Java and TypeScript
- a large number of UI components that are accessible
- Bootstrapping and routing single-page apps
- For JWT-based authentication and authorisation, automatic integration with Spring Security is made available.
All of these issues are seen by us as generic principles that can be easily integrated and maintained as a whole, so you won’t have to waste time selecting libraries and ensuring that they are compatible between updates. This leads us to another reason to design Hilla: you should be able to focus on functionality that is unique to your company.
Hilla is based on the idea that an application’s user interface does not cease at the network barrier between the web browser and the server. Instead, feature teams are in charge of a specific component of the application’s UI as well as at least the “outermost” layer of the backend code that supports that UI. The “backends for frontends” pattern is what this is referred to as. The way you simply need to add a @Endpoint annotation to a Java class to make public methods from that class available to the frontend is an excellent illustration of the productivity advantages of this paradigm (and bypass the strong defaults for authorization in this case). Hilla can generate TypeScript to call such endpoint methods directly because it handles both the frontend and the backend. Because this element of the backend is designed particularly for its associated created frontend, rather than a generic REST client, you don’t need to describe how data is delivered over the network. The advantages of this basic example go well beyond the apparent lack of boilerplate code. The IDE may support the developer with auto-completion and type information based on the TypeScript type for HelloEndpoint, which isn’t visible in the code sample.
TypeScript generated from Java does more than just make a server-side method accessible from the client. There are also TypeScript types for business objects that you’d send as arguments to endpoint functions or get in a response based on the server-side return value. Hilla also creates information to make it easier to link that data to a form, such as client-side form validation using bean validation (JSR-380) annotations on Java classes. As if that weren’t enough, you may transmit a business object instance over the network for extra server-side validation and get any validation issues in return.
Hilla is being developed as an open-source framework. In certain circumstances, using free, open-source software might lead to hazards such as not having a single provider for maintenance and support. Vaadin, a company with over 20 years of expertise in developing, maintaining, and supporting open source web development frameworks, is backing Hilla. The software we’re creating and offering as open source is the lifeblood of our company. They know all there is to know about what they have created. They offer Hilla first-party assistance and build our roadmaps on the demands of our users and clients. Vaadin’s roots lie in the creation of large and complicated corporate applications, Java, and the web. They feel that their knowledge and viewpoints can contribute to the advancement of that ecosystem’s subset. This is why they created Hilla, a Spring Boot-based open-source web framework with first-party support for business apps. They feel that an architecture that allows Java and TypeScript to support each other, rather than keeping them separate, is ideal for this type of application. The “backends for frontends” approach is being used by feature teams in our world to quickly construct complete apps that surpass customers’ expectations.
Is Vaadin Frontend?
Vaadin is a platform for building full-stack web applications. It’s meant for making single-page applications.
Vadin Flow and Fusion
TextField, Button, ComboBox, Grid, and many more classes in Vaadin Flow’s Java API may be configured, stylized, and attached to layout objects instances of classes like VerticalLayout, HorizontalLayout, SplitLayout, and others. Add listeners to events like clicks, input value changes, and others to implement behaviour. Custom Java classes that implement another UI component produce views (custom or provided by the framework). The @Route annotation is used to expose these view classes to the browser with a specified URL.
Vaadin contains a collection of Web Components that implement User Interface (UI) components. These components contain a Java API for usage on the server (Vaadin Flow), but they may also be used directly in HTML publications. Vaadin’s UI components enable right-to-left languages, mouse and touch events, CSS customization, WAI-ARIA compatibility, keyboard and screen reader support, and right-to-left languages.
Vaadin Fusion is a framework for creating client-side web programmes that are reactive. You can stay more productive with reusable web components and simpler, more secure, and type-safe access to the Java backend than with minimalistic frontend frameworks. Fusion apps are more reliable than the alternatives since they are built on web and industry standards.
While Flow and Fusion provide two different approaches to UI development, they both share the same philosophy: making UI development easier by using reusable components, automating browser-server connections, and adopting a Java backend. Vaadin Flow and Fusion are inextricably linked. Fusion and Flow share the vast majority of the Vaadin platform. This covers the user interface elements, theme, project build, and production mode, among other things. Views created with either framework may be added to the same application. The new feature has no wider implications. In truth, your application’s code remains unchanged. The most significant influence is on our communication and website structure. While Vaadin 14 only comes with Flow, Vaadin 18 will come with both Flow and Fusion.
- If you’re a Java developer who relies on Flow, you can keep doing what you’re doing and disregard Fusion entirely.
- Fusion is a wonderful entry point to Vaadin for frontend developers who are new to the technology.
- You may utilise both alternatives interchangeably straight out of the box if you operate in a full-stack team and require the best of both worlds.
The article above has attempted to briefly explain all the general ideas concerning Vaadin, flow and hilla. Understanding these latest concepts ay help you to choose the skills that you can focus on the best this year. Download the Entri app for tips to make coding easier and faster.