今日も微速転進

ここではないどこかへ

書評:『はじめてのAndroidプログラミング 改訂版』


スポンサーリンク

買ってから随分経ってしまった&後半かなり読み飛ばしましたがレビューしておきます。

概要および特徴

はじめてのAndroidプログラミング 改訂版

はじめてのAndroidプログラミング 改訂版

SBクリエイティブ:はじめてのAndroidプログラミング 改訂版

対象読者はJavaの知識のあるAndroidアプリ開発の未経験者。

この本の特徴を一言で言うと、一言で言うと、チュートリアル兼サンプルコード集。入門書と言いつつ大胆に割り切って解説する内容を取捨選択している。

Android アプリ開発について固有の概念は丁寧に説明しているけど、Javaの説明はしていないし、あまり本質的でない部分は端折っている。

使用しているメソッドの引数と戻り値は説明している一方で、アプリ内で使用しているアルゴリズムについても端折ったり、部分的に解説を省略している。

人によっては不親切に聞こえるかもしれないけど、想定読者にJavaの知識を求めている時点でこう言う割り切りはありだと思う。

いい本なのは確かだが、絶賛するほどでもない。しかし発売時期の観点からいうと、現時点ではベストではないかと思います。

後述するようにちょっと詰めが甘いのと、無難でいまいちワクワク感のようなものがない。優等生的な感じの本。

感想

無難にまとまりすぎてちょっと退屈。説明が悪いとかではなくて、Android Studioのレイアウトエディタのおかげなんだけど。当たり障りがないと言うか、なんでもそつ無くこなす優等生みたいな感じ。著者の個性をあまり感じない。

GUI部品仕込んで、イベントリスナー仕込んで、メソッドをオーバーライドして……。

スマートフォンの華というか、最大の特徴たるカメラ、GPS、ネットワーク通信のうち、一つも取り上げていない。加速度センサーを使ったサンプルはあるけど。

iOSで似たようなことをやっているので、あまり新鮮さがない印象。

気になった点

全体に詰めが甘い印象。

文章による手順の説明が中途半端な箇所がある。そのため、図の中に記載されている注意書きを見落とすとうまくいかないケースがあるので注意深く読み進める必要がある。

説明の順序などいくつか齟齬がある。

p.12で「前述のように本書では〜」と記載があるが、開発対象のAndroidのバージョンに言及しているのはp.23。

p.49 でオートコネクトの説明なしにアイコンの状態を確認するよう指示している*1。唐突すぎて何のための作業なのかわからないのでは。
機能が有効な状態と無効な状態のアイコンの画像を掲載するとわかりやすいと思う。

「詳細は後で説明します(ページ数)」の1行があるだけで断然違うはず。


詰めが甘いというか、整合性の点でiOS向けの本に劣る印象。iOSかJavaプログラミング経験者なら大丈夫なのか。

無名クラスとか諸々

もっと有り難みがわかるように、説明の順序を工夫してもよかったのでは。面倒なやり方を提示してから楽な方法を提示するとか。

mac環境向けの注意

「Macでは」云々は「macOSでは」の方が良かったのではないかな。あと単純にWindows環境におけるCtrlキーとmacOSのCommadキーは必ずしも一対一に対応しない。

macOS向けの説明が入っているのは評価するけど、ちゃんと実際の環境でテストして書いて欲しいところ。

キー入力補完

入力補完のショートカットキーがOS側と被っているので修正する。Ctrl+Spaceは普通に英数とカナの切り替えキーなので本と同じような操作は不可能。

軒並みバッティングしているので[Shift+Space]にしておいた。

MacでAndroidStudioのコード補完ができるようにする

Android Studio における複数選択

macOS環境ではCtrlでは無くShiftまたはCommandキー。例えばp.193など。WindowsでもShiftキーによる複数選択は可能なんじゃないだろうか。

項目のコピー

p.104にFinder からAndroid Studioへの画像フォルダのコピーについて、「(Ctrlキーの代わりに)Commadキーを押しながらドラッグしろ」という指示があるが、これは当然うまくいかない。

macOSではCommadキー+ドラッグはファイルやフォルダなどの項目の移動。

このページと同じ操作をしたいならOption+ドラッグでファイルをコピー。

Mac のキーボードショートカット - Apple サポート

Realm関連

Realmを使う箇所で、findAll()の結果を変数(コレクション)に格納してからわざわざfirtst()メソッドを使って最初の要素を取得している(例えばp.215とか)。findFirst()という一発でやってくれるメソッドがあるし、p.219では使用しているんだけど。

細かいミスなど

p.191 で"Superclass"とすべきとろを"Subclass"と表記している(p.189 では間違えていないのに……)。

いやまあどうでもいいと言うか、スクリーンショットを見ればわかるけど。

まとめ

導入部分はちょっとちぐはぐな印象。Javaの基礎知識があって、他の言語のプログラミング経験がある人には悪くない。

前述の通り非本質的な部分の説明は省略されているので、細かいことが気になる方はあまり読後感がよくないかもしれない。

リファレンスとして使うのは無理があるけど、丁寧なチュートリアル付きのサンプルコード集とみなすとかなりいいのでは?

本命はKotlin本なのでとりあえずここまで。

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

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

Kotlinイン・アクション

Kotlinイン・アクション

  • 作者: Dmitry Jemerov,Svetlana Isakova,長澤太郎,藤原聖,山本純平,yy_yank
  • 出版社/メーカー: マイナビ出版
  • 発売日: 2017/10/31
  • メディア: 単行本(ソフトカバー)
  • この商品を含むブログ (1件) を見る

*1:初期状態だとOFFのような

広告