Kotlin/Nativeを始める
このチュートリアルでは、Kotlin/Nativeアプリケーションを作成する方法を学習します。最適なツールを選択し、次の方法でアプリケーションを作成します。
-
IDEを使用する。ここでは、バージョン管理システムからプロジェクトテンプレートをクローンし、IntelliJ IDEAで使用できます。
-
Gradleビルドシステムを使用する。内部の仕組みをより深く理解するために、プロジェクトのビルドファイルを手動で作成します。
-
コマンドラインツールを使用する。標準のKotlinディストリビューションの一部として提供されるKotlin/Nativeコンパイラーを使用して、コマンドラインツールで直接アプリケーションを作成できます。
コンソールのコンパイルは簡単でわかりやすいように思えるかもしれませんが、ファイルやライブラリが何百もある大規模なプロジェクトには適していません。このようなプロジェクトでは、IDEまたはビルドシステムを使用することをお勧めします。
Kotlin/Nativeを使用すると、Linux、macOS、Windowsなどのさまざまなターゲット向けにコンパイルできます。クロスプラットフォームコンパイル(あるプラットフォームを使用して別のプラットフォーム向けにコンパイルすること)も可能ですが、このチュートリアルでは、コンパイル元のプラットフォームをターゲットにします。
Macを使用しており、macOSまたはその他のAppleターゲット向けのアプリケーションを作成および実行する場合は、Xcode Command Line Toolsもインストールし、起動して、最初にライセンス条項に同意する必要があります。
IDEを使用する
このセクションでは、IntelliJ IDEAを使用してKotlin/Nativeアプリケーションを作成する方法を学習します。Community EditionとUltimate Editionの両方を使用できます。
プロジェクトを作成する
-
IntelliJ IDEAの最新バージョンをダウンロードしてインストールします。
-
IntelliJ IDEAでFile | New | Project from Version Controlを選択し、次のURLを使用して、プロジェクトテンプレートをクローンします。
https://github.com/Kotlin/kmp-native-wizard
-
プロジェクト依存関係のバージョンカタログである
gradle/libs.versions.toml
ファイルを開きます。Kotlin/Nativeアプリケーションを作成するには、Kotlin Multiplatform Gradleプラグインが必要です。このプラグインのバージョンはKotlinと同じです。最新のKotlinバージョンを使用していることを確認してください。[versions]
kotlin = "2.1.20" -
Gradleファイルをリロードする提案に従います。
これらの設定の詳細については、Multiplatform Gradle DSL referenceを参照してください。
アプリケーションをビルドして実行する
src/nativeMain/kotlin/
ディレクトリにあるMain.kt
ファイルを開きます。
src
ディレクトリには、Kotlinソースファイルが含まれています。Main.kt
ファイルには、println()
関数を使用して「Hello, Kotlin/Native!」を出力するコードが含まれています。
gutterにある緑色のアイコンを押して、コードを実行します。

IntelliJ IDEAはGradleタスクを使用してコードを実行し、Runタブに出力結果を表示します。

初回実行後、IDEは上部に対応する実行構成を作成します。

IntelliJ IDEA Ultimateユーザーは、コンパイルされたネイティブ実行可能ファイルをデバッグできるNative Debugging Supportプラグインをインストールできます。また、インポートされたKotlin/Nativeプロジェクトの実行構成を自動的に作成します。
プロジェクトを自動的にビルドするようにIntelliJ IDEAを構成できます。
- Settings | Build, Execution, Deployment | Compilerに移動します。
- Compilerページで、Build project automaticallyを選択します。
- 変更を適用します。
これで、クラスファイルを変更したり、ファイルを保存したりすると(
アプリケーションを更新する
名前の文字数をカウントする機能をアプリケーションに追加しましょう。
-
Main.kt
ファイルで、入力を読み取るコードを追加します。readln()
関数を使用して入力値を読み取り、name
変数に割り当てます。fun main() {
// Read the input value.
println("Hello, enter your name:")
val name = readln()
} -
Gradleを使用してこのアプリを実行するには、
build.gradle.kts
ファイルで使用する入力としてSystem.in
を指定し、Gradleの変更をロードします。kotlin {
//...
nativeTarget.apply {
binaries {
executable {
entryPoint = "main"
runTask?.standardInput = System.`in`
}
}
}
//...
} -
空白を削除し、文字をカウントします。
replace()
関数を使用して、名前の空白を削除します。- スコープ関数
let
を使用して、オブジェクトコンテキスト内で関数を実行します。 - 文字列テンプレートを使用して、ドル記号
$
を追加し、中括弧で囲んで${it.length}
のようにすることで、名前の長さを文字列に挿入します。it
はラムダパラメーターのデフォルト名です。
fun main() {
// Read the input value.
println("Hello, enter your name:")
val name = readln()
// Count the letters in the name.
name.replace(" ", "").let {
println("Your name contains ${it.length} letters")
}
} -
アプリケーションを実行します。
-
名前を入力して、結果をお楽しみください。
次に、名前の一意の文字のみをカウントしましょう。
-
Main.kt
ファイルで、String
の新しい拡張関数.countDistinctCharacters()
を宣言します。lowercase()
関数を使用して、名前を小文字に変換します。toList()
関数を使用して、入力文字列を文字のリストに変換します。distinct()
関数を使用して、名前の一意の文字のみを選択します。count()
関数を使用して、一意の文字をカウントします。
fun String.countDistinctCharacters() = lowercase().toList().distinct().count()
-
.countDistinctCharacters()
関数を使用して、名前の一意の文字をカウントします。fun String.countDistinctCharacters() = lowercase().toList().distinct().count()
fun main() {
// Read the input value.
println("Hello, enter your name:")
val name = readln()
// Count the letters in the name.
name.replace(" ", "").let {
println("Your name contains ${it.length} letters")
// Print the number of unique letters.
println("Your name contains ${it.countDistinctCharacters()} unique letters")
}
} -
アプリケーションを実行します。
-
名前を入力して、結果を確認します。
Gradleを使用する
このセクションでは、Gradleを使用してKotlin/Nativeアプリケーションを手動で作成する方法を学習します。これはKotlin/NativeおよびKotlin Multiplatformプロジェクトのデフォルトのビルドシステムであり、Java、Android、その他のエコシステムでも一般的に使用されています。
プロジェクトファイルを作成する
-
まず、互換性のあるバージョンのGradleをインストールします。互換性表を参照して、利用可能なGradleバージョンとのKotlin Gradle plugin (KGP)の互換性を確認してください。
-
空のプロジェクトディレクトリを作成します。その中に、次の内容の
build.gradle(.kts)
ファイルを作成します。- Kotlin
- Groovy
// build.gradle.kts
plugins {
kotlin("multiplatform") version "2.1.20"
}
repositories {
mavenCentral()
}
kotlin {
macosArm64("native") { // on macOS
// linuxArm64("native") // on Linux
// mingwX64("native") // on Windows
binaries {
executable()
}
}
}
tasks.withType<Wrapper> {
gradleVersion = "8.10"
distributionType = Wrapper.DistributionType.BIN
}// build.gradle
plugins {
id 'org.jetbrains.kotlin.multiplatform' version '2.1.20'
}
repositories {
mavenCentral()
}
kotlin {
macosArm64('native') { // on macOS
// linuxArm64('native') // on Linux
// mingwX64('native') // on Windows
binaries {
executable()
}
}
}
wrapper {
gradleVersion = '8.10'
distributionType = 'BIN'
}macosArm64
、iosArm64
、linuxArm64
、mingwX64
などのさまざまなターゲット名を使用して、コードのコンパイル対象を定義できます。これらのターゲット名は、オプションでプラットフォーム名をパラメーターとして受け取ることができます。この場合、プラットフォーム名はnative
です。プラットフォーム名は、プロジェクト内のソースパスとタスク名を生成するために使用されます。 -
プロジェクトディレクトリに空の
settings.gradle(.kts)
ファイルを作成します。 -
src/nativeMain/kotlin
ディレクトリを作成し、その中に次の内容のhello.kt
ファイルを配置します。fun main() {
println("Hello, Kotlin/Native!")
}
慣例により、すべてのソースはsrc/<target name>[Main|Test]/kotlin
ディレクトリにあります。Main
はソースコード用、Test
はテスト用です。<target name>
は、ビルドファイルで指定されているターゲットプラットフォーム(この場合はnative
)に対応します。
プロジェクトをビルドして実行する
-
ルートプロジェクトディレクトリから、ビルドコマンドを実行します。
./gradlew nativeBinaries
このコマンドは、
build/bin/native
ディレクトリを作成し、その中にdebugExecutable
とreleaseExecutable
の2つのディレクトリを作成します。これらには、対応するバイナリファイルが含まれています。デフォルトでは、バイナリファイルの名前はプロジェクトディレクトリと同じです。
-
プロジェクトを実行するには、次のコマンドを実行します。
build/bin/native/debugExecutable/<project_name>.kexe
ターミナルに「Hello, Kotlin/Native!」と表示されます。
IDEでプロジェクトを開く
これで、Gradleをサポートする任意のIDEでプロジェクトを開くことができます。IntelliJ IDEAを使用する場合:
- File | Openを選択します。
- プロジェクトディレクトリを選択し、Openをクリックします。 IntelliJ IDEAは、Kotlin/Nativeプロジェクトであるかどうかを自動的に検出します。
プロジェクトに問題が発生した場合、IntelliJ IDEAはBuildタブにエラーメッセージを表示します。
コマンドラインコンパイラーを使用する
このセクションでは、コマンドラインツールでKotlinコンパイラーを使用してKotlin/Nativeアプリケーションを作成する方法を学習します。
コンパイラーをダウンロードしてインストールする
コンパイラーをインストールするには:
-
KotlinのGitHub releasesページに移動します。
-
名前に
kotlin-native
が含まれるファイルを探し、オペレーティングシステムに適したファイル(たとえば、kotlin-native-prebuilt-linux-x86_64-2.0.21.tar.gz
)をダウンロードします。 -
アーカイブを選択したディレクトリに解凍します。
-
シェルプロファイルを開き、コンパイラーの
/bin
ディレクトリへのパスをPATH
環境変数に追加します。export PATH="/<path to the compiler>/kotlin-native/bin:$PATH"
コンパイラーの出力には依存関係や仮想マシンの要件はありませんが、コンパイラー自体にはJava 1.8以降のランタイムが必要です。これはJDK 8 (JAVA SE 8) 以降のバージョンでサポートされています。
プログラムを作成する
作業ディレクトリを選択し、hello.kt
という名前のファイルを作成します。次のコードで更新します。
fun main() {
println("Hello, Kotlin/Native!")
}
コンソールからコードをコンパイルする
アプリケーションをコンパイルするには、ダウンロードしたコンパイラーで次のコマンドを実行します。
kotlinc-native hello.kt -o hello
-o
オプションの値は出力ファイルの名前を指定するため、この呼び出しにより、macOSおよびLinuxではhello.kexe
バイナリファイルが生成されます(Windowsではhello.exe
)。
使用可能なオプションの完全なリストについては、Kotlinコンパイラーオプションを参照してください。
プログラムを実行する
プログラムを実行するには、コマンドラインツールで、バイナリファイルが含まれているディレクトリに移動し、次のコマンドを実行します。
- macOS and Linux
- Windows
./hello.kexe
./hello.exe
アプリケーションは「Hello, Kotlin/Native」を標準出力に出力します。
次は何をしますか?
- ネイティブHTTPクライアントを作成し、Cライブラリと相互運用する方法を説明するC Interopおよびlibcurlを使用したアプリの作成チュートリアルを完了します。
- 実際のKotlin/NativeプロジェクトのGradleビルドスクリプトを作成する方法を学習します。
- ドキュメントでGradleビルドシステムの詳細をご覧ください。