『はじめてのAndroidプログラミング』の読了後に2冊目として『基本からしっかり身につくAndroidアプリ開発入門』 (以下、本書) を購入しました。
購入理由は Android 端末のストレージ操作とカメラ撮影を用いたアプリ開発について、短時間で効率的に学習したかったためです。
時間をいくらでも費やせるのであれば、自らソースコードを読み込んで学習しても良いのですが、時間を掛けずに体系的に知識を会得するには書籍を購入して自分で手を動かしながら検証した方が確実です。
基本からしっかり身につくAndroidアプリ開発入門 Android Studio 2.x対応 プロが本気で教えるアプリ作りの基本「技」 (ヤフー黒帯シリーズ)
本書はまさに2冊目に読む参考書として適当な内容で、ある程度のアプリ開発経験を持っていた方が内容が頭に入りやすいです。
というのも第1章でアプリ開発環境に触れた後は、アプリのコンポーネントとそのライフサイクル、リソースやパーミッションの話が始まります。
少しでもアプリ開発の経験があれば、なるほどと感心するところですが、前提知識を持たずに読むと何について解説しているのか具体的なイメージが思い浮かばずに混乱するかもしれません。
さらに付け加えると Java 言語の説明はありませんので、ソースコードを読み、何をしているのか理解できることが前提となります。
とりあえず動くアプリを開発したいという目的であれば、『はじめてのAndroidプログラミング 改訂版』を本書の先に読み、コンポーネントの名称や役割をアプリを動かしながら覚えた方が早いです。
前提知識があった方が望ましい反面、本書ではどの処理で何をすべきであり、何を避けるべきであるかが理由とともに述べられているところが本書の長所です。
具体的な開発経験からくる的確な助言が、処々に述べられており、この説明部分だけでも読むだけの価値があります。
短所はプログラムのソースコードが一部おかしかったり、( 紙面が足りなかったのか ) 本来は分けて説明すべき項目を一つの章にまとめているので、書籍やプログラムの構成が煩雑で分かりにくい部分が存在することです。
また出版時期の影響から現行の AndroidStudio Version 2.3 と ConstraintLayout に対応していません。
ソースコードがおかしい部分の一例としては、Chapter 3 の MainActivity.java クラス (pp.137) が挙げられます。
本書では以下のように View.OnClickListener をインプリメントしているのですが、これでは public void onTextChanged などの一部のメソッドをオーバーライドすることはできません。
1 |
public class MainActivity extends AppCompatActivity implements View.OnClickListener |
仕方がないので、いつものごとくソースコードの内容を勝手に書き換えて対応します。
1 |
public class MainActivity extends AppCompatActivity implements TextWatcher, View.OnClickListener |
これが正解かどうかは分かりませんが、本書の説明どうりにアプリが起動するようになるのであれば、ソースコードを改変したところで大きな問題はないというのが私の方針です。
余談ですが、ソースコードの書き方には冗長に見える場面があったり (pp. 208)
1 2 3 4 5 |
for(String foo : bar){ if(!check()){ throw new Exception(); } } |
と思いきや、その直後のページ (pp. 209) では余分な文字を省略したりという具合に書き方が安定しません。
1 2 |
if(!check()) throw new Exception(); |
もしかしたら、それぞれ別の人が書いたか、別の時期に書かれたソースコードなのではと思えてきます。
どうでも良い余談は置いておくとして、書籍やプログラムの構成が煩雑で分かりにくくなっていることが顕著なのは Chapter 4 です。
この章ではファイルの入出力とデータベースの利用とコンテントプロバイダの利用を行うクラスを実装しているのですが、どこまでが説明のための実装例で、どこまでがアプリを動かすための要素として必要なクラスなのかが分からずに混乱します。
見方を変えれば、具体的な実装例がいくつも提示されていてありがたいとも言えるのですが、改訂版では分かりやすく整理して頂けると私のような読者は助かります。
当然ながら本書一冊で Android 開発に求められる知識を網羅しているわけではありませんが、通読したことにより具体的な実装方法のみに留まらず、気を配るべき事項や実装中に注意すべき点などを学習することができたことは大きな収穫でした。
本書は Android アプリ開発の入門書を読み終えて、少しステップアップしたい私のような読者には役立つ書籍と言えそうです。