DEV Community

Robert Jaros
Robert Jaros

Posted on

KVision 6.0.0 is released

KVision is an open source web framework created for Kotlin/JS. It allows developers to build modern web applications with the Kotlin language.

I have released KVision 6.0.0. This is a major upgrade bringing a lot of significant changes and new features.

Highlights of this release include:

  • Java 17 or greater is now required.
  • Upgraded dependencies (Kotlin 1.8.0, Spring Boot 3.0.1, Micronaut 3.8.0, Ktor 2.2.1, Koin 3.3.0, Vert.x 4.3.7, kotlin-wrappers 466, Chart.js 4.1.1, Npm-publish 3.2.0, Bootstrap-icons 1.10.3, OnsenUI 2.12.8, Tempus-dominus 6.2.10, Trix 2.0.4, Electron 22.0.0, Tabulator 5.4.3).
  • Drop support for the deprecated legacy backend.
  • Direct dependency on kotlinx.coroutines library.
  • Support for returning Result<T> from fullstack remote methods.
  • New Upload component based on browser file input API.
  • New Numeric and ImaskNumeric components for handling decimal numbers.
  • New kvision-ballast and kvision-routing-ballast modules integrating with Ballast state management framework.
  • A lot of other bugfixes, cleanups and optimizations.

For more details about this release see the changelog.

Requirements

Following the path of Spring Boot, which from version 3.0 is targeting Java 17+, KVision also requires the latest LTS release of the JDK. Dropping support for the old, legacy backend is also a natural thing, since it's now deprecated in Kotlin 1.8.0.

As a result, we've simplified the codebase, reduced the resulting bundle sizes, and improved the performance, stability and security of fullstack applications.

Components

A few JavaScript libraries which were used by KVision components lost their support and proper maintenance. We had to remove those components and replace them with some other libraries. Fortunately the rich JS ecosystem provided good alternatives. New TomSelect and TomTypeahead components, based on the lightweight TomSelect library offer similar feature set to the old Select and Typeahead components, although the API is slightly different.

We've also put a lot of work to the numeric components. Instead of one spinner component, we now have three numeric components - Spinner for integer values, Numeric for fixed decimals and ImaskNumeric for decimal/float values with fully masked and configurable input.

Integrations

New modules allow you to easily build KVision apps with the Ballast opinionated application state management framework. You can see how Ballast (together with Koin) can help you design your application architecture in the new todomvc-ballast example.

It's also easier to use coroutines in your projects, because kotlinx.coroutines library is now a direct dependency of all KVision applications (note: you can still develop apps without using coroutines without larger bundle size).

Migration

As with any other major release there are breaking changes in 6.0.0. A dedicated migration guide is available, so be sure to read it before upgrading.

Don't forget to ⭐️ my project if you like it!

As always, any feedback is appreciated!

Top comments (0)