会社でKotlin dojo(第42回)を開催した

今週は第42回を開催しました。引き続きKotlin Hands-on編です!

 

前回の様子はコチラ↓

kdnakt.hatenablog.com

 

 

[第42回の様子]

2020/12/2に第42回を開催した。

 

参加メンバーは自分をいれて4名。先週の4名からは1人欠けて、代わりに久々に参加してくれたメンバーが1名。

 

勉強会本編の内容としては、2つ目のハンズオンの選定からスタート。Ktorシリーズ、Multiplatformシリーズ、Coroutineシリーズなどいくつかある中で、前回に引き続きKtorシリーズからピックアップしてCreating a WebSocket Chat with Ktorに取り組み始めた。

1章Introductionからはじめて、3章A first echo serverの「Implementing an echo server」までを完了した。

 

[学んだことや疑問点]

  • Creating a WebSocket Chat with Ktor: 1. Introduction
    • 前回までWeb APIの実装に利用してきたKtorはクライアントサイドのアプリケーション開発にも利用できるらしい
    • たしかにKtorのサイトの文言は「Build Asynchronous Servers and Clients」となっている 

ktor.io

    • WebSocketチャットのサーバーサイドもクライアントサイドもKtorを利用して実装するハンズオンであるとの説明があった
    • 動画を見ると、クライアントサイドはターミナル上で実行するアプリケーションになるらしい
  • Creating a WebSocket Chat with Ktor: 2. Project setup
    • Ktor Project Generatorを利用してプロジェクトを手動で作ってハンズオン始めることもできる

    • 今回は時間もなかったのでGitHubのリポジトリをクローンしてハンズオン開始
    • 利用するライブラリの説明があった
    • ktor-client-cioのcioはCoroutine-based I/Oの略のようだ。Coroutineが関係してくるならそっちのハンズオンを先にやったほうがよかっただろうか?
  • Creating a WebSocket Chat with Ktor: 3. A first echo server
    • まずはエコーサーバーを実装する(入力値を返すだけの簡単なチャット)
    • Application.module()にWebSocket用のルーティングを追加していく
    • KtorのWebSocket機能を有効化し、パスを定義して、WebSocketのテキストフレームを受け取ってクライアントに配信するだけのシンプルな実装
    • 実装が終わったのでエコーサーバーを試してみたかったが、残念ながらここまでで時間切れ。エコーサーバーのテストは次回に持ち越し。

 

[まとめ]

モブプログラミング・スタイルで、Kotlin Hands-onを継続している。

今週から新たにWebSocket Chat with Ktorハンズオンに取り組み始めた!

 

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

github.com