Kotlin WebAssembly WebGL Auto Stub

Submitted by Dickens A S on Sat, 05/02/2020 - 05:37

WebGLRenderingContext is a big API, it has 200+ properties and 100+ methods, writing a JavaScript stub and corresponding Kotlin stub is very difficult 

We need to write 1400+ lines of JavaScript code and 3000+ lines Kotlin code

This Kotlin gradle script provides a simple approach to auto generate the stub and also compile the generated code to .klib

Gradle Stub Code in KTS

Kotlin WebAssembly direct buffer access with UTF-16 string

Submitted by Dickens A S on Fri, 05/01/2020 - 06:07

Kotlin WebAssembly runtime provides a global JavaScript array called heap

which can be accessed if the pointer of a variable is known

The pointer and size of the variable can be determined by library methods stringPointer and stringLengthBytes

The from JavaScript the value can be updated with below logic

Kotlin Main Code

Kotlin passing string to WebAssembly

Submitted by Dickens A S on Thu, 04/30/2020 - 14:09

From JavaScript as of now we cannot pass string to WebAssembly, therefore the string will be converted to an array of bytes and kept in browser's memory object of the kotlin web assembly framework object kotlinObject

From WebAssembly by calling the JavaScript method for each character, transfer the numeric value

Then convert the numeric value to character and combine to a string in kotlin

This is achieved using below code

JavaScript: string to UTF array utlity

Kickstart Kotlin Web Assembly HTML DOM with Spring Boot

Submitted by Dickens A S on Wed, 04/29/2020 - 08:43

Easily create Kotlin Web Assembly project from these multiplatform boilerplate Gradle DSL

This code involves Custom JavaScript - to - Kotlin - to - JavaScript stub

GitHub https://github.com/dickensas/kotlin-gradle-templates/tree/master/sboot-wasm-dom

Kotlin Code

Kickstart Kotlin : Jython with Spring Boot

Submitted by Dickens A S on Fri, 03/20/2020 - 07:02

Easily create Kotlin based Jython project from these multiplatform boilerplate Gradle DSL

GitHub https://github.com/dickensas/kotlin-gradle-templates/tree/master/sboot-jython

Run gradle command

  gradle assemble

Run gradle command

  gradle run

Browse http://localhost:8080/index.html

On the screen you will see response from Jython via AJAX

Web Jars

Submitted by Dickens A S on Mon, 03/16/2020 - 10:49

Web Jars is a dependency management technique which reduces the leraning curve of the developer to use single dependency management system to manage the versions of JavaScript libraries or other non-maven-standard libraries which has other then java code

For Example: i you want to add jQuery into your spring boot project, in the past you need to put that in the static folder manually of you need to use tools like bower to download it inside the static folder

but now you don't have to do that, you can use same pom.xml or build.gradle and specify the webjar dependency

Kickstart Kotlin Web Socket with Spring Boot

Submitted by Dickens A S on Mon, 03/16/2020 - 10:39

Easily create Kotlin Web Socket project from these multiplatform boilerplate Gradle DSL

GitHub https://github.com/dickensas/kotlin-gradle-templates/tree/master/sboot-wsock

Run gradle command

  gradle assemble

Run gradle command

  gradle run

Browse http://localhost:8080/index.html

On the screen you will see connection status