はじめに
気軽に Kotlin のコードを試す環境として3通りの方法を試しましたが、Kotlin Playground はコード補完が効かなかったり実行するためのショートカットが用意されていなかったりで使いづらく、Android Studio はコンソールアプリケーションの構築方法がわからないという欠点があり、現段階では VSCode 上で動かすのが最も簡単です。
ということで、VSCode で Kotlin コードを実行するまでの手順を書いていきます。
環境
$ gradle --version
------------------------------------------------------------
Gradle 7.2
------------------------------------------------------------
Build time: 2021-08-17 09:59:03 UTC
Revision: a773786b58bb28710e3dc96c4d1a7063628952ad
Kotlin: 1.5.21
Groovy: 3.0.8
Ant: Apache Ant(TM) version 1.10.9 compiled on September 27 2020
JVM: 16.0.2 (Homebrew 16.0.2+0)
OS: Mac OS X 11.5.2 x86_64
手順
Hello World! を表示する
まず作業用ディレクトリを作成し、コマンドライン上でそのディレクトリに移動します。
そして以下のコマンドを実行します。
$ gradle init
すると色々と質問されるので、以下のように答えていきます。
$ gradle init
Select type of project to generate:
1: basic
2: application
3: library
4: Gradle plugin
Enter selection (default: basic) [1..4] 2
Select implementation language:
1: C++
2: Groovy
3: Java
4: Kotlin
5: Scala
6: Swift
Enter selection (default: Java) [1..6] 4
Split functionality across multiple subprojects?:
1: no - only one application project
2: yes - application and library projects
Enter selection (default: no - only one application project) [1..2] 1
Select build script DSL:
1: Groovy
2: Kotlin
Enter selection (default: Kotlin) [1..2] 1
Project name (default: asdf):
Source package (default: asdf):
> Task :init
Get more help with your project: https://docs.gradle.org/7.2/samples/sample_building_kotlin_applications.html
BUILD SUCCESSFUL in 39s
2 actionable tasks: 2 executed
すべての質問に答え終わるとプロジェクトの作成が完了します。gradle run
で Kotlin が正しく実行されることを確認します。
$ gradle run
> Task :app:run
Hello World!
BUILD SUCCESSFUL in 812ms
2 actionable tasks: 1 executed, 1 up-to-date
Kotlinx Coroutines ライブラリを追加する
./app/build.gradle を開き、dependencies ブロック内に次の一行を追加します。
// https://github.com/Kotlin/kotlinx.coroutines
implementation 'org.jetbrains.kotlinx:kotlinx-coroutines-core:1.5.2'
追加し終わった後、./app/src/main/kotlin/[パッケージ名]/App.kt を開いて次のコードに修正します。
package asdf // 適切なパッケージ名
import kotlinx.coroutines.*
fun main() {
runBlocking {
launch {
delay(1000)
println("World")
}
println("Hello")
}
}
再度 gradle run
を実行すると次のように出力されます。
$ gradle run
> Task :app:run
Hello
World
BUILD SUCCESSFUL in 1s
2 actionable tasks: 1 executed, 1 up-to-date
画面上は正しく出力されているように見えますが、この出力はすべて一瞬で表示されます。 delay(1000)
と書いているにも関わらず、「Hello が出力されてから1秒後に World が出力される」ということが確認できません。
gradle run -q
を実行することで上記の動作が確認できます(-q
オプションは最低限の出力に留めるオプションですが、今回はこのオプションがうまくいきます)。
$ gradle run -q
Hello
World # Hello が出力されてから1秒後に出力される
VSCode 拡張機能をインストールする
Kotlin Language をインストールすると、シンタックスハイライトが効きます。コード補完や lint の機能を利用したい場合は Kotlin をインストールします。
まとめ
これで Kotlinx Coroutines のハンズオンが捗るはずです。