SwiftエンジニアがKotlinのチュートリアルをやってみたのでメモ書きします。今回はHello Worldをするまでです。IntelliJ IDEAを使ってやります。
ちなみに私はAndroidアプリをむかーしに1回だけ書いたことがある(eclipse / Java)程度で、IntelliJ IDEA、Kotlinは触ったことありません。
チュートリアル資料
https://kotlinlang.org/docs/tutorials/
※今回私はIntelliJ IDEAを使うのでその中でもこのページに沿って進めます。
https://kotlinlang.org/docs/tutorials/getting-started.html
Hello Worldをするまで
IntelliJ IDEAをダウンロードする
こちらのページで最新のCommunity版をダウンロードしました。古いIDEAやAndroidStudioを使う場合は手動でKotlinのプラグインを追加する必要があるようです。追加方法については以下のように書かれています。
Under Preferences (OSX) or Settings (Windows/Linux) > Plugins >
Browse Repositories type Kotlin to find the Kotlin plugin.
Click Install and follow the instructions.
新規プロジェクトを作成する
IntelliJ IDEAを立ち上げてCreate New Projectをします。
KotlinはJDK 1.6以上で動くようです。Kotlin(Java)
チェックボックスにチェックを入れてNextをクリックします。
プロジェクト名を設定します。
するとこんなかんじでプロジェクトが作られました。
Kotlinファイルを作成する
srcフォルダの下にKotlinフォルダを作成します。srcフォルダの上で右クリックをし、New -> Kotlin File/Classを選択します。
適当に名前を決めてOKをクリックします。
ファイル追加ができました。
Hello Worldを表示する
main関数を書きます。mai
くらいまでタイプすると予測補完が出てきます。
ここでEnterかtabを押すと補完が聞いてmain関数が入力されます。
main関数の中にprintln("Hello, World!")
と打ってみます。
ではいよいよ動かしてみます。一番簡単な実行方法は左のKotlinマークをクリックし、Run 'AppKt'を選択することだということなのでその通りにやってみます。
するとRun tool windowに実行結果が表示され、Hello Worldを表示させることに成功しました。
おまけ:快適に開発するために
保存時に自動でフォーマットをかける
http://qiita.com/suzuki-hoge/items/98df92eb44eb131de6eb#保存時にフォーマッタを実行する という記事に従って設定しました。とても便利です。
大文字小文字を区別しないで補完
IntelliJ IDEA -> PreferencesからEditor -> General -> Code Completionを選択し、Code sensitive CompletionをNoneにします。
するとこのように大文字小文字関係なく補完が出て来るようになります。
綴りチェックのOFF
造語などを書いた時にいちいち波線を引かれたくない時に設定します。
↓ちょっと見えにくいけどShouhin
の部分に緑色の波線が入っている。
IntelliJ IDEA -> PreferencesからEditor -> Inspections -> Spellingのチェックを外せば波線は表示されなくなります。
.gitignore
こちらをまるっとコピーして入れました。
https://github.com/JetBrains/kotlin/blob/master/.gitignore
コマンド:名前からアクションを見つける
Command + Shift + A
で設定系のことも検索できます。例えばwhite
と入力するとwhite spaceの設定などが表示されます。
警告対処
※結論から言うと、私は放置しておくことにしました。ので、興味ある人のみ最後まで読んでみてください。
警告内容
初めてHello Worldを実行した時にコンソールにこんなメッセージが出ていました。
objc[16282]: Class JavaLaunchHelper is implemented in both
/Library/Java/JavaVirtualMachines/jdk1.8.0_121.jdk/Contents/Home/bin/java and
/Library/Java/JavaVirtualMachines/jdk1.8.0_121.jdk/Contents/Home/jre/lib/libinstrument.dylib.
One of the two will be used. Which one is undefined.
実行はできているものの不穏なメッセージが表示されています。
対処法調査
stack over flowに辿り着きました。
http://stackoverflow.com/questions/20794751/class-javalaunchhelper-is-implemented-in-both-one-of-the-two-will-be-used-whic
どうやらJDK 1.7.0_45時点から発見されているバグであり、JDK 1.8.0_92時点でもそれは直っていないとのこと。執筆時最新バージョンはJDK 1.8.0_121だったのでまずは最新バージョンを入れて直っていないか確かめることにしました。
対処実行
JDKはこちらからダウンロードし、指示に従ってインストールをしていきます。インストールが終わったらIntelliJで設定をします。File -> Project Structureを選択します。
Project SDKを設定する箇所があるので、New -> JDKを選択します。
JDKを選択する画面が出てくるのでJDK 1.8.0_121を指定します。
もしJDKの場所がどこかわからなかったら以下のコマンドラインツールで以下のコマンドを打ってみてください。パスが表示されます。
/usr/libexec/java_home -V
JDKを最新に指定できたところで再度プログラムを実行してみます。が、またも同じ警告。しょうがないので先程のstack over flowに書かれていた通り、Java 7u21を使用してみることにします。こちらのページからJava 7u21をダウンロードします。アーカイブからダウンロードするにはOracleのプロファイルを作成する必要があります(アカウント登録のようなもの)。ダウンロードしたらインストールしてIntelliJにセットした上で実行します。すると警告なく実行できました。
こうして解決したものの、古いJDK使うのもアレだし警告出てても実行自体はできるので私は最新版のJDK 1.8.0_121を使うことにしました。何か問題が出てきたらまたその時考えます。
感想
開発開始までが早い
開発開始までにやる環境構築が少なく、すぐに開発に取り掛かることができて非常に良かったです。
現在カーソルを合わせている関数名が表示されるのは面白い
今カーソルを合わせているところの関数名が上部に表示されるのは面白いなと思いました。
.gitignoreも表示できるのが良い
Xcodeだと(たぶん)Xcode内で.gitignoreを表示することはできませんが、IntelliJではできます。頻繁に編集するわけではありませんがいちいちコマンドラインツールを立ち上げることなく編集できるのは便利だと思いました。
保存済みかどうかがわかりにくい
Xcodeの場合は保存していないファイルはグレーになりますが
intelliJは特に変化がないように思います。保存していなかったとしても実行時に自動保存されるようなので特に問題はないのですがXcode, eclipseを触ってきた身としては少し戸惑いを感じました。