『作って学ぶAndroidアプリ開発[Kotlin対応] 』を読んでAndroid入門した

自分のレベル

Gradle・Android・Kotlinなにもわからん業務歴2年のPHPer。

本を読む前にUdemyでKotlinの基本について学びました。
www.udemy.com 

本の感想

作って学ぶAndroidアプリ開発[Kotlin対応]

作って学ぶAndroidアプリ開発[Kotlin対応]

  • 作者:有山 圭二
  • 発売日: 2020/04/17
  • メディア: 単行本(ソフトカバー)

 Android + Kotlinのアプリ開発系の技術書で一番新しくて、ちょうど出版されたばかりなので読むことにしました。技術書って鮮度があるので時間がたつほど動かなくなる可能性も高くなるし、変な部分で詰まって時間浪費しないようにこういう変化が速い技術の本は早めに買うことをおすすめします。

 Mastodonのクライアントアプリを開発しながら学んでいく内容の本でRepositoryパターン、MVVMアーキテクチャを使用したり、Credentialの扱いなど「実際の業務ではどのように作るべきなんだ?」という疑問に答えてくれている実践的な内容がよかったです。またGlide・Moshi・OkHttpなどのライブラリも使用するのでAndroidアプリ開発で有名なライブラリ群も知れたのでよかった。

 Amazonのレビュー評価が低めですが、Android開発未経験の自分にとっては難易度が高かったです。ライブラリを多用したり発展的な内容が多いのでAndroid開発の経験をもつ人がKotlinで開発したいとか、少なくとも2~3年他の言語で開発経験のある人が最低ラインのように感じました。

 Android開発って環境構築が鬼畜なので本と同じ通りにやってもおそらく動かない人もいるし、自分もGradleのビルドでちょこちょこエラーが出たので各々の環境で発生したエラーを自力で解決する力が求められます。

 Recyclerview、コルーチン、データバインディングアノテーションを多用してきたあたりでよくわからないなと思いました(汗。

 自分は細かい部分がよくわからなくても「こういうものなんだな」と思って先に進めていくほうなのであまり気にならなかったけど、ちゃんと理解してから進めていきたい人はめっちゃ時間かかると思います。

Android開発の感想

 2020年にもなってAndroid開発に入門した感想としては一言で言うとムズいです。 

 根本的にAndroidの知識が欠けているというのもあるが、AndroidManifest・レイアウトファイル・ViewModel・Fragmentなどの複数のファイルが連携して動くので、いまいちどう連関して動いているのか理解できず余計難しく感じました。

 PHPを始めたときもそうだけど最初はドキュメントを読んでもどう使えばいいのかわからないので、自分のやりたいことをググってコピー&ペーストして少しずつ動かしながらこう動くのかと試行錯誤して開発している現状です。

 IntelliJ IDEAだとJavaのコードを自動でKotlinに変換してくれるのでまじでありがたい。

 あとドキュメントのガイドは日本語化されているのでとりあえず隅々まで読むつもりです。
developer.android.com

 

Android開発のスキルを身に着けたい

 Android開発が予想以上に難しかったのでAndroidのスキル身につけたら他の人と差別化できるかなと感じました。

 もし業務でAndroidのプロジェクトを引き継いだりした場合、KotlinだけではなくJavaの書き方やAndroidのバージョンごとの違いも知っている必要があり最新の変化に追従しながら過去の知識もキャッチアップするのが大変そうではあります。

 モバイルアプリはクロスプラットフォーム開発ならReact Native、Flutter、単体で開発するならiOSはSwift、AndroidはKotlinを使用するという流れだと認識しています。過去にはXamarin、Cordova、Titanium Mobileなどがあったものの淘汰された印象で、どの技術が今後メインストリームになるのか正直わからないです。

 今は業務でCordovaを使用していて凝ったことをやろうとするとネイティブ層に手を入れるため結局AndroidiOSの両方の知識が求められる(汗。

 そういう理由もあって(MaciPhoneを持ってないからiOSの開発ができないということもありますが)流行りに左右されるようなReact Native、Flutterよりもネイティブに近い+サーバサイドもいけるKotlinを選びました。

 とりあえず作りたいアプリの構想はあるので、完成させてPlayストアまで出すのが今の目標といったところです。