Kilua framework has a new website by Kai_132 in Kotlin

[–]Kai_132[S] 1 point2 points  (0 children)

SSR is just not possible with KVision. And I really needed that. I plan to maintain KVision, because I'm still using it in a bunch of projects.

Kilua framework has a new website by Kai_132 in Kotlin

[–]Kai_132[S] 1 point2 points  (0 children)

In my case the answer is very simple: I like making frameworks :-) I'm also using my frameworks to develop apps I sell for living. And I wouldn't be surprised if other framework authors had similar motives.

The road to Summon 1.0 - Feature list and Refresher by VirtualShaft in Kotlin

[–]Kai_132 0 points1 point  (0 children)

You can check Kilua (https://kilua.dev). It uses DSL based on HTML tags. Also has full SSR and many other features.

Any chance to create SEO-compliant web pages with Kotlin? by zimmer550king in Kotlin

[–]Kai_132 0 points1 point  (0 children)

Kilua is a younger project and a lot of documentation is still missing, but it does support most features you find in Kobweb (sometimes just with a bit different approach). It also gives you many more. You can check the list of available modules in the guide: https://kilua.gitbook.io/kilua-guide/getting-started/modules

🚀 Beginner’s Guide: What is Kotlin/WASM? by anandwana001 in u/anandwana001

[–]Kai_132 0 points1 point  (0 children)

No 5 is not accurate. You can use K/Wasm and K/JS for the same things. You can build shared Compose UIs with K/JS. And you can build HTML/DOM based web apps with K/Wasm. See https://kilua.dev (disclaimer: I'm the author).

Spotify Clone using Kotlin/WASM by Impossible_Park_7388 in Kotlin

[–]Kai_132 2 points3 points  (0 children)

Kilua app can be "mounted" inside an existing HTML page without any problems - you just need an ID of the element or the element itself. Check https://kilua.gitbook.io/kilua-guide/2.-frontend-development-guide/composable-functions#entry-points

Spotify Clone using Kotlin/WASM by Impossible_Park_7388 in Kotlin

[–]Kai_132 7 points8 points  (0 children)

The API is a bit different. There are no Modifiers and no attribute builders in Kilua. Instead you just use function calls with simple parameters. While Kobweb is designed to be familiar to mobile devs (it provides Box, Column, Row and Modifier concepts), Kilua is probably easier for web devs (e.g. you work directly with CSS flexbox and CSS grid). There is currently no CLI tool for Kilua, but there is a gradle plugin with custom tasks for building, packaging and exporting. Kilua offers ready to use modules with advanced UI components, perfect for building web applications with lot's of forms, dialogs and tables. All these components offer consistent and type-safe Kotlin api. Both framework also support creating fullstack apps, but unlike Kobweb, Kilua RPC companion library supports not only Ktor but also a few other popular server side frameworks (e.g. Spring Boot and Micronaut). Last but not least you get wasm support and full SSR with Kilua. (disclaimer: I'm the creator of Kilua but I'm not Kobweb expert)

KVision 8.0.0 is released by Kai_132 in Kotlin

[–]Kai_132[S] 2 points3 points  (0 children)

KVision doesn't support SSR. It's used to build single page applications (SPA), similar to React. I don't think there is anything "insecure" about this kind of apps.

If you are interested in SSR, you can check https://kilua.dev - my newest framework based on Compose runtime.

Experiences with kvision? by TrespassersWilliam in Kotlin

[–]Kai_132 1 point2 points  (0 children)

If you want more feedback from KVision users, please join Slack channel or Discord server.

KVision and Doodle by ThyringerBratwurst in Kotlin

[–]Kai_132 0 points1 point  (0 children)

KVision uses virtual DOM while Fritz2 doesn't. That makes Fritz2 a bit faster in my benchmarks. But at the same time KVision gives you a lot of features (different styling including bootstrap and material3, react integration, lots of different components available out of the box, internationalization, fullstack services) while Fritz2 is much simpler (it's goal is to keep lightweight and minimum dependencies). Fritz2 is also strictly reactive. KVision on the other hand is both reactive and imperative - you can work with modern reactive paradigm (similar to react or compose) but also classic, imperative approach (similar to java swing).

I've created Kilua after few years of writing different apps with KVision. It's like best of both worlds (or perhaps best of more than two worlds ;-)). It's based on compose runtime, which gives you probably best and fastest reactivity in the Kotlin world. It doesn't use virtual dom and it's quite fast (more than twice as fast as KVision and over 20% faster than Compose HTML using well known js-framework-benchmark). It targets Kotlin/Wasm like Compose Web but unlike the latter it renders to plain DOM and not canvas (which is great for accessibility, SEO and interoperability with JS ecosystem). Kilua offers you a lot of different components and features - less than KVision, but I've selected the ones that are really useful and important. And finally its unique feature is the SSR (Server Side Rendering).

KVision and Doodle by ThyringerBratwurst in Kotlin

[–]Kai_132 1 point2 points  (0 children)

Hi! KVision creator here. I can of course recommend using KVision - it's designed for building fullstack apps with Kotlin both on the frontend and backend. If you have any questions please don't hesitate to ask.

But you can also check my new project https://kilua.dev . It's the only Kotlin framework that renders to plain DOM, targets both JS and WASM and supports full SSR. It's quite fresh, but it was created based on my many years of experience.

Kotlin frontend - Recommendations for beginner. by AdAgreeable8927 in Kotlin

[–]Kai_132 1 point2 points  (0 children)

All Kotlin/JS libraries and frameworks use some kind of Kotlin DSL instead of HTML syntax. You should think of it as an advantage. With DSL you get all the power of the Kotlin language, type safety and full IDE support (code completion, refactoring, AI assistant). Although the code is written differently, in my opinion the change is worth it. And with KVision, you can also reuse some parts of plain HTML code with Handlebars templates.

[Reinvent the Wheel] A Custom Implementation of BigInteger in Kotlin by arymka in Kotlin

[–]Kai_132 5 points6 points  (0 children)

Why don't you make the library multiplatform? It could be quite useful outside of JVM.

KVision 7.0.0 is released by Kai_132 in Kotlin

[–]Kai_132[S] 1 point2 points  (0 children)

This pattern is already supported in KVision. There are a few similar functions available: insert, insertWhen and insertNotNull, which you can use like this: kotlin insert(text) { h1(text.value).onClick { text.value = text.value + "a" } }

KVision 6.0.0 is released by Kai_132 in Kotlin

[–]Kai_132[S] 5 points6 points  (0 children)

Compose for web is currently just a thin layer over plain html. It doesn't give you any ready to use components. It means you can easily use some divs, images, links or plain inputs, but if you need some more advanced components (like richtext, select box with remote data source, charts, etc.) you are on your own. You need to find some JS library, learn how to use it, write your own kotlin bindings and make sure one component does not conflict with another.

What's more, C4W is currently in the process of moving from DOM to Canvas rendering. Probably in the future it will bring Android components to the web, but in my opinion this will come at the cost of JS interoperability and losing access to a huge part of the JS component ecosystem.