LoginSignup
2
1

More than 1 year has passed since last update.

Kotlinって何?って人向けの解説

Posted at

最近巷で話題のKotlin、名前を聞いたけど一体どんな言語なのか?そもそもKotlinなんて名前も聞いたこともないし触ったこともない方向けに自分の勉強含め、解説していきたいと思います。

Kotlinとは?

KotlinはJetBrains社によって開発された静的型付けオブジェクト指向プログラミング言語。2011年にProject Kotlinを発表、翌年の2月にApache2 licenseをもとにオープンソース化されました。名前の由来はロシア領のコトリン島

言語の特徴

  • JVMで動作し、Javaで書かれたプログラミングとほぼ変わらない速度でコンパイルできる
  • Null safety (NULL安全)
  • Javaとの相互運用ができる(Javaのクラスを呼び出したり、KotlinのクラスをJavaで呼び出すことができる)
  • Javaより簡潔に記述できる

言語仕様がかなりJavaと似ているところがあるため、Javaプログラマであれば少しの時間であまり違和感なく使えるのではないのでしょうか。私も実際にJavaを習得していて、ある程度Kotlinのリファレンスを流し読みしただけでもすぐにAndroid開発でほぼ不自由なく使用することができました。

また、Javaほどコードが複雑にならない、Null safetyの恩恵でJavaエンジニアをよく苦しめるNullPointerExceptionを防ぐことができます。それらのことから、Javaよりも学習コストが低く、Javaを取得していないエンジニアでも比較的学びやすい言語です

開発環境について

Kotlin単体で使用したいならIntelliJ IDEA + 推しのJDK、Android端末などで使用したいならAndroid Studioの使用を推奨します。どちらもエディタはJetBrains社のIntelliJ IDEAを使用しており、かなり強力です。機能としては、

  • JavaのコードをKotlinファイルにコピペするとKotolinに変換できる
  • 文脈などを考慮したスマート保管
  • 文法チェックと充実したリファクタリング
  • 見やすいシンタックスハイライト
  • dockerやGitHubとの連携 等々...

IntelliJ IDEAは有料版もありますが、Kotlin言語単体での開発であればほぼ問題ないと思います。

JDKに関しては最新であれば基本どのJDKでも大丈夫です。
上記のほかにもコマンドラインで実行環境を構築し、Visal Studio Codeで開発することも可能です。
また、web上での実行ツールもあり、簡単に試すことが可能です。

Kotlinで主にできること

Javaでできることは基本的に何でもできます。その中で主に使われる用途について軽く説明したいと思います。

Android

Android開発がKotlinを使う機会が一番多いのではないかと思われます。
Kotlinは2017年にAndroidの公式言語になっており、急速に開発者の人気を集めていきました。
現在、60%以上のAndroid開発者がKotlinを採用しており、2019年にGoogleがGoogle I/O 2019 にて「Kotlinファースト」をさらに強化していくということで、その取り組みをしていきました。

例えば、

Java プログラミング言語からの API の使用もサポートしつつ、Kotlin ユーザーを念頭において設計されているようです。

Kotlin+Androidはどのくらい簡潔に書けるのか

簡単なデータを保存しておきたいときによく使用されるSharedPreferencesの比較ですが

Javaのみで記述した場合

Sample.java
SharedPreferences sharedPref = getActivity().getPreferences(Context.MODE_PRIVATE); //Preferencesの取得
SharedPreferences.Editor editor = sharedPref.edit();
editor.putInt(getString(R.string.saved_high_score_key), newHighScore);
editor.commit();

KTX + Kotlinで記述した場合

Sample.kt
val pref:SharedPreferences =  getPreferences(Context.MODE_PRIVATE) //Preferencesの取得
pref.edit(commit = true){ 
    putInt(getString(R.string.saved_high_score_key), newHighScore)
}

このようにKTX + Kotlinで記述すると、Javaよりも簡潔にわかりやすく自然に記述することができます。
実際に書きやすく、コードを見直した時もどのような処理だったかも分かりやすいため、Android個人的にお勧めします。
また、Android developersでのKotlinのスタートガイドがかなり充実しており、初学者でもかなり手に付けやすい環境になっております。
もう一つの利点として、冒頭でJavaとの相互運用できると言ったように、Kotlinがサポートされる前の古い端末でもAndroidAPIのバージョンが合えば使用できます

サーバーサイド

サーバーサイドではSpring frameworkが主に使用されています。
Springは再利用性が高く、大規模なサーバー構築などに用いられていきました。
SpringのほかにKtorなどの非同期Webフレームワークも存在します

導入方法

Spring Initializrでテンプレートプロジェクトを作成できます。自動生成されたプロジェクトをIntelliJ IDEAで読み込むと簡単に実行可能になります。

その他

  • KotlinDL Deep Learningができる。モデルの作成は非対応だったはず。
  • Kotlin for JavaScript KotlinをJavaScriptに変換できる

Hello World

Hello.kt
fun main(string: Array<String>){
    println("Hello World Kotlin!!")
}

MainClassを作る必要はないです。funclassに修飾子がついていない場合は暗黙的にpublicになります。
mainの引数はコマンドライン引数。JavaはSystem.out.printlnまで必要でしたがKotlinはprintlnだけで簡単に出力ができます。

文法

記述予定

2
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1