初探 Vaadin-on-Kotlin

Maggie Kuo
4 min readJun 10, 2022

--

什麼是 Vaadin-on-Kotlin?

最初 Vaadin-on-Kotlin (VoK) 是基於 Vaadin 14 LTS 所開發的衍伸框架,2022年初,由於 Vaadin 已列Vaadin 23 為穩定版,故VoK 框架已升級至 Vaadin 23 LTS。VoK 不需要 Spring、JavaEE (已更名為 Jakarta EE),整體設計盡可能簡單化,非必要不使用套件,不須 MVC (Model-View-Controller)、DI (Dependency Injection)、SOA (Service-Oriented Architecture) 等等複雜模式就能開發網頁程式,就像在寫本機應用程式一樣,非常適合 Kotlin 開發者做為初探 Web application 之用。

VoK 資料庫使用 vok-orm 套件,也可選擇使用 NoSQL,或JPA、Hibernate 等套件。畫面顯示則使用 Karibu-DSL 封裝了 Vaadin 提供的強大組件,不需接觸html、ajax、css… ,讓 Kotlin 開發者有更好的開發體驗。

初探 VoK

請下載 VoK 架構範例專案 (下載),此初始專案由 Vaadin Martin Vysny 提供,本系列文將基於此專案延伸。

解壓縮後開啟此專案 (請檢查是否已安裝JDK11),請勾選 Trust projects in …… 並按下 Trust Project

此時專案路徑如下 :

版本修改

*2022/6/28 修改 : 倘若專案clone 日期為 2022/6/16之後,可略過此步驟

Kotlin 在本文發佈前不久升級到 1.7 版,直接使用 1.7 版。請開啟 project 層級 build.gradle.kts :

Vaadin 版本也於六月初發佈 23.1 版,在此 一併更新,置換成以下版本 :

請開啟project 層級的 gradle.properties,將 vaadin_version 改成 23.1.0,修正後如下 :

錯誤修正

*2022/6/28 修改 : 倘若專案clone 日期為 2022/6/16之後,可略過此步驟

在本文發表時,此版倘若直接執行,會拋出下列 Exception

這行其實是在讀取 Vaadin 版本時拋出的 Exception。讀取 Vaadin 版本所使用的 object VaadinVersion 在 karibu-tools 套件,而 VoK 內建的 karibu-tools 套件為 0.8 版,所以我們要升級版本。請開啟 module 層級 build.gradle.kts,在最後加上一行 :

執行第一支 Vaadin 程式

打開Terminal視窗,輸入指令./gradlew build web:appRun
執行後若未安裝過 node.js 和 npm 則會開始安裝,首次執行時間會稍久一點。

出現下圖文字表示Server已啟動,按下連結 http://localhost:8080/

瀏覽器出現以下畫面,代表已執行成功

若要結束程式,在 Terminal 視窗按下快速鍵 control+C

執行程式後,專案的變化

再度開啟專案,將會看到專案目錄裡多了一些檔案和目錄,這些都是編譯時自動產生的檔案。其中包括了 npm 啟動設定檔、npm下載的套件、webpack設定檔,還有 Kotlin 編譯後的檔案,至於那些設定檔怎麼來的、該如何設定,暫時可先略過,VoK 框架期望不曾開發過 Web 的 Kotlin 開發者專注於如何使用 Kotlin 開發 Web Application 上。

--

--