Skip to content

Kotlin によるバックエンド開発

Kotlinは、サーバーサイドアプリケーションの開発に非常に適しています。Kotlinを使用すると、既存のJavaベースのテクノロジースタックとの完全な互換性を維持しながら、簡潔で表現力豊かなコードを書くことができます。

はじめに

Kotlinは、JavaからKotlinへの大規模なコードベースの段階的な移行をサポートしています。プロジェクトの他の部分はJavaのままにして、テストや新しいプロダクションコードをKotlinで書き始めることができます。

JavaプロジェクトをKotlinで動作するように構成し、IntelliJ IDEAに含まれる自動Java-to-Kotlinコンバーターを活用しましょう。

Introduce Kotlin to your Java project

フレームワークを探索する

KotlinはすべてのJavaベースのフレームワークと完全に互換性があるため、使い慣れたテクノロジースタックをそのまま使用しながら、Kotlinの構文のメリットを享受できます。優れたIDEサポートに加え、IntelliJ IDEA UltimateにおけるSpringやKtorのサポートなど、特定のフレームワーク向けのツールも提供されています。

Spring

Springは、Kotlinの言語機能を活用して、より簡潔なAPIを提供しています。オンラインプロジェクトジェネレーターを使用すると、Kotlinの新しいプロジェクトを素早く生成できます。

Get started with Spring Boot and Kotlin

Ktor

Ktorは、KotlinでWebアプリケーションを作成するためのJetBrains製フレームワークです。高いスケーラビリティのためにコルーチンを利用し、使いやすく慣用的な(idiomatic)APIを提供します。

Create a new Ktor project

その他のフレームワーク

Kotlin向けのバックエンドフレームワークの例をいくつか紹介します。

フレームワーク説明
QuarkusKotlinの使用をファーストクラスでサポートするオープンソースフレームワークです。QuarkusはKubernetesのためにゼロから構築されており、数百もの最高クラスのライブラリを活用して、まとまりのあるフルスタックフレームワークを提供します。
Vert.xJVM上でリアクティブなWebアプリケーションを構築するためのフレームワークです。Vert.xは、Kotlinコルーチンの統合を含む、Kotlin向けの専用サポートを提供しています。
kotlinx.htmlWebアプリケーションでHTMLを構築するために使用できるDSLです。JSPやFreeMarkerなどの従来のテンプレートシステムの代替として機能します。
Micronautモジュール式でテストが容易なマイクロサービスやサーバーレスアプリケーションを構築するための、モダンなJVMベースのフルスタックフレームワークです。ウェビナー「Micronaut for microservices with Kotlin」を視聴し、MicronautフレームワークでKotlin拡張関数を使用する方法を示す詳細なガイドを探索してください。
http4k純粋なKotlinで書かれた、Kotlin HTTPアプリケーション用のフットプリントが小さい関数型ツールキットです。http4kは、完全に形成されたプロジェクトテンプレートを生成するためのCLI対応ツールボックスと、選択したバックエンド、モジュール、ビルドツールを使用して動作するhttp4kアプリケーションをブートストラップするためのWebベースのプロジェクトウィザードを提供しています。
JavalinKotlinおよびJava向けの非常に軽量なWebフレームワークで、WebSocket、HTTP2、および非同期リクエストをサポートしています。

アプリケーションのデプロイ

Kotlinアプリケーションは、Amazon Web Services(AWS)、Google Cloud Platform(GCP)などを含む、Java Webアプリケーションをサポートする任意のホストにデプロイできます。

  • AWS は、サービスとやり取りするための専用の Kotlin用SDK を提供しています。サーバーレスデプロイについては、AWS Lambda の Kotlin コード例を参照してください。
  • Ktor を使用すると、Kotlinアプリケーションをさまざまなクラウドプロバイダーに公開できます。たとえば、Ktorのチュートリアルに従って、Google App Engine やその他のサービスへのデプロイについて詳しく学ぶことができます。
  • Spring アプリケーションも、ほとんどの主要なクラウドプロバイダーと互換性があります。Spring Bootアプリケーションをクラウドにデプロイする方法については、Spring公式ドキュメントを参照してください。

次のステップ