【超入門】Kotlinとは? いま話題のAndroidアプリ開発言語を徹底解説

Kotlinって簡単にいうと、どんな言語なの?

アプリ開発してみたいからKotlinを勉強してみたい!
おすすめの方法は?

結局KotlinとJavaどっちを勉強すればいいの?

こんにちは。文系出身でプログラマになり早8年、最近はライターとしても活動中の佐藤です。

皆さんはKotlinという言語をご存知ですか? かなり最近に開発された言語ですが、アプリ開発という点でご存知の方も多いかもしれません。

ですが、初学者向けの情報はまだまだ少ないですよね。

Kotlinも、今非常に注目されているの新言語のひとつです。この記事では、Kotlinを知らない人も良く分かるよう「Kotlinとは何か?」を基礎の基礎から解説していきます。

また、他の言語との比較や、おすすめの学習方法なども合わせて紹介していきますので、ちょっとKotlinに興味がある方も是非ご覧になってください。

それではさっそく、Kotlinがどんな言語なのか見ていきましょう!

Kotlinとは?

この章ではKotlinはどんな特徴を持った言語なのかを紹介していきます。

※ちなみに、この時点でそもそもプログラミングや言語というもの自体がよくわからないという方は以下の記事をお読みになってください。

【初心者必見】プログラミングとは?誰でもわかる基礎知識
更新日 : 2020年7月21日
プログラミングの勉強を始める初心者が最初にやるべき7つのこと
更新日 : 2020年7月14日

Javaをもっと簡潔にしたオブジェクト指向言語

Kotlin(コトリン)は2011年ごろに発表されたプログラミング言語です。JVM上で動作する静的型付けのオブジェクト指向で、静的なnull安全が保証されているのが特徴としてよくあげられます。

また、Scalaなどの現代的な言語からも影響も受けており、Javaに比べてコードの記述量が少なく済むといわれています。Javaとの相互利用も出来るように配慮されている最新のプログラミング言語なんです。

2017年にAndroid公式開発言語に追加された事で、知名度がぐんと上がりました。

専門用語が多くて分からない……と思った方も安心してください。次の項目で「超」簡単に特徴をまとめます!

超簡単に一言で言うと

わかりやすい言葉でKotlinの特徴をまとめていきます。

Javaと同じオブジェクト指向言語!

オブジェクト指向はクラスなどの部品を作って、それを組み合わせて作るプログラミングです。すでに、プログラミングを勉強したことがある方には馴染み深いかもしれませんね。

オブジェクト指向について詳しく知りたいと思った方は、ぜひ次の記事をご覧ください。

Javaと相互利用できる!

JavaのコードをKotlinで呼び出したり、その逆もできます。すでにJavaで作られている資産を活用することができちゃうんです。

引っ掛かりやすいエラーを未然に防いでくれる!

KotlinはNullPointerExceptionを防いでくれる仕組みになっています。NullPointerExceptionってなんだろう? と思った方は、この記事をご覧ください。

Kotlinの特徴を簡単につかむことが出来たでしょうか? 次の章ではKotlinと他の言語を比較していきます。

Kotlinと他の言語を比較

この章ではKotlinと、Kotlinが影響を受けた言語について比較していきます。結局どっちを学習すればいいのか? と迷っている方は是非ご覧になってください。

Kotlin vs Java

KotlinとJavaは相互利用もできるので、どちらから学習しようか迷っている方も多いでしょう。先程の特徴紹介でもありましたが、Kotlinは

  • Javaよりもコードが短く簡潔
  • Javaで陥りがちなNullPointerExceptionを防ぐ仕組みがある
  • Javaのコードを呼び出せる(逆も可能)


とJavaをより進化させた最新の言語となっています。

ですが、困ったときに確認できる情報や入門書籍などはJavaに比べればまだまだ少ないです。求人の数などもまだまだJavaには劣ります。

あなたがアプリ開発以外を行っていきたいと思うならまずはJavaを学習するほうが良いかもしれません。サーバーサイドエンジニアとしてはまだまだJavaプログラマが求められています。

結論をまとめましょう。

  • Androidアプリ開発を目標にするならKotlin
  • サーバーサイドエンジニアを目標とするならJava

もちろんどちらを先に学習しても、2つの言語は相互利用できます。似ている部分も多いため無駄にはなりません。自分の目標に合わせて、学習する言語を選択することをお勧めします。

次は、同じくJavaの影響を受けて生まれたScalaとの比較です。

Kotlin vs Scala

KotlinとScalaはJavaの影響を受けて生まれた言語ですが、基本の特徴がちょっとだけ異なります。

  • Kotlinは「オブジェクト指向」
  • Scalaは「オブジェクト指向+関数型プログラミング」

関数型プログラミングというのは、関数を組み上げてプログラミングする言語のことです。代表的な関数型言語としては「Haskell」などがあります。

どちらもJavaより短く簡潔なコードを記述でき、JVM上で動作します。

Scalaについてもっと詳しく知りたい方は、紹介している記事がありますので是非ご覧ください。

ですが、Javaとの相互利用が保証されているのはKotlinだけです。もしJavaで作られたものとの相互利用を考えているならKotlinを選ぶほうが安全でしょう。ScalaはJavaとの相互利用を一番に考えて作られたものではありません。

KotlinはJavaをより進化させ良いところを伸ばすことを目標に、ScalaはJavaを超える新しい言語になることを目標にしていると言われています。また、Scalaは学習コストが高いともいわれます。

初めて触れる言語なら、Kotlinのほうが適しているかもしれませんね。

結論をまとめます。

  • Javaと行き来し、相互的に使いたいならKotlin
  • Javaでは出来なかったことをしたいと思うならScala


この2つの言語も文法が似ているので、どちらかを先に学習しても無駄になることはありません。自分がどんなものを作りたいのかを考えて選ぶことをお勧めします。

さて、次の章ではKotlinでなにができるのか?について解説していきます。また、実際に使用されている例も紹介していきます!

Kotlinで作れるもの、作られたもの

Kotlinで作れるものといえばやはり「Androidアプリ」です。Androidの公式ではキャラクターがこのようにKotlinでの開発を後押ししています。

画像:https://developer.android.com/kotlin

もちろんサーバーサイドで利用している企業も徐々に増えてきています。

海外企業ではUber、Evernote、NetflixがKotlinを使用しています。日本企業でも取り入れる企業は増えてきています。Kotlinで作られたアプリは「Yahoo!ニュース」や「LINE」などがあります。身近なアプリで使われているんですよ。

日本でKotlinを使っている企業

  • Yahoo!(Android版 Yahoo!ニュースアプリ、GYAO!など)
  • LINE(Android版 LINEアプリ、LINE LIVEアプリ)
  • サイバーエージェント(Abemaなど)
  • Retty
  • トクバイ etc...

この先、更に採用される企業やアプリは広がる見込みです。もちろんアプリ以外にサーバーサイドの開発でも使用されているので、今後は使用範囲が広がっていくかもしれません。

さて、そんな将来性のあるKotlinですがどのようなメリット・デメリットがあるのでしょうか? 一緒に見ていきましょう。

Kotlinのメリット、デメリット

ここまでで多くのKotlinの良い部分を紹介してきましたので、先にメリットについてまとめます。

Kotlinのメリット

  • Javaより短く簡潔なコードが書ける
  • Javaとの相互利用が出来る
  • NullPointerExceptionにならないような仕組み
  • Androidアプリ開発を公式がサポートしてくれている
  • 学習コストが低め(そこまで難しい言語ではない)


採用している企業も増えてきているので、将来性がありメリットも多いですよね。

Kotlinの言語自体のデメリットとしては特にありませんが、まだまだ日本語で読める情報が少ないという点には注意が必要です。頼れる情報がまだ少ないので、例えば分からないことや困ったことがあった場合に調べる手間がかかる可能性があります。

ですが、この問題もKotlinが浸透していくにつれ解消されることでしょう。初心者だし情報が少ないならまだ……ということであればJavaから学習するのも一つの方法かもしれません。

このように、Kotlinはメリットが多く取り入れる企業も多くなっています。そんなKotlinエンジニアの需要や市場価値はどのようになっているのでしょうか?

実際の求人情報を見ていきましょう。

Kotlinエンジニアの需要

この章ではKotlinが必要とされる実際の求人と年収などを紹介していきます。

Kotlinの実際の求人を見てみよう

Kotlinを扱うことが出来れば、具体的にどのような仕事をすることができるのでしょうか? 実際に求人サイトで検索してみましょう。レバテックフリーランスで「Kotlin」と検索してみました。

画像:レバテックフリーランス https://freelance.levtech.jp/

現時点では(2019/4)では61件の求人があるようです。ちなみに、「Scala」だと31件、「Go」だと61件がヒットしました。

「Java」は345件ヒットしました。さすがにJavaの案件は多いですね。

さて、次は具体的にどのような求人があるのか見てみましょう。やはりスマホアプリの求人が多い印象です。

Kotlinを使ったアプリ開発の経験があれば、月収最大100万円のお仕事に就くことも可能なようです。


URL:https://freelance.levtech.jp/project/detail/30962/

実際に自分が使うかもしれない、身近なアプリ開発に携わることもできます。


URL:https://freelance.levtech.jp/project/detail/31876/

このように、現在ではほとんどがアプリ開発の求人でした。いろいろな企業でKotlinの導入が進んでいる証拠ですよね。

アプリ開発以外の求人が増える可能性もあり、とても需要が高まってきている言語になっています。そんなKotlinエンジニアの年収はいったいどのくらいなのでしょうか?

Kotlinエンジニアはどのくらいの年収?

Kotlinエンジニアの年収はGoやScalaと比べると順位が下ですが、それでも中央値が575万円とかなり高額になっています。Javaエンジニアの年収中央値は500万円で14位ということなので、結構な差があるのが分かります。


【求人検索エンジン「スタンバイ」調べ】
https://www.bizreach.co.jp/pressroom/pressrelease/2018/0807.html

Kotlinは現時点でもGoと同じくらいの求人数があり、今後Javaに代わる開発言語となればもっと求人数が増える可能性があります。今から学習しておいて損はない言語といえますよね。

さて、ここまでKotlinの紹介をしてきて興味が湧いた方もいらっしゃるかと思います。次の章からはKotlinで実際にコードを書いてみたり、おすすめの学習方法について紹介します。

Kotlinを勉強しようと思ったら

Kotilnを勉強しよう!と思ったら、大きく3つの選択肢があります。

  • 書籍などを使って独学で勉強する
  • 勉強会に行って教えてもらう
  • スクールで教えてもらう


この章では、この3つの選択肢について簡単に紹介していきます。
まずは、独学で勉強する方法についてです。

独学で学ぶ

開発環境を構築してみよう

独学で学ぶために、まずはさっそく開発環境を構築してみましょう。

今回は統合開発環境として「Android Studio」を使うことにします。
こちらからダウンロードします。

https://developer.android.com/studio

「DOWNLOAD ANDROID STUDIO」のボタンからダウンロードします。ちょっと時間がかかると思いますので、終わるまでゆっくり待ちましょう。

ダウンロードが終わったら起動し、インストールを始めます。保存先などを変更しないなら「Next」で進んでしまって構いません。

公式のインストールガイドもありますので、こちらも合わせて確認してみてください。

次のような画面がでたら、初回設定を行います。

こちらも基本的に「Next」を選んで問題ありません。最後に「finish」を押下して、初回起動を済ませましょう。

ダウンロードが終わり、改めてAndroid Studioが起動したら「Start a new Android Studio project」を選択します。こちらも、Nextやfinishを押して進んでしまって問題ありませんがKotlinで開発する時には次の画面でKotlinを選択するようにしましょう。

この画面が表示されたら、準備は完了です。

さっそく実践ということで、動かしてみましょう。

実践! 簡単に動かしてみよう

今回も「hello world」をコンソール表示させてみようと思います。

fun main() {
    println("hello world")
}
hello world

とっても短いコードですよね、そしてJavaっぽさもあります。経験者の方なら違和感なく学習を進められるかもしれません。開発中の実際の画面は次の通りです。

ここまで動かせるようになれば、あとは書籍やサイトで学習あるのみです! 次の項目ではお勧めの書籍や入門用サイトについて紹介していきます。

現役エンジニアお勧めの書籍

まず、Kotlinについて学びたいなら次の一冊をお勧めします。

Kotlinスタートブック| Amazon

日本Kotlinユーザグループ代表である長澤太郎さんの書籍です。とても分かりやすくKotlinについて書かれています。実践もありますので初心者の方にお勧めです。2016年初版のため少し情報が古いかもしれませんが、Kotlinを初めて勉強するには最適な書籍になっています。

次は、KotlinでAndroidアプリを開発したいと考えている方へお勧めの一冊です。

Androidアプリ開発のためのKotlin実践プログラミング| Amazon

Kotlinでのアプリ開発を実践的な内容をもとに解説しています。基礎の学習が済んで、アプリ開発をしてみようと思っている方はこの書籍で実践してみることをお勧めします。

次に、アプリ開発ではなくサーバーサイドでKotlinを使ってみようと考えている方へお勧めの書籍です。

Kotlin Webアプリケーション 新しいサーバサイドプログラミング| Amazon

こちらも長澤太郎さんの書籍です。サーバーサイドでKotlinを使用することに関しての書籍は、まだまだ数が少ないのが現状です。こちらの書籍はその中でもわかりやすく、Web アプリについての知識もつけることが出来る一冊です。

次に、参考になるWebサイトについて紹介します。

参考になるKotlinの無料入門サイト

Kotlinに関する入門サイトはまだ数が少ないですが、この二つは必ずチェックすることをお勧めします!

[Kotlin入門までの助走読本(PDF)]
https://drive.google.com/file/d/0Bylpznm149-gTGRjOFRkWm9PODg/view

日本Kotlinユーザーグループの方々がPDFで入門知識についてまとめてくれています。まずはこれを読み、Kotlinに関する基礎知識を付けましょう。

公式のリファレンスには最新の情報が載っていますので、こちらも必ず確認するようにしましょう。

[リファレンス]
https://kotlinlang.org/docs/reference/

また、有志が公式のリファレンスを日本語訳してくれたものもあります。英語が苦手だ…と思う方はこちらだけでも確認しながら学習を進めましょう。

[リファレンス(日本語訳版)]
http://dogwood008.github.io/kotlin-web-site-ja/docs/reference/

勉強会に行って学ぶ

Kotlinの勉強会は年に数回行われているようです。
IT勉強会や、イベントを検索できる「connpass」で日本Kotlinユーザグループをフォローして勉強会情報を見逃さないようにするのをお勧めします。

https://kotlin.connpass.com/event/

また、「connpass」でKotlinと検索して、勉強会情報を検索するのもお勧めです。

勉強会に行くのは勇気がいるかもしれません。ですが、同じようなレベルの初学者、もっと高いレベルのエンジニアなどいろんな人と情報交換できる非常に有意義な時間になること間違いなしです。行ける機会があるなら、参加をお勧めします。

スクールを検討してみる

ここまで紹介した方法は、すべて自力で学習する方法でした。


実は一度、独学で勉強してみたけど挫折してしまった……

一人で勉強すると、さぼってしまったりして結局習得できないんじゃないかと不安……

と思う方もいらっしゃるかもしれません。
そんな方は、スクールを検討してみることをお勧めします。
スクールでの学習なら、一人での学習は不安という方もサポートを受けることが出来るので安心です。
学習のモチベーションになる目標を、プロが一緒に考えてくれ適切なレベルで設定できるという点もお勧めです。

とはいえ、スクールに通うといきなり決めるのは不安しかありませんよね。
侍エンジニア塾では、「無料体験レッスン」を行っています。業界屈指のコンサルタントがあなたの悩み・不安をしっかり聞いて、解決へ導いてくれますので、お悩みの方は一度無料体験レッスンを受けてみることをお勧めします!

まとめ

この先が非常に楽しみな言語「Kotlin」に関して解説を行いました。かなり新しい言語なのにも関わらず、非常に注目されていることがお分かりいただけたでしょうか?

この記事をよんで興味が湧いた方は、ぜひ書籍などを使って「Kotlin」に実際に触れてみてくださいね。

それでは、また次の解説で!

LINEで送る
Pocket

「プログラミング、右も左もわからない…」という方にオススメ

当プログラミングスクール「侍エンジニア塾」では、これまで6000人以上のエンジニアを輩出してきました。

その経験を通してプログラミング学習に成功する人は、「目的目標が明確でそれに合わせた学習プランがあること」「常に相談できる人がそばにいること」「自己解決能力が身につくこと」この3つが根付いている傾向を発見しました。

侍エンジニア塾は上記3つの成功ポイントを満たすようなサービス設計に磨きをかけております。

cta_under_bnr

「自分のスタイルや目的に合わせて学習を進めたいな」とお考えの方は、ぜひチェックしてみてください。

書いた人

佐藤

佐藤

文系大学出身、なんとか自力で頑張りプログラマー歴今年で8年目。
自力で頑張って勉強した経験を生かし、読者の皆様に分かりやすく親しみやすい記事を書けるよう日々邁進中です。
出来る言語はC#,VB,Java,Delphiなどなど、幅広く触っています。