INFCON 2022のハンズオンセッションを
講義で体験しましょう! 🥰
Kotlinマルチプラットフォーム、未知との遭遇 ✨
Kotlin(コトリン)は、安全性、簡潔性、相互運用性を強調するマルチパラダイム・マルチプラットフォームプログラミング言語で、2016年2月に初めて公開されました。KotlinはJavaに代わるより良い選択肢を提供することを目的に始まりましたが、その間に大きく成長し、Android、デスクトップ、サーバーサイドソリューションなど、様々な開発分野で活用されています。
先ほどお伝えしたように、Kotlinはマルチプラットフォームをサポートするプログラミング言語です。KotlinはすでにJVM(Java Virtual Machine)をサポートするプラットフォームで十分に動作しており、JVMをサポートしていないプラットフォームではKotlin Nativeを使用できます。Kotlin Nativeは、KotlinをiOSやMacOS、そしてWindowsおよびLinuxで実行されるバイナリへとコンパイルします。ウェブではJavaScriptおよびHTMLへとコンパイルします。これを利用して、Kotlinコードを共有する単一のコードベースで、モバイルからウェブ、デスクトップ、サーバーに至るまで、マルチプラットフォームアプリケーションを作成することができます。
本講義では、Kotlinマルチプラットフォームと共にReactとSpringで一つの完全なウェブアプリケーションを作成します。受講者はKotlinマルチプラットフォームプロジェクトを理解し、さらにはクライアントとサーバーの共有ロジックの作成、Kotlin/JSベースのReactおよびKotlin/JVMベースのSpringウェブプログラミングを軽く体験することができます。
講義を通じて皆さんと一緒に作っていくアプリケーションは、ユーザーがタスクを登録または変更し、完了や削除ができるToDo管理アプリケーションです。このアプリケーションの核心的なドメインロジックは、ToDoというモデルを定義し、そのモデルをリポジトリに保存したり取り出したりする行為だと言えます。そして、ブラウザを通じてドメインロジックを操作するためのユーザーインターフェースと、データを処理するためのWebおよびデータベースサーバーのロジックを作成する必要があります。
ただし、前述のすべての要件を満たすコードを最初から最後まで直接作成しようとすると膨大な時間が必要になるため、講義では事前に作成しておいたテンプレートプロジェクトのコードスニペットを完成させていく方式で進めます。
- 本講義は、INFCON 2022で開催されたハンズオンセッションである<Kotlinマルチプラットフォーム、未知との遭遇>を、一般的な講義形式で制作したものであることをお知らせいたします。
- この講義は、Kotlin言語の特徴と文法を理解し使用することができ、ウェブ技術に関する理解がある方を対象としています。作成するコードの意図や動作過程については説明しますが、ReactやSpringについては解説いたしません。
Kotlin Multiplatform 🤓
Kotlinはマルチプラットフォームをサポートする言語であり、JVMベースのServer-sideやAndroidだけでなく、JavaScriptエンジンがあるブラウザやNode.js、そしてiOS、Linux、Windowsなど様々なNativeプラットフォームでも使用できます。これを利用して、Kotlinコードを共有する単一のコードベースで、モバイルからウェブ、デスクトップ、サーバーに至るまで、マルチプラットフォームアプリケーションを作成することができます。
KotlinとKotlinマルチプラットフォームに関する詳細については、こちらでご確認いただけます。
学習環境 🖥️
学習過程で使用する言語およびフレームワーク、ライブラリとツールは以下の通りです。
- Kotlin 1.6.x (with Java 11)
- Share common-code
- Common Kotlin
- Kotlin Coroutines
- Kotlin Serialization
- Kotlin Logging
- Kotlin Test
- Client (Front-end)
- Kotlin/JS
- React 18.0.x
- MUI 5.6.x
- Emotion 11.9.x
- Ktor 2.0.x
- Server (Back-end)
- Kotlin/JVM
- Spring WebFlux 5.2.x
- Spring Data R2DBC 1.4.x
- Spring Boot 2.6.x
- Kotest 5.0.x (with JUnit 5)
講師紹介 ✒️
- スプリングランナー(SpringRunner)を紹介します。
SpringRunnerは、スプリングベースのアプリケーション開発に必要な知識と経験を積み重ねられるよう支援するトレーニングチームです。
スプリングベースのアプリケーションを開発するためには、思った以上に多くの学習と努力が必要です。書籍やオンライン教育などを通じて、スプリングの技術的な側面を学習することはできます。しかし、このように学習を通じて積み上げた知識だけでアプリケーションを開発しようとすると、途方に暮れてしまうことがあります。スプリングが提供する機能の使い方は学びましたが、スプリングベースのアプリケーション開発の経験を持っていないためです。
参加者がスプリングフレームワーク(Spring Framework)、スプリングブート(Spring Boot)などのスプリングエコシステムにおいて、スプリングの動作原理や使い方を学び、さらに一歩進んで実務に適用できるスプリングベースのアプリケーションプログラミングを習得できるよう、スプリングランナー(SpringRunner)がお手伝いします。
スプリングランナー(SpringRunner)は、「スプリング(Spring)+ガイドランナー(Guide Runner)」を組み合わせて作られた名前です。