試験公開中

このエントリーをはてなブックマークに追加

Effective Android

達人出版会

3,040円+税

Androidに携わるエンジニア&デザイナのノウハウが詰まったプログラミング解説書です。開発環境、デザインガイドライン、UIパターン、プッシュ通知など注目のトピックをぎっしりと詰め込んでいます。

関連サイト

著者による関連ページが公開されています。

内容紹介

Androidの機能・端末バリエーションは年々巨大化しています。おぼろげな理解でも試行錯誤によってある程度のことが実現出来ますが、安定動作するアプリ、使っていて気持ちの良いアプリに仕上げる上では、依然きちんと理解する必要のあることが多く存在します。

本書は、Androidアプリ開発へ携わる著者総勢20名によるデザイン/開発上のポイント集です。

日々の開発中にぶつかった問題を掘り下げたもの、Androidのソースコードを読み解くことで得られたもの、多くの端末サイズ/解像度へと対応する中で得られたもの、Googleサービス群と連携する中で得られたものなど、日々のアプリ開発を一歩先へと進めるヒントに満ちていることでしょう。

紙書籍版について

※本書を元にインプレスジャパン社から紙の書籍が発売になりました。こちらもぜひお買い求めください。

Effective Android
Effective Android
posted with amazlet at 14.02.03
TechBooster 小太刀御禄 出村成和 重田大助 西岡靖代 宮川大輔 柏本和俊 あんざいゆき 八木俊広 木村尭海 小林慎治 有山圭二 中西良明 わかめ まさひろ 新井祐一 桝井草介 久郷達也 寺園聖文 shige0501 山下智樹 前田章博 秋葉ちひろ 末広尚義 中澤慧 日高正博 塚田翔也 井形圭介 中川幸哉 山崎誠 山下武志 なまそで 橋爪香織 さとうかずのり l_b__
インプレスジャパン
売り上げランキング: 6,283

書誌情報

  • 著者: TechBooster
  • 発行日:
  • 最終更新日: 2014-03-21
  • バージョン: 3.1.0
  • ページ数: 633ページ(PDF版換算)
  • 対応フォーマット: PDF, EPUB
  • 出版社: 達人出版会

対象読者

Androidに携わる総てのエンジニア・デザイナの方々

著者について

TechBooster

TechBoosterはAndroidをはじめとしたモバイルのための技術サイト(http://techbooster.org/)です。
オープンソースへの貢献や社会還元を目的にサイトでモバイル技術を解説してます。

@miroc007(小太刀御禄)

デザイナー&イラストレーター。webサービスのデザインから、ゲームイラスト、web小説の挿絵を担当し、たまにデザインの講師もやっている。歴史好き。島津斉彬・土井利勝が好き。ポートフォリオサイト⇒http://kodachi369.net/

@tommmmy(秋葉ちひろ)

電子工作とプログラムを勉強中のデザイナー。XMLレイアウトをデザイナーに広めたい!

@Kazzz

永遠の企業プログラマです。
最近はあまりAndroid触れてません。
AngularJS楽しいです。

@kassy_kz

業務では組み込み系のソフトウェア開発に従事。
Androidの力を借り、脱残念な一人前のエンジニアを目指して日々奮闘中です。

@yanzm(あんざいゆき)

やんざむ(@yanzm)。わかめの会社に涼みに行ったら原稿を書くことになっていたぜ。
Androidの技術ネタをブログに書いてるよ「Y.A.M の雑記帳」http://y-anz-m.blogspot.com/
「Android Layout Cookbook」や「Android UI Cookbook」という本書きました。
「Libraroid」や「Suica Reader」などなどアプリを公開してます。 https://play.google.com/store/apps/developer?id=yanzm

@muchiki0226

ロボットをこよなく愛するRoboCuper。ロボット以外にもAndroidやWindowsPhone7のアプリ開発をしています。
書籍「プロの力が身につく Androidプログラミングの教科書」の執筆や、ET-WEST2013にて「失敗しない!Androidアプリ開発最前線!」で発表を行っている。

@kobashinG

ノリとテンションで開発するエンジニア。縁の下の力持ちを目指し日々奮闘中。
Android端末開発なお仕事に従事してます。
共著に「プロの力が身につく Androidプログラミングの教科書」など。

@keiji_ariyama(有山圭二)

めがねをかけるんだ

@vvakame

TypeScriptとAngularJSはいいぞぅ!アンド郎!

@zaki50 (ざきごーまる)

株式会社uPhyca(ウフィカ) CTO。Android に関する開発を幅広く手がけている。最近は Gradle/AndroidStudio での開発が楽しい。

@sys1yagi

Androidアプリケーションを主に開発してます。最近ではFirefox OSも少し。サーバサイドはNode.jsで何か作る事が多いです。

@u1aryz (新井祐一)

体の90%以上が音楽でできています。聞くのも演るのも好きです。

@esmasui(桝井草介)

株式会社uPhyca所属(http://www.uphyca.com/)

GitHub: https://github.com/esmasui
ブログ: http://d.hatena.ne.jp/esmasui

@yokmama(夜子まま)

最近モンハン(3rd)やってます。誰か一緒に遊びません?

@shige0501

日本Androidの会 中国支部長 コミュニティ運営委員。 Androidとは関係ないことをつぶやいてると思います。多分。雑誌など寄稿してるので、宜しければ見てくださいませ。

@tomorrowkey (山下智樹)

株式会社ブリリアントサービス所属。Androbookを作るお手伝いをしました。最近あまりAndroidやってませんでした。NFCを少し学びました。

@androidsola

Android と FirefoxOS のカスタムROM( JCROM と Boot to JCROM )を開発してます。
https://sites.google.com/site/jcromproject/
https://sites.google.com/site/jcromfirefox/

@lychee(西岡靖代)

頓智ドット(株)という会社で働いているゆるふわエンジニア。仕事の合間に記事書きとアプリ作りの内職をやって修行を積んでいる。最近AndroidよりGoが楽しいけど、子育てで時間が取れないのが目下の悩み。

@95kugo

フリーランスなAndroid開発者。受託開発をしながら、開発者名KUGOという名でいくつかGoogle Playにアプリを公開しています。
https://play.google.com/store/apps/developer?id=KUGO
最近は、minSdkVersion="3" targetSdkVersion="15"のアプリをminSdkVersion="3" targetSdkVersion="18"にしようか、minSdkVersion="4" targetSdkVersion="18"にしようか、minSdkVersion="7" targetSdkVersion="18"にしようか悩んでいます。

@bols_blue

ソフトが本業になりました。オライリーのandroid hacksの著者です。日々鍛錬。android デベロッパーズクラブ android テスト部にいます。PHPの著書もあったりするのですが今やいじれる程度のスキルです

@mhidaka

Androidと組込。ReVIEWがあつい。CとJavaとあとなんだっけが友達の組込エンジニア。techbooster.orgやってます。firefox OSとかGlassとかもおもしろいですよね。いくつか本を書いてます: http://booklog.jp/users/mhidaka

@kassy_kz

業務では組み込み系のソフトウェア開発に従事。
Androidの力を借り、脱残念な一人前のエンジニアを目指して日々奮闘中です。

@gabu

ニーソプログラマ

@kei_i_t

Androidアプリを開発中。iPadアプリ開発も前職でやってました。HAL2009年卒。26才、妻一人、双子一組、ただのイカです。
現在は主にiOSやってます(汗

@Nkzn

新潟系Androider。身体はラーメンでできている。血潮は地ビールで心は日本酒。

@chun_ryo (中西 良明)

ブライテクノ株式会社 代表取締役。Android/iOS 向けのアプリやウェブアプリの開発をやってます。過去には、某セキュリティ企業で携帯電話・スマートフォン向けのアンチウィルスソフト開発に関わったり、某メーカーでAndroid端末開発に関わったりしていました。

@muo_jp (なかざわ けい)

KLab株式会社、Kラボラトリー所属。気付いたらAndroidと関わり始めて5年半、仕事ではC#とかC++とか書いてます。最近はPNaCl楽しい感じしてる。

@eaglesakura

漢なら!
SurfaceView一枚で!!
すべてのUIを描画してみせろ!!

「初めてのOpenGL ES」「コピペではじめるAndroidゲームプログラミング」って本を書いたり、日経ソフトウェアで記事を書いたり、ShakeDroidってアプリを開発したり。このごろは主にOpenGL ES系なお仕事。
株式会社トップゲート所属 eaglesakura.hatenablog.com

なまそで

仮面ライダーウィザードが好き。あのでっかい指輪のダサさにあの世界自体が絶望しないのをいつも不思議に思ってる。

@chun_ryo (中西 良明)

ブライテクノ株式会社 代表取締役。Android/iOS 向けのアプリやウェブアプリの開発をやってます。過去には、某セキュリティ企業で携帯電話・スマートフォン向けのアンチウィルスソフト開発に関わったり、某メーカーでAndroid端末開発に関わったりしていました。

@muo_jp (なかざわ けい)

KLab株式会社、Kラボラトリー所属。気付いたらAndroidと関わり始めて5年半、仕事ではC#とかC++とか書いてます。最近はPNaCl楽しい感じしてる。

@cat_kaotaro

株式会社チェリービット代表。Androidは上から下まで幅広く。auコンテンツアワード2011 Androidアプリ部門優秀賞受賞したこともある。最近は大人の技術研修から子ども向けワークショップまでいろんなことに挑戦中。書籍執筆「図解 Androidプラットフォーム開発入門」や http://goo.gl/xtEvRE など。

@l_b__

横浜在住Gadget&Android好き、星を見る人、よく食べよく呑む、自転車通勤RaleighRF7乗り、Enigma&DeepForest好き、歴史(日本・欧州・中国)小説&SF好き、立ち技格闘技好き、横浜PF部

@checkela (出村 成和)

低レイヤーの住人。JavaよりもC/C++を書くことが多いAndroider。最近は「黄色とげとげ」と呼ばれる事が多い気がする。書籍の出版や雑誌への寄稿もたまに。著書に「ARMで学ぶアセンブリ言語入門」「Android NDKネイティブプログラミング」など。

@shigepon7

暑がり。早口。某端末のLinux周り。イカ大好き。飛行機離陸前に爆睡可能。定年退職後の夢は居酒屋しげぽんを開く事とサーバー管理おじいちゃんになる事。

@amedama(あめ玉)

林○めぐみのラジオ番組に投稿して以来のハンドルネームなんです。

目次

はじめに

  • 本書の内容について
  • TechBoosterとは
  • お問い合わせ先

第1部 User Interface

第1章 理論で分かる、デザインのファーストステップ
  • 1.1 デザインとは相手を考える事
  • 1.2 揃える事で生まれる画面の統一感
  • 1.3 メニューの位置を考える
  • 1.4 カラーの選び方
  • 1.5 アクセントカラー(さし色)の選び方
  • 1.6 カラーの微調整
  • 1.7 デザインにカラーを入れていく
  • 1.8 無彩色を使う
  • 1.9 文字色の決め方
  • 1.10 最後に。デザインにチャレンジするという事
第2章 エンジニアも幸せになるようにAndroidアプリをデザインする
  • 2.1 Introduction
  • 2.2 作成するときの画面サイズ
  • 2.3 よく使うサイズ群
  • 2.4 よく使うフォントサイズ
  • 2.5 よく使うフォント
  • 2.6 よく使うラインの太さ
  • 2.7 これらのサイズの秘密
  • 2.8 最後にエンジニアの方へ
第3章 Twitter BootstrapでレスポンシブWebデザインを試す
  • 3.1 レスポンシブWebデザインとは?
  • 3.2 Twitter Bootstrapとは?
  • 3.3 実践
  • 3.4 Android上でのTwitter Bootstrap
第4章 引っ張って更新するPullToRefresh UIを使ったListViewを作る
  • 4.1 Twitter公式アプリ等で使われている更新方法
  • 4.2 Gmailアプリ等で使われているパターン
第5章 はやりのカード UI をちゃちゃっと作る
  • 5.1 カード UI に変更するアプリ
  • 5.2 背景色を設定する
  • 5.3 カード UI 用のレイアウトを作る
  • 5.4 カード UI 用に ListView を調整する
第6章 カードUIにアニメーション効果を追加する
  • 6.1 見た目だけでなく、見え方を工夫する
  • 6.2 まとめ
第7章 NavigationDrawerを使ってスライド式のメニューを実装する
  • 7.1 NavigationDrawerの使いどころ
  • 7.2 ナビゲーションドロワーを配置する
  • 7.3 NavigationDrawerをコントロールする

第2部 Environment

第8章 AndroidManifestを活用する
  • 8.1 AndroidManifestとは
  • 8.2 OutOfMemory Errorと戦う最終兵器 - largeHeap
  • 8.3 設定は出来る。ただし…… - allowClearUserData
  • 8.4 より柔軟な容量確保のために - manageSpaceActivity
  • 8.5 テスト用のapkを示す - testOnly
  • 8.6 まとめ
第9章 Eclipseの設定ファイルを科学する
  • 9.1 Eclipseの設定ファイルとは?
  • 9.2 設定ファイルを読み解く
  • 9.3 さらなる高みへ
第10章 apt対応プロジェクトを作る
  • 10.1 準備
  • 10.2 Eclipse編
  • 10.3 Ant編
  • 10.4 Gradle編
  • 10.5 Android Studio 編
  • 10.6 AndroidAnnotations を使ってみる
  • 10.7 ignore 設定
  • 10.8 おわりに
第11章 Code TemplateをADTに追加する
  • 11.1 Code Templateの動作
  • 11.2 Code Templateの仕組み
  • 11.3 Code Templateの構成
  • 11.4 新しいCode Templateを作る
  • 11.5 新しいCode TemplateをADTに追加する
  • 11.6 おわりに
第12章 Gradleを使用してライブラリプロジェクトの依存関係管理を楽にする
  • 12.1 はじめに
  • 12.2 ライブラリの依存関係管理
  • 12.3 AppCompatを使用してみよう
  • 12.4 ライブラリプロジェクトを公開してみよう
  • 12.5 Appendix / Mavenセントラルリポジトリへライブラリを登録するには
  • 12.6 終わりに

第3部 Effective Application

第13章 ContentProviderをアトミック操作する
  • 13.1 アトミック操作ってなに?
  • 13.2 Aliceの$100はどこに消えた?
  • 13.3 アトミック操作を使わない実例
  • 13.4 アトミック操作を使った実例
  • 13.5 applyBatchメソッドをアトミック操作に対応させる
  • 13.6 参考
第14章 SQLiteDatabaseの悪(ワル)を使う
  • 14.1 WALについて
  • 14.2 WALの使い方
  • 14.3 速いのか?
  • 14.4 WALを使うにあたって
第15章 ListViewでLoaderに移行する
  • 15.1 旧バージョンの呪縛を乗り越えろ!
  • 15.2 Loader導入の流れ
  • 15.3 CursorLoaderでブックマークを表示しよう
  • 15.4 おわりに
第16章 簡単にNFCタグにNDEFを書き込む
  • 16.1 NFCとは
  • 16.2 NDEFとは
  • 16.3 AndroidでNFCを実装する
  • 16.4 NDEFレコードを作成する
  • 16.5 NDEF Tools for Androidを使う
  • 16.6 おわりに
第17章 残念なNFCタグに反応するAndroidを作る
  • 17.1 残念なNFCタグの仕様
  • 17.2 残念なNFCタグに反応するアプリを作る
  • 17.3 残念なNFCタグを作る
  • 17.4 Androidを改造する
  • 17.5 まとめ
第18章 SharedPreferencesにJavaオブジェクトを保存する
  • 18.1 JavaオブジェクトをSharedPreferencesに保存するには
  • 18.2 より簡単にJavaオブジェクトを保存するには
  • 18.3 Complex Preferencesを導入する
  • 18.4 Complex Preferencesを使う
  • 18.5 終わりに
第19章 少しの工夫で外部アプリと連携する
  • 19.1 DashClock 対応
  • 19.2 Taskerについて
  • 19.3 Taskerの2つのプラグイン
  • 19.4 Taskerプラグインの実装
第20章 UiAutomationを使ってテストをしてみよう
  • 20.1 Introduction
  • 20.2 テストをしてみよう
  • 20.3 UiAutomationのその他の機能
  • 20.4 終わりに
第21章 UIテストでも失敗しないやり方
  • 21.1 UIテストの失敗を定義する
  • 21.2 テストツール
  • 21.3 顧客とテスト
  • 21.4 UIテストのメンテナンスしやすい構成
  • 21.5 テストを作成するタイミングと作成するテスト
  • 21.6 終わりに

第4部 Use the Library

第22章 Volleyでネットワークプログラミングを学ぶ
  • 22.1 ネットワーク通信の基礎
  • 22.2 Gitリポジトリを取得する
  • 22.3 Volleyを使いこなす
  • 22.4 ネットワークプログラミングを理解する
  • 22.5 パフォーマンスを最適化する
  • 22.6 おわりに
第23章 OpenCVで画像から物体を切り出す
  • 23.1 本章の目標
  • 23.2 OpenCVの導入
  • 23.3 画像変換の概要
  • 23.4 実作業ステップ
  • 23.5 終わりに
第24章 Parseを使って5分でプッシュ通知を実装する
  • 24.1 Parseとは?
  • 24.2 Parseでプッシュ通知ができるまで
第25章 GCMを使用してAndroid-PHPでPUSH通知を実装する
  • 25.1 GCMの構成
  • 25.2 APIキーの作成とprojectIDの取得
  • 25.3 gcm.jarのインポート
  • 25.4 Androidアプリの実装
  • 25.5 PEARのインストール
  • 25.6 端末IDの登録用サーバープログラム作成
  • 25.7 送信用サーバープログラム作成
  • 25.8 任意のメッセージを送信する
第26章 戦いはここにある!Maps v2で戦場を描け
  • 26.1 今回作るもの
  • 26.2 環境構築
  • 26.3 戦場(フィールド)を描くための基礎知識
  • 26.4 実際描いてみよう
  • 26.5 まとめ
第27章 おはようからおやすみまで暮らしを見つめるLocation API
  • 27.1 Location APIの概要
  • 27.2 Google Play ServicesとLocation API
  • 27.3 2つの位置情報APIの違い
  • 27.4 Google Play Servicesを利用する方法
  • 27.5 Fused Location Provider
  • 27.6 位置情報のリクエスト内容の設定を行う
  • 27.7 位置情報の取得
  • 27.8 サンプル:現在地からの距離を表示するアプリ
  • 27.9 まとめ
第28章 Geofencingで簡単位置連携アプリを作る
  • 28.1 Geofencingとは?
  • 28.2 Geofencingによる簡単O2Oアプリケーション
  • 28.3 まとめ

第5部 Android Platform

第29章 NDKでオーディオ出力の遅延を低減する
  • 29.1 だいぶ良くなったAndroid
  • 29.2 依然つらたんなエリア
  • 29.3 Androidからのサウンド出力方法
  • 29.4 サウンドを扱う際に持っておくべき感覚値
  • 29.5 サウンド出力のレイテンシを小さく出来ないか
  • 29.6 OpenSL|ES...?
  • 29.7 OpenSL|ES パフォーマンス項抜粋訳(Android NDK r9)
  • 29.8 えっえっえっ
  • 29.9 実際に低レイテンシ出力を実現するための注意点
  • 29.10 そんじゃーね
第30章 AndroidのTextureViewとSurfaceViewの使い分け
  • 30.1 はじめに
  • 30.2 描画アプローチ
  • 30.3 メモリ管理
  • 30.4 ライフサイクル
  • 30.5 レイヤー構造
  • 30.6 eglSwapBuffersの挙動差異
  • 30.7 TextureView固有の問題点
  • 30.8 まとめ
第31章 vCard について理解する
  • 31.1 vCard ライブラリを試す
  • 31.2 vCard の中身
  • 31.3 vCard の闇
  • 31.4 vCard の光
  • 31.5 古きものは残る
  • 31.6 おわりに
第32章 新セキュリティAppOpsを解剖する
  • 32.1 permissionの仕組みと問題点
  • 32.2 AppOps
  • 32.3 AppOpsの呼び出し方
  • 32.4 AppOps
  • 32.5 AppOpsの既存のアプリケーションへの影響
  • 32.6 ContentProviderに見るAppOpsの働き
  • 32.7 アプリケーション開発者が行うべきこと
  • 32.8 最後に
第33章 DRMを実現する方法110b本ノック
  • 33.1 そもそもDRMとは何か
  • 33.2 代表的なDRM方式
  • 33.3 本章で扱う方式と端末カバー率
  • 33.4 StorageManager/OBB
  • 33.5 android.drm.*クラス群
  • 33.6 MediaExtractor/MediaCodec
  • 33.7 MediaDrm
  • 33.8 自前実装という選択肢
第34章 最新NDKr9の新機能を解説する
  • 34.1 NDKを使ったことがない人向けの「NDK」ってなに?
  • 34.2 NDK r9 新機能
  • 34.3 まとめ
第35章 Android Build Cookbook Extended
  • 35.1 最初に
  • 35.2 シンプルなAPKをビルドする
  • 35.3 AIDLファイルを含むAPKをビルドする
  • 35.4 staticな.jarファイルに依存するAPKをビルドする
  • 35.5 プラットフォーム鍵で署名するAPKをビルドする
  • 35.6 独自鍵で署名するAPKをビルドする
  • 35.7 ビルド済みのパッケージをビルドする
  • 35.8 StaticJarライブラリをビルドする
  • 35.9 アンインストール可能なプリインストールアプリケーションをビルドする
  • 35.10 共有Nativeライブラリとしてビルドする
  • 35.11 静的Nativeライブラリとしてビルドする
  • 35.12 Native実行ファイルとしてビルドする
  • 35.13 JNIを含むAPKをビルドする
第36章 AOSPを17倍活用する方法
  • 36.1 AOSPって何それ?おいしいの?
  • 36.2 Android SDK Managerからもソースコードはダウンロードできるよね?
  • 36.3 AOSPをダウンロードするには?
  • 36.4 ダウンロードしてみたけど、どこから読めば...
  • 36.5 ソースコードのダウンロードは大変です?
  • 36.6 いきなりソース読むのはちょっとツラい。他に何かいい資料ない?
  • 36.7 Linuxカーネルはどこ?
  • 36.8 開発ツールのみってビルドできるの?
  • 36.9 ところで17倍ってどういう意味?

第6部 Effective (not) Android

第37章 理系のためのなぜなにGit
  • 37.1 はじめに
  • 37.2 blobオブジェクトを理解する
  • 37.3 treeオブジェクトを理解する
  • 37.4 commitオブジェクトを理解する
  • 37.5 branchを理解する
  • 37.6 reflogを理解する
  • 37.7 tagを理解する
  • 37.8 おわりに
第38章 Google Drive API を使ってファイルを git プロジェクトに取り込む
  • 38.1 Google Drive SDK/API を使おう
  • 38.2 終わりに
第39章 未来のJavaへの淡い恋
  • 39.1 Java7を請い願う
  • 39.2 Java8を恋、願う
  • 39.3 総括

付録1 著者紹介