第46回Kotlin dojoを開催した

今週は第46回を開催しました。引き続きKotlin Hands-onをすすめています。

 

前回の様子はコチラ↓

kdnakt.hatenablog.com

 

 

[第46回の様子]

2021/1/6に第46回を開催した。

 

2021年の初回である。思い浮かんでしまったので仕方なく、人が集まりきる前に「Kotlinもよろしくお願いします」と新年の挨拶をした。

参加メンバーは自分をいれて5名。

 

勉強会本編の内容としては、新たにCreating an interactive website with Ktorというハンズオンに着手した。11個公開されているハンズオンの中で3つあるKtorシリーズの中で唯一未実施だった。Coroutine系ハンズオンに進むべきかとも思ったが、せっかくKtorに触れたので最後までやろうという話に。

ハンズオンの前半3章を終わらせることができた。

 

[学んだことや疑問点]

  • Creating an interactive website with Ktor: 1. Introduction
    • プロジェクトのゴールとして、ジャーナルアプリの完成形が提示された
    • Ktorを利用した静的コンテンツの配信、freemarkerを利用したHTMLテンプレートの利用、kotlinx.htmlライブラリを利用した動的なHTMLをKotlinで実装する方法などが学べるとのこと
  • Creating an interactive website with Ktor: 2. Project Setup
    • 利用するライブラリは以下の4つ(とログ出力用のlogback
      • ktor-server-core
      • ktor-server-netty
      • ktor-freemarker
      • ktor-html-builder
  • Creating an interactive website with Ktor: 3. Static files and pages
    • 静的コンテンツを配信するためにはApplication.ktを以下のように修正する
import io.ktor.application.Application
import io.ktor.http.content.static
import io.ktor.http.content.resources
import io.ktor.routing.routing

fun main(args: Array<String>): Unit = io.ktor.server.netty.EngineMain.main(args)

fun Application.module() {
    routing {
        static("/static") { // 静的コンテンツ配信URLパスを定義
            resources("files") // 静的コンテンツの配置されているパスを定義
        }
    }
}
    • これで静的コンテンツ(画像ファイル)が配信できることをサーバーを起動して確認
    • aboutme.htmlを追加して、同様に配信できることを確認

 

[まとめ]

モブプログラミング・スタイルで、Creating an interactive website with Ktorハンズオンに取り組み始めた。

Ktorでの静的コンテンツの配信方法を学んだ。

 

今週の進捗は以下のプルリクエストにまとまっている。

github.com