Java
Android
Kotlin
SpringBoot

Java未経験者がKotlinを勉強するためにやったこと


はじめに

普段はPythonばかりを書いている大学生です。

現在は興味半分で申し込んだインターンになぜか受かってしまい、研修としてメッセージングアプリを作っています。

このインターンでは推奨言語がサーバーサイド、クライアントサイド共にKotlinとなっていました。

一切Javaを触ったことのない自分がKotlinで実装できるのか、、、と結構不安でしたが、調べながらやってみると意外と簡単に覚えることができました。

ネットの記事は、Javaとの対比を目的としたKotlinの記事が多いように思います。私のようにJavaからの移行でない人にとっては、なかなか取っ付きづらいのも事実です。

そこで今回は、Java未経験者がKotlinを勉強するためにやったことを順番に紹介していきたいと思います。


言語の理解


Kotlinスタートブック -新しいAndroidプログラミング

Kotlinスタートブック -新しいAndroidプログラミン

https://www.amazon.co.jp/Kotlinスタートブック-新しいAndroidプログラミング-長澤-太郎/dp/4865940391/


概要


  • 最初にKotlinの文法を覚えるために買った本

  • レイアウトが綺麗で、とっつきやすいデザイン

Googleで「Kotlin」と検索してみると分かると思いますが、基本的な文法から体系的にまとまっているサイトはなかなか見つかりません。普段はほとんど書籍で勉強することはないのですが、今回ばかりは買ってみました。

内容は三部構成になっていて、最初の2部がKotlinの文法、最後の第三部がAndroidでの実装について書かれています。分量もだいたいこの比率です。


文法

簡単な条件分岐や関数から、クラスや継承といったプログラミングをする上で必要な基本的文法は網羅されています。

他のプログラミング言語を少しでもかじったことのある人ならすぐに理解できると思いますし、プログラミング未経験者の方でも(多分)理解できるように書かれているように感じます。


Android

こちらはAndroidの実装をある程度知っている前提で書かれています。

私はAndroid実装に関しても完全な初心者だったので、少々理解するのに苦労しました。

しかし今読み返してみると、詰まっていたのはKotlinというより、xmlファイルの記述であったり、アダプターの概念などでした。

Kotlin特有のテクニックを多数使って書かれているので、Javaからの移行を検討しているクライアントエンジニアにとっては、「なるほど。」と思わせてくれる部分も多いかと思います。


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

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

https://www.amazon.co.jp/Kotlinスタートブック-新しいAndroidプログラミング-長澤-太郎/dp/4865940391/


概要


  • 先程と同じ方が書かれたKotlin入門本

  • 半分はサーバーサイドAPIの実装について書かれている

JavaではWebフレームワークとして有名(らしい)SparkとSpring Bootを使った実装のサンプルが紹介されています。しかしながら、Kotlin特有の文法を使ったテクニック等も書かれており、「確かに便利だ」と思うものもありました。

Androidの実装をしない方はこちらの本の方が良いかもしれません。


基礎を学んだ後

大まかな基礎を学んだら、後はわからないところを個別に調べていくことになります。

ここでは、自分が詰まった部分にスポットを当てている記事を紹介したいと思います。


Kotlin スコープ関数 用途まとめ


  • Kotlinでは標準で多くのスコープ関数が用意されています。

  • よく使うスコープ関数が表にわかりやすくまとまっていて、すんなり理解することができました。

  • それぞれのスコープ関数に関する定義や例も載っているので、リファレンスを見る感じでよく見ています。


Kotlin文法 - 関数とラムダ


  • Kotlinで高階関数の例が書かれています。

  • 自前でコールバックっぽい処理を書きたいときに詰まって調べました。

  • 高階関数の定義を初めて見た時、「なにこれ?」と思ったのですが、じっくり読むことで理解できました。


入門Kotlin coroutines


  • Kotlinで非同期処理をやりたいなって思って見つけた記事です。

  • 正直最初は読んでも全く理解できませんでしたが、n回読んだら理解できました。

  • 後述するCoroutinesを使った実用例を先にみて、詳しく調べたいと思ったら見てみると良いと思います。


KotlinのCoroutinesでRetrofitをより便利に!


  • Retrofit + Coroutinesを使った非同期APIクライアントの実装例です。

  • Androidでの非同期処理はRxJavaを使うのが主流みたいですが、これからKotlinへの移行が進めば、Coroutinesを使った実装も増えるんじゃないかという読みで勉強してみました。

  • 非同期処理がコールバックを使わず同期的に書けるのにググッっときました。


Reference - Kotlin Programming Launguage


  • Kotlinの公式リファレンスです。

  • なんだかんだいって†最強†

  • 英強の方はこれだけですべて学べると思います(自分には無理)


まとめ

いかがでしたでしょうか?

KotlinというとJavaから覚えないとダメなのかなと思いがちですが、案外すんなりと覚えることができます。書き方もモダンな言語を感じさせる部分もありますし。

「とりあえず本を買って、わからないところがあればネットで調べる」、これが最短でKotlinを覚える方法かもしれません。

これを気にKotlinを勉強してみてはいかがでしょうか?  

  

  

「この処理Pythonならすぐなのになぁ」と時々思ってしまうのは秘密。