Upgrade to Pro — share decks privately, control downloads, hide ads and more …

サーバーサイドKotlin/JS

Yuta Tomiyama
September 13, 2020

 サーバーサイドKotlin/JS

秋のLT大会 2020 Online にて発表

Yuta Tomiyama

September 13, 2020
Tweet

More Decks by Yuta Tomiyama

Other Decks in Programming

Transcript

  1. サーバーサイドKotlin
    秋のLT大会 2020 Online

    View Slide

  2. 自己紹介
    HN: マヤミト
    会津大学26期 (学部3年)
    Zli 現代表
    GitHub: https://github.com/yt8492
    好きな言語: Kotlin, Java, Scala
    趣味: Kotlin, 同人音声, VTuber
    ポートフォリオ: https://yt8492.com/
    Twitter: yt8492

    View Slide

  3. Kotlinでできること
    - JVM
    - Javaでできること全般
    - Android
    - サーバーサイド(Ktor, Spring Boot, etc...)
    - JS
    - Webフロント
    - Node.js
    - Native

    View Slide

  4. Kotlinでできること
    - JVM
    - Javaでできること全般
    - Android
    - サーバーサイド(Ktor, Spring Boot, etc...)
    - JS
    - Webフロント
    - Node.js
    - Native

    View Slide

  5. 今日はKotlinのサーバーサイド
    フレームワークを紹介していきます

    View Slide

  6. 今日はKotlinのサーバーサイド
    フレームワークを紹介していきます

    View Slide

  7. 今日はKotlinのサーバーサイド
    フレームワークを紹介していきません

    View Slide

  8. Kotlinでできること
    - JVM
    - Javaでできること全般
    - Android
    - サーバーサイド(Ktor, Spring Boot, etc...)
    - JS
    - Webフロント
    - Node.js
    - Native

    View Slide

  9. Kotlinでできること
    - JVM
    - Javaでできること全般
    - Android
    - サーバーサイド(Ktor, Spring Boot, etc...)
    - JS
    - Webフロント
    - Node.js
    - Native

    View Slide

  10. 今日はKotlin/JSでサーバーサイド開発をす
    る話をします

    View Slide

  11. サーバーサイドKotlin/JS
    秋のLT大会 2020 Online

    View Slide

  12. そもそもKotlin/JSとは
    - KotlinをJSにトランスパイルする技術
    - JSのライブラリも利用可能
    - Kotlinで型定義を書けばJSのコードに型を付けられる
    - Webフロントエンドの開発もNode.jsでサーバーサイドの開発もできる
    トランスパイル

    View Slide

  13. kotlinx-nodejs
    Kotlin公式が提供しているKotlin向けNode.jsラッパーライブラリ
    https://github.com/Kotlin/kotlinx-nodejs
    NodeのAPIのKotlinの型定義を提供している(が、まだexperimentalなため不完全な模
    様)
    TypeScriptの型定義をKotlinの型定義に変換するDukatというツールで生成されている

    View Slide

  14. 簡単なサーバーを書いてみよう
    ゴール: HTTPリクエストを送ったらurlとmethodが返される簡単なサーバーを立てる

    View Slide

  15. プロジェクトのセットアップ
    IntelliJ IDEAでKotlin/JS for Node.jsの新規プロジェクトを作成

    View Slide

  16. プロジェクトのセットアップ
    Kotlinバージョン: 1.4.0
    build.gradleの依存にkotlinx-nodejsを追加し、ターゲットをnodejsにする

    View Slide

  17. サーバーのコード

    View Slide

  18. 起動&実際にリクエストを叩いてみる

    View Slide

  19. できた

    View Slide

  20. 感じたこと
    良かった点
    - 起動が爆速
    - 意外と普通にできてしまった
    問題点
    - Nodeのhttpパッケージだけで本格的にサーバーサイド開発するのはキツい
    - get("/hoge") { ... } みたいに書けたほうがよさそう (expressみたいに)
    - DBを扱うライブラリが現状なさそう

    View Slide

  21. 次回予告
    Kotlin/JSのサーバーサイドフレームワーク
    作ってみた

    View Slide

  22. 開発中!

    View Slide

  23. リンク集
    kotlinx-nodejs
    https://github.com/Kotlin/kotlinx-nodejs
    今回のもう少し細かい解説
    https://qiita.com/yt8492/items/1271b30ecd26f5ca0efb
    開発中フレームワーク
    https://github.com/yt8492/indikate
    過去のLT資料
    https://speakerdeck.com/yt8492

    View Slide