本書は技術書典9「KtorとNuxt.jsで作るWebアプリケーション入門」、技術書典10「KtorとNuxt.jsで作るWebアプリケーション入門 Vol2」を再編集した本となります。
本書は対象読者として次のような方を想定しています。
・Webアプリケーションの開発を行ったことがある
・サーバサイドKotlinやNuxt.jsに興味があり、Webアプリケーションの作成に挑戦してみたい方
・ハンズオン形式でWebアプリケーションの開発を進めていきたい方
・就職・転職用にポートフォリオを作成したい方
本書ではKotlinやNuxt.jsの基本文法や使い方については多くは触れませんので、言語仕様については公式ドキュメントを参照していただけると幸いです。
執筆時点(2022.2.27)でLTSとなるバージョンを採用するようにしています。本書では次の開発環境を前提にしております。
・Docker 20.10.12
・Docker Compose 1.27.4
・Java 11.0.12
・Kotlin 1.6.7
・Node.js v16.14.0
・Yarn 1.22.17
環境構築については記載は行いませんが、JavaやKotlin、Node.jsは次のツールを利用していますので参考にしてみてください。
・SDKMAN1
・nodebrew2
本書のサンプルコードはGitHubに置いてあります。次のリポジトリからコードをダウンロードするか、Gitでチェックアウトしてご利用ください。
・ktor-todo-exmaple3
・nuxt-todo-exmaple4
8章以降については別リポジトリからダウンロード可能となっていますのでご注意ください。
・ktor-todo-example-25
・nuxt-todo-example-26
本書に記載された内容は、情報の提供のみを目的としています。したがって、本書を用いた開発、製作、運用は、必ずご自身の責任と判断によって行ってください。これらの情報による開発、製作、運用の結果について、著者はいかなる責任も負いません。
本書に記載されている会社名、製品名などは、一般に各社の登録商標または商標、商品名です。会社名、製品名については、本文中では©、®、™マークなどは表示していません。
本書で利用するフレームワークについて紹介します。
Ktor1とはIntelliJ IDEAなどのIDEやKotlinを開発しているJetBrains社が作成した軽量Webフレームワークです。All Kotlinで開発されており、特徴として「薄い」フレームワークで必要な機能(feature)を追加していくことで新たな機能を利用することができます。サーバサイドでKotlinといえばSpring Bootを選択することが多いと思いますが、Ktorは2018年11月にv1.0.0がリリースされ、2021年12月現在v1.6.7までアップデートされており、本格的に利用しても良さそうに感じます。次は追加できる主な機能(feature)になります。
・ktor-thymeleaf:テンプレートエンジン
・ktor-websockets:WebSocket
・ktor-jackson:JSON
・ktor-auth:認証
Nuxt.js2は、Vue.jsの公式ガイドラインにそって強力なアーキテクチャを提供するように設計されたフレームワークです。サーバサイドレンダリングを行うアプリケーションの開発に必要な設定が、あらかじめ行われているのが特徴で次のパッケージが含まれています。(2022年3月時点、Vue.js 3がリリースされていますが本書ではVue.js 2を利用しています)
・Vue2:Vue.js本体
・Vue-Router:ルーティング管理
・Vuex:状態管理
・Vue Server Renderer:サーバサイドレンダリング
・Vue-Meta:メタ情報管理