Kotlinを初めて触ってみた 【環境構築と触ってみた感想】

#はじめに
今までJavaしかやってなかったけど「Javaと100%完全互換」ってのに惹かれて、ずっと気になってたけどついに触ってみることにしました。
標準のビルドツールがGradleらしいのでGradleを使ってプロジェクトを作りたかったのですが、めっちゃしょうもないところで躓いていたので、その話もしつつ環境構築とちょっとしたコードと触ってみた感想を書きたいと思います。

#開発環境
今回は以下の環境でやっていきます。

- Windows 10
- JDK 8u161
- Intellij IDEA 2019.3.4
- Kotlin 1.3.61
- Gradle 5.2.1

#プロジェクトを作る
![db9fd2ebe572db48ab2214b4c0bb4da7.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/463558/312d80c4-928e-1378-3087-0827e3f69fa8.png)
新規プロジェクトの作成を選択します。

![48da0369c8e076651353fe1622053b41.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/463558/d811a6cc-7780-28f2-b520-3f862cb947e8.png)
Gradleの項目を選択し、Kotlin/JVMにチェックを入れて次へをクリックします。
必要に応じて他にも使いたいライブラリーがあればチェックをを入れておきましょう。

![a78d22aca72558a5c08e10993cbeaf0e.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/463558/5e7fd8a5-2935-ebde-bbd3-87888e3d918c.png)
ここでプロジェクトの名前を決めることができます。ここはご自由に入力してもらって大丈夫です。
入力できたら完了をクリックします。

![5340caf70644ee4b8127ac09f0b2d247.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/463558/7b51d956-24d3-f0ad-e891-67394e3b7088.png)
するとGradleの設定やKotlinのライブラリのダウンロードが自動で始まるので少し待ちましょう。
CONFIGURE SUCCESSFULと表示されれば成功です！

#なんかエラー出るんだけど...
![8a5ba9f35b501f0e8a910e3aa4f9cedf.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/463558/ff0292af-e38b-3686-ef33-2d5d2080ccc8.png)
この記事を書く前に勘でプロジェクトを作ってみたんですが、なぜかエラーが出ました。
どうやら「Kotlinのプラグインが見つからねっぞ！」ってことらしいです。
そんな馬鹿な。自動ダウンロードしてくれるんちゃうんか！ と思って試行錯誤してたらGradleのタブにこんなボタンを発見。

![50424b88d12bcfba5e09486833d01798.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/463558/12e820c2-89a4-3cf0-df0c-b7b80a057c79.png)
このボタンで**Gradleをオフラインモードにできる**ようで、**インターネットに繋がってるけど(Gradleが)インターネットに繋がっていない**っていう不思議な状態になってました。嘘やろ。

というわけでこのボタンを押したまま環境を作ると必要なライブラリがダウンロードされずにエラーが出る上、再インポートしてもソースフォルダなどが正しく生成されない可能性があるので、もし押していた場合はオフにしてもう一度最初からプロジェクトを作り直してください。

#Hello Worldしてみた
![d2826dc61a2b0b48bfa7b5a21c1b0899.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/463558/e2fd5083-df45-1439-09b6-7d47235edefb.png)
ソースフォルダにて、新規 > Kotlin ファイル/クラスを選択し、ファイルを作成します。

```kotlin

fun main() {
    println("Hello World")
}
```

こんな感じで書けました。ちなみにJavaだとこのように書きます。

```java

public class HelloWorld{
   public static void main(String[] args){
     System.out.println("Hello World");
   }
}
```

明らかにKotlinの方がスタイリッシュで見やすいです。入力する文字数も少なく済みます。

#FizzBuzzしてみた

```kotlin
fun main() {

    for (i in 1..100) {

        val result: String = when {
            i % 15 == 0 -> {
                "FizzBuzz"
            }
            i % 3 == 0 -> {
                "Fizz"
            }
            i % 5 == 0 -> {
                "Buzz"
            }
            else -> {
                i.toString()
            }
        }
        print("$result ")
    }
}
```

![865474aff3edd2f25c076510a2167962.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/463558/3c2ec2a6-dac2-1024-de51-04854e3db84f.png)

なにげにFizzBuzzをするのは初めてだったりしますが、うまいこと実行できました！

#一通り触ってみた感想
##良かった点

- **コードが簡潔に書ける**
Javaのようにいちいち型を指定する必要が無いのでめっちゃ楽ですし、見やすいです。

- **Javaの文法がわかればKotlinの文法も覚えられる**
IDEAの機能を使ってJavaからKotlinにコードを変換できるので、情報が少なくてもある程度は簡単に覚えられると思います。

- **Javaとの相互利用が保証されている**
私がKotlinに手を出してみようと思った理由です。 私は今までJavaしか書いたことがなかったですし、それすら独学で知識も浅いのに他の言語に手を出すのは抵抗がありました。しかしKotlinはJavaと100%互換性がある上、KotlinのクラスからJavaのクラスを呼んだりできるんですよ。最高じゃないですか！

##躓きやすかった点
- **Javaと型名と識別子が逆**
慣れの問題だと思うんですが、しょっちゅう間違えます。また、間にコロンを入れないといけないのでたまに忘れます。

- **めっちゃセミコロン入力する**
あって当然と思っていたので、無いことに違和感を感じてます笑。

#終わりに
初めてJava以外の言語に手を出しましたが、なかなかいい言語だと思います。ちょくちょくミスすることもありますが、開発元がどちらも同じなので各々機能が充実していて覚えやすかったです。そのうち簡単なアプリなども作れるようになりたいな～と思います。

**それでは皆様良きKotlinライフを！**

#参考
Gradleツールウィンドウ - 公式ヘルプ https://pleiades.io/help/idea/jetgradle-tool-window.html
GitHub - Kotlin/kotlin-examples https://github.com/Kotlin/kotlin-examples/tree/master/gradle/hello-world
Kotlin文法 - 関数とラムダ https://qiita.com/k5n/items/964d765767a65cc3de5b