Android 入門本 の 私的レビュー
すこし事情があって、自分が購入し、参考にしている Android 関連書籍についてレビューを書こうと思います。
まず、前提としてどのような視点から見ているのかを明確にするために、自分自身のJavaのスキルと経験をカミングアウトしておきます。
Java 関連 保有資格(今は、OCJ-P なんですね。当たり前ですが)
- SJC-P 1.4 (Sun Certified Programmer For The Java 2 Platform 1.4)
- SJC-P 5.0 (Sun Certified Programmer For The Java 2 Platform 5.0)
- SCWCD 1.4 (Sun Certified Web Component Developer For The Java 2 Enterprise Edition 1.4)
Java 関連 業務経験(10年程度)
10年ほど前に、よくわからずにEJBを使ったシステムに携わったのち、Swingを利用したC/Sシステムに少々絡んで、Strutsを使ったシステム、Java のバッチ、J2EE のシステム、と基本的には枯れたServer 側での仕事をしています(ました)。
ということで、Java に関して、まぁ教科書レベルの一通りの知識はあるが、クライアントJava プログラミング(Swing とか、並行性とか) はよくわからなくて、J2EE の Servlet、JSP の基本的知識と、古い フレームワークの経験がある程度の知識の人間が、Android に興味をもって勉強を始めようという立ち位置からのレビューです。
※★印は、Android 入門書籍として、自分に役に立った度です。
Google Androidアプリケーション開発入門 画面作成からデバイス制御まで――基本機能の全容
★★★★★
最初の20ページ程を使って、Android の概要、開発機と実行機が異なるクロス開発とはどういうものか、JDK、Eclipseの導入、Android SDKのインストール方法、エミュレーターの使用方法などが端的に説明されています。
それぞれ、詳細な手順が記されているわけではないです。しかし、書籍は Webと違って紙数が限られているので、まず、「概念」の理解に重点を置き、実際の手順は Web を参照すべし、という本書の方式は自分には合います。
開発についての章にも、その思想は現れています。
アクティビティ、インテント、リソース、ビュー、レイアウト、サービス、ノーティフィケーション、コンテンツブロバイダ・・・ と、Android 開発に登場する「概念」がわかりやすく説明されているため、全体像や、構成する要素を概観するには良いテキストだと思います。
詳細はリファレンスなりを参照すればいいわけですから、入門書に求められるのは、まさに新しい「概念」をわかりやすく説明することにあると考えると、その責は果たしています。
また、付随するサンプルソースも、基本的に動くサンプルソースなのですが、本質的ではない部分は簡潔に記述されおり、なるべく本質がわかりやすくなるように考えられていると思います。
サンプルは、センサーの取り扱いや、Google Maps の利用、位置情報、バーコードリーダー、カメラなど、携帯端末ならではのトピックも充実しています。
まぁ、上記で述べた本書の良い点は、逆に言うと、Java も Android も初めてのような初心者のためには説明が足りなくよくわからないし、具体的な実装方法のTipsや、そのまま動く教材のようなサンプルが欲しいような人には物足りない、といったことになるかもしれませんが、それは致し方ないでしょう。逆に自分はそこまで手取足取りではない方がうれしい。
全体として、Anroid 開発の始め方から、アプリケーションの公開まで、また、センサーやGoogle Maps、バーコードリーダーなどのキャッチーなサンプルコードを含みつつ、Android 特有の「概念」をわかりやすく網羅的に説明した良書 だと思います。
Android2.1プログラミングバイブル
★★★★☆
上記、Google Androidアプリケーション開発入門 の次に購入しました。なので、Anroid 開発の概要については、ある程度理解した上で読んでいます。
プログラミングバイブルと銘打つだけあって、かなりプログラミングにフォーカスした内容になっています。
Android の ユーザーインターフェースは、XML にて定義することができ、非常に便利なのですが、もちろん、Swing や AWT のように、Java のソースコードで構築することもできます。
で、本書は基本的にプログラミングにフォーカスしているからか、XMLによるレイアウト設定は使わずに、プログラミングによりユーザーインターフェースを構築するスタイルをとっています。
これは、これで、プログラムがどう動くのかを理解するには非常に良いのでしょうが、サンプルコードがすこし「うるさく」なる気もしないではないです。
要するに、自分は、欲しい部分のサンプルコードに対して、GUI の構築部分のソースコードなどは雑音に感じてしまう。
ただ、本書のサンプルアプリケーションを「そのまま」実装して教材として試してみたい場合、には必要なコードだと思います。そういう意味では、親切な設計になっています。
一応XMLレイアウトについても、数ページ触れられてはいますが、
「本書のサンプルプログラムでは、ユーザーインターフェースのレイアウトをJava言語で作成していますが、レイアウト情報をXMLで記述した『レイアウトファイル』をリソースとして利用することもできます。」
とのことなので、著者は、基本的にGUIをプログラミングするスタイルなのでしょう。
自分としては、XMLでレイアウトできるところはXMLを利用したいですが、コードでの書き方も知っておくべきではあると思うので、そういう意味では良いと思います。ただ、この本のみを参照し、GUIの構築はこういうスタイルでやるべきだという先入観を持ってしまうのはどうかなと思うのは気にしすぎでしょうか。
内容は濃いと思います。また、API のリファレンスの抜粋が記載されているので、基本的な利用法であれば、いちいち、オンラインのリファレンスを参照する必要がない作りになっています。
あと、ところどころに、Java の文法のコラムがあるのですが、
「drawText() メソッドに渡している『”Hello World!”』は文字列です。Java 言語では『”』で囲んだ文字列がString型の文字列オブジェクトとなります。」
・・・ うーん。どのレベルの読者を想定しているのか微妙です。
全体として、端末の紹介から、SDKのAPIリファレンス、Java の文法コラムまで 総花的な内容をねらいつつも、親切な記述にはなっています。
サンプルコードのスタイル等に、著者の趣味が色濃くでている気がするのですが、これは好き嫌いですかね。
内容は豊富ですし、説明も丁寧なので、役に立つおもしろい本だと思います。
Android Hacks ―プロが教えるテクニック & ツール
★★★☆☆
この本は、確かに、テクニック & ツール ですね。
ただし、それぞれの テクニック について、懇切丁寧に説明したり、実際に動くサンプルコードが提供されることはありません。基本、それぞれについて、数ページを割いて、基本的な概念説明、基本的なコード、一歩進んだHACKの仕方という構成となっています。
紙数の都合もあるでしょうが、あえてすべてを提示しないことで、足りない部分を埋めるエクササイズを読者に強いているのではないかと思える節もあります。
手取足取りの記述を好む方は、いらだつかもしれませんが、個人的には好感が持てるスタイルです。
どれも、読み物として(?)おもしろく読めますし、実際に何か機能を実現使用としたときに、どうしていいかのとっかかりを調べるのには良いと思います。
また、実機デバッグの仕方や、ADB や TraceView の利用法など、デバッグ手法についての記述があるのは、実際に開発を行う上で非常に役立つかと思います。
NDK(ネイティブコード環境)の記述、JNIの使い方、Android のソースコードをコンパイルして実機に焼く、など Hacks の面目躍如てきな項目もあるのですが、自分自身そこまで行けてないので、読み物として読むにとどまっています。
マニアックなおもしろい本だと思います。が、なぜか、全体を通して焦点が定まらない印象を受けました。テクニック & ツール ですし、一章が独立完結していて、どこからでも読める形式になっているので、それは、当然なのですけれど、他のO’Reilly 本にある、凝縮感が少し足りないというか・・・ まぁ贅沢な希望です。
Android Application Development
★★★★☆
最後に、今、Android Market を確認したら、なくなってしまって(?)いましたが、Android Market にて、O’Reilly の本アプリが、あったので購入しました。
英語の本ですし、まだ読了していませんが、サンプルコードも充実しており、役に立ちます。
何よりすばらしいのは、価格が破格の安さです。500円程度。
ブックマークをつけることができたり、目次から各章へジャンプできたりと、情報を探すための機能も充実しています。
どうせ、込み入った情報を得ようとすると、英語のサイトにたどりつかざるを得ないので原書であることは英語の勉強と割り切るとして、価格を考えれば非常にお買い得だと思います。
- 初歩からわかるAndroid最新プログラミング
- Google Androidプログラミング入門
- Android2.1プログラミングバイブル
- Android Hacks
- 入門 Android 2 プログラミング (Programmer’s SELECTION)
- Google Androidアプリケーション開発入門 画面作成からデバイス制御まで――基本機能の全容
- Androidアプリケーション技術者認定試験 ベーシック対策実践問題集
- AndroidアプリUIデザイン&プログラミング アイデア固めからユーザーフィードバック分析まで
- Androidアプリ事典512
- 入門Google Androidプログラミング
と、入門したて(?)の感想は上記な感じだったんですが、ある程度慣れてきて、一番参照しているのは、
Android Hacks ―プロが教えるテクニック & ツール
ですね。
最初理解するには教科書が必要だが、概要を理解したら一番利用するのは辞書という感じでしょうか。