今回はオライリーさんから最近発売された「初めてのAndroid」についての書評です。
概要
- 系統…狩猟系と農耕系のどっちって言われたら、おいら的には農耕系かな
- 著者は…Ed Burnetteさん。長尾 高弘さん翻訳。日本Androidの会監訳。
- ページ数は…260ページ
- 価格は…2310円(税込み)
- 発売日は…2009年5月18日
- 対応SDKは…公式には書いてないけどAndroid SDK 1.1かな。一部は1.5でも動くことが確認済み
目次
- 第1部 Android入門
-
- 第1章 クイックスタート
- 第2章 基本コンセプト
- 第2部 Androidの基礎
-
- 第3章 ユーザインタフェースのデザイン
- 第4章 2Dグラフィックスを探る
- 第5章 マルチメディア
- 第6章 ローカルデータの保存
- 第3部 基礎を超えて
-
- 第7章 世界との接続
- 第8章 位置情報の利用とセンサー
- 第9章 SQLを使いこなす
- 第10章 OpenGLによる3Dグラフィックス
実際どうよ?
- オライリー・クオリティ。かつ、内容を考えると安い。
- この本は、リファレンス的にAndroidそのものを解説しようとした本ではない。他の言語やフレームワークなどである程度経験がある方向けに、Androidでの考え方、もしくはAndroid独自の機能をエッセンスとして抽出し、取りまとめたものである。
- よって、リファレンスとしては使えない。それを狙ったモノではない。ただし、一度読めば考え方は大体理解できる。
- 第1部では開発環境やインテント・サービスといった事について一通り説明があるが、詳しく説明すると言うより、用語解説程度と思った方がよいかも知れない。ページ数的に、第1部がこの本の10%程度に当たる。
- 第2部では、数独を題材に2Dゲームの開発の流れを追っていく。数独自体はアルゴリズムなどについては深く取り上げない。作りたいモノが決まっていて、それをAndroidで構築するとしたら、こういう部材を使ってこういう風な考え方で組み立てていく、といったAndroidの特徴に着目した作りとなっている。全体の40%程度が第2部に割かれている。
- 第3部では、Androidの独自の機能を取り上げる。WebKit経由でJavaScriptからJavaのコードを呼び出す方法、Android内蔵の各種センサーを扱う方法、SQLiteの使い方、OpenGLを使った3Dの扱い方など、他のAndroid本では扱わなかった濃い所について、最初の一歩を踏み出すのに十分な情報を提供している。全体の40%程度が第3部に割かれている。
- 個人的には第10章が非常に参考になった。第10章ではお題としてOpenGLを使って立方体にテクスチャを貼ってブレンドモードで透視するまでを扱っている。個人的にはOpenGLのリファレンスなどでアーキテクチャ非依存の情報や考え方は一通り理解できたものの、それが実際にはどれを使ってどういう順序で実行する必要があるのかといった、流れが理解できていなかった。Android SDK付属のサンプルソースでOpenGLを使ったゲームのソースを読むことは出来たけれど、ソースから考え方を読み解くほど気合いが入っているわけでもなかった。この本では、Androidとしてはどういったものが用意されていて、どういったものは自分で用意する必要があるけど、大体こんな感じでいいんじゃないか、といった提案(いわゆる王道パターン)があり、SurfaceやSurfaceHolderってこんな概念とか、各処理の過程ではこんな事をしてますみたいな、ソースの解説がついている。他の本ではOpenGLを扱った項目が無く、OpenGLを使ったプログラミングの前提となる考え方を理解するために、非常に参考になった。
- 独自スレッドからTextViewなどのGUIスレッド管理下オブジェクトを操作するときには、Handler.post()を使ってGUIスレッド側イベントキューに積む必要があるなど、フレームワークとしての癖についても解説があったのが良かった。
- 逆に、Androidのプログラミングには、マルチスレッドプログラミングの知識がある程度必要になると思った。特にゲームやネットに接続するときには必須かと。
- 第4部の付録としてJavaSEとAndroidのAPIの違いがまとめられているが、これが結構便利だったりした。既存のJava用ライブラリを使いたいとき参考になるかも。
どんな人にオススメ?
- Androidについてある程度知っているけど、ちょっと濃い目の部分についてのキッカケが欲しい方
- 2Dゲームを作りたいと思っている方
- 他にリファレンス本を持っている方
- OpenGLを使ったアプリを作りたいと思っている方














