Kotlinの学習に便利そうなツールを使ってみた

こんにちはNIKKOのM.Aです。

皆さん、Kotlinってご存知ですか?
Javaの代替言語(いわゆるAltJava)で5つの特徴(簡潔、安全、多彩、Javaとの相互利用、ツールの充実)があり、2016年2月にバージョン1.0がリリースされました。
新しい言語を覚えるのは大変、、、といった方に便利で効率的に学習できるツールの利用について簡単に紹介したいと思います。

1.Kotlin Koansとは

公式サイトTry Kotlinというリンクがあり、クリックすると、Kotlinのエディタがでてきます。
その中にKotlin Koansがあります。
Kotlin KoansはKotlinの構文を学ぶことができて、よりKotlinを身近なものにするために作られたものです。
Unit Testで解答した結果が正しいかを判定してくれるように作られており、解きながら学習できるチュートリアルが用意されています。
Kotlin Koansはオンラインからでも、オフライン(gitからソースを取得)からでも利用することができます。

BlogKotlin1

画面の中央左のメニューのような中に、Kotlin Koansの中にコーディングの問題があります。
Test.ktのassert処理が通るように、TODOに解答をうめていき、checkボタンを押すと、正解か判定してくれます。
Kotlin自体の敷居も低く、ローカルに開発環境を作らなくても、サイト上で、動作確認ができるので、初めての人でも、すぐに試すことができます。

2.Kotlin Koansで学べること

問題は42問で、Kotlinの全てを網羅しているわけではないです。
ですが、Kotlin初心者の私にでも、Kotlinの特徴が分かるような問題になっていると思います。
例えば、dataクラスにすると一行記述するだけでデータを保持するようなクラスが作成できたり、
operatorで演算子のオーバーロードができて処理を追加できる等、利用方法が色々あるなと。
Kotlinを用いれば簡潔に記述できるようになると感じました。

Kotlin Koansでは、以下のようなことを学ぶことができます。
【Introduction】

1.Kotlinの文法
2.JavaをKotlinに変換できる
3.Kotlinのライブラリ(joinToString)
4.overloadをデフォルトの引数で表現
5.ラムダ式の使い方
6.triple quoteでエスケープなしで改行や記号が使用できる
7.dataクラスgetterの使用例
8.nullを呼んでも大丈夫な例
9.smart castに関してwhenによる条件分岐とisでの使用例
10.int型にも関数が作成できる拡張関数
11.オブジェクト式を用いたクラスの使用方法
12.SAM(Single Abstract Method)変換でメソッドの引数に抽象メソッドを1つもつCollecions.sort
13.collectionsを用いた拡張関数

【Conventions】

14.dataクラスを比較できるようにcomparebleを使った実装
15.operatorによる演算子のオーバーロードでcontainsの例
16.operatorによる演算子のオーバーロードでrangeToの例
17.Iteratorのnextメソッドのオーバーロード使用例
18.operatorによる演算子のオーバーロードでplusとtimesの例
19.dataクラスによる分解宣言の使い方
20.operatorによる演算子のオーバーロードでinvokeはInvokableクラスで定義する

【Collections】

21.セットクラスへの変換
22.Filterとmapの使い方
23.all、any、count、findの使い方
24.faltMapの使い方
25.max、min、maxby、minbyの使い方
26.sortの使い方
27.sumの使い方
28.groupByの使い方
29.Partionの使い方
30.foldの使い方
31.応用、配達商品品の中で最も高い商品の抽出と、商品の中で注文されたもののカウント
32.応用、文字列コレクションで文字列の長さでグルーピングし、そのグループからグループの個数が最大のもので、最初のグループを取得

【Properties】

33.変数に値をセットする時に、呼び出されるセットメソッドの定義
34.変数の値をゲットする時に、呼び出されるゲットメソッドの定義
35.委譲プロパティ
36.委譲プロパティとなるオブジェクト

【Builders】

37.関数リテラルの使用例
38.関数リテラルを用いたmapのbuild
39.スコープ関数apply
40.html builderの使用例
41.html builderの問題

【Generics】

42.collectionとPairを用いたパーティション設定

2.まとめ

今回、Kotlinを学習してみて、導入の敷居も低く、Javaの経験がある人にとっておぼえておく価値のある言語だと思います。
わざわざKotlinを使用しなくても、Javaでできるというのも良いですが、より簡潔に記載できることで抽象化のレベルが上がり、設計をする時にも役立つと思います。
また、Kotlinを使い続けないにしても、どうすると簡潔にコーディングできるかという点で参考になりますし、後でJavaにも変換できると考えると、触っていて損はないです。
是非、この機会にKotlinを学習してみてはいかがでしょうか。