Modules

KVision consists of both required and optional functionality. Modules can be added as dependencies in build.gradle.kts file.

All modules which include CSS stylesheets require explicit initialization. This also applies to the core module. This initialization ensures a predictable order in which all styles will be applied. The initialization is performed by adding dedicated module objects as parameters to the startApplication() function.

fun main() {
    startApplication(
        ::App,
        module.hot,
        BootstrapModule,
        BootstrapCssModule,
        FontAwesomeModule,
        TomSelectModule,
        DatetimeModule,
        BootstrapUploadModule,
        CoreModule
    )
}

Some modules include more than one, optional initializers. E.g. kvision-tabulator module includes mandatory TabulatorModule but also TabulatorCssBootstrapModule , TabulatorCssBulmaModule, TabulatorCssMaterializeModule, TabulatorCssMidnightModule, TabulatorCssModernModule, TabulatorCssSemanticModule, TabulatorCssSimpleModule and TabulatorCssStandardModule for all CSS styles supported by the Tabulator component.

This is the current list of available modules.

Module

Description

kvision

Core module required for all applications.

Bootstrap based components.

Can be omitted for applications, which use only the core functionality of the framework.

See Theming chapter for more information.

kvision-bootstrap-upload

Bootstrap based upload form component.

kvision-bootstrap-icons

kvision-datetime

Date and time picker form components.

kvision-tom-select

Select and typeahead (autocomplete) components based on Tom Select library.

Font Awesome support.

Handlebars.js templates support for text components.

Internationalization support.

kvision-imask

Text input mask support powered by Imask.js

kvision-richtext

Rich text form component.

kvision-chart

Chart component.

Tabulator component.

kvision-pace

Pace automatic page loader.

kvision-ballast

Integration with Ballast state management framework

ReduxKotlin state container.

See Using Redux chapter for more information.

Support for using React components in KVision applications.

kvision-maps

A basic module with the Maps component, based on Leaflet library.

PR welcomed!

kvision-toastify

Toast messages.

kvision-print

Printing support with Print.js library.

kvision-routing-navigo

Routing module based on Navigo 7 library.

Routing module based on Navigo 8+ library.

kvision-routing-ballast

Routing module based on Ballast framework.

Onsen UI mobile web components.

jQuery bindings, events and animations.

Configurable REST/HTTP client.

State bindings and observable data structures.

kvision-state-flow

Extensions for Kotlin coroutines Flow, StateFlow and SharedFlow.

Kotlin language bindings for Apache Cordova core API.

See Building with Apache Cordova chapter for more information.

Kotlin language bindings for Electron API.

See Building with Electron chapter for more information.

Select form component tailored for full-stack applications.

kvision-tom-select-remote

Select and typeahead (autocomplete) form components tailored for full-stack applications.

Tabulator component tailored for full-stack applications.

kvision-common-annotations

Compiler plugin annotations for full-stack applications. See: Full Stack Development Guide

kvision-common-types

KVision common module for full-stack applications, with types definitions.

See: Full Stack Development Guide

kvision-common-remote

KVision common module for full-stack applications, with remote services definitions.

See: Full Stack Development Guide

kvision-server-ktor

Ktor server-side connectivity module for full-stack applications.

See: Full Stack Development Guide

kvision-server-ktor-koin

Ktor with Koin server-side connectivity module for full-stack applications.

See: Full Stack Development Guide

kvision-server-jooby

Jooby server-side connectivity module for full-stack applications.

See: Full Stack Development Guide

kvision-server-spring-boot

Spring Boot server-side connectivity module for full-stack applications.

See: Full Stack Development Guide

kvision-server-javalin

Javalin server-side connectivity module for full-stack applications.

See: Full Stack Development Guide

kvision-server-vertx

Vert.x server-side connectivity module for full-stack applications.

See: Full Stack Development Guide

kvision-server-micronaut

Micronaut server-side connectivity module for full-stack applications.

See: Full Stack Development Guide

Last updated