ブログ

Androidアプリ開発 Kotlin編

2022年1月5日
以前から、Javaを触っていると、Kotlinってどう?と聞かれるケースもありました。しかし、これまでJavaで作ってきた資産も多々あり、また、Androidアプリ開発はFlutterに移行してしまっているので、 Koltinを調べてみようと思う事なくすごしていましたが、どこかでちょっと中身を覗くくらいしないとなと思っていたところ、 以下の本を献本していただける機会があり、年末年始の休み期間中にちょっと触ってみて感想を書いてみることにしました。
従って、これからKotlinを使ってAndoridアプリ開発を勉強しようという本来の読者対象と違う視点になってしまいます。
また、多少、書籍に感想ではなく、Kotlinに対する感想も含まれてしまうこともご了承ください。
Javaとの比較という視点でどうしても見てしまうために、Java開発からどうやって移行するのかが気になってしまいます。
しかし、そういった視点での記述はありません。既にKotlinがJavaの代替という位置づけから、独立したいち言語という地位を確立したということでしょう。
また、読者の対象からはどのような移行開発者を対象にしているわけでもないという事からも当たり前ですが、自分だとそういう視点で書いてしまいそうです。
当然、イントロダクションでKoltinを使った開発環境の構築が記述されていますので、さて、勉強を始めるぞという方にとっては、むしろ、すんなり、入っていけると思います。
一方で、JavaもKotlinもよく知らないという開発者であれば、Kotlinという言語についての説明はないので、そのあたりは別の書籍などを使って勉強する必要性がありそうです。
Javaだって同じですが、すでに、Kotlin言語の書籍も多く出版されているし、言語自体は他の言語に大分似ているので、それほど問題ないはずです。
KotlinでもJavaでもあまり変わりなく、開発が出来る事がこの本から分かりました。既に、Googleも公式サポートしているので、開発者が好きな方を選べばよいというレベルである事もこの書籍からもわかります。
以下の本はJava版の書籍です。実際に中身を見ていないのでなんとも言えないところもありますが、ほぼ同じ構成ですので、言語に合わせて、内容が同じで書籍が変更出来るというのはちょっと面白いと思いました。
初心者ですと、言語が違うとそれに合わせて内容(テーマ)も変わってしまうので、どちらが良いかと悩んでいる場合には、どちらも読んでみるというのも良いかもしれません。
そう言う意味では、この書籍は、これから始めてAndroid開発をするが、その際に利用する言語がKotlinである。しかしながら、既存のプロジェクトにはJavaも残っているというようなチームにはよい書籍に思いました。 特に、そのチームを引っ張るリーダー、または先輩的エンジニアが、メンバーに勧める書籍としてあっていると思います。

先輩であっても、Kotlinについては経験がないと、たまに答えに詰まってしまう場合があります。勉強している初心者からしてみれば、ちょっとした事に躓いて進めないということがあります。 経験があるので、なんとなくの感覚で乗り越えられるケースが多いのですが、そのような先輩を見て、すごいなと思う一方で、なんとなく釈然としないイメージをうえがちです。
その場合には、Java版もあるので、説明がしやすいなと思いました。
さて、ここからは完全に書籍の内容とは関係なく、私のKotlinに対する感想です。
実際に、Javaは完全に止めて、Kotlinだけで開発しているという開発者や会社がどの程度いるのかわかりませんが、個人的にはJavaの資産を引き継ぎたいという用途がその背景にある場合が多いと思います。
そのようなケースでは、Kotlinは良い選択肢にも思います。しかし、一方で、そこまでしてKotlinにする必要があるのかと思ってしまう事も事実です。私の場合、Kotlinをやらない理由の一つが、似たような言語を別の環境で使うと、余計に混乱するので、サーバサイドのサービス開発ならJava、Web画面なら、PHPとJavaScript、アプリ開発ならFlutter見たいに使い分けていて、あえて言語が似ていない事を優先しています。
これ以外は、どうしてもその言語だと出来ない、もしくは、非常に高度になってしまうという場合に限り、他の言語を選択します。
そういう意味からすれば、Javaのままでいいかなと思いました。では、一体誰がJavaではなく、Kotlinを選択した方がいいかと言えば、画面系開発、つまりフロントエンド開発者がどうしてもAndroidネイティブの必要性が出てしまったときに選択するなら、Javaではなく、Kotlinの方がいいのかなと思います。
読み込み中