Androidアプリ開発に役立ちそうな優良書籍の目次と無料サンプルコードダウンロードURLたち

「なんでこんなに見通しがいいんだ?」
「同じことやってるのにシンプルすぐる」

と思えるコードは素晴らしいこと間違いない。

ProgrammingAndroid2Examples_AudioPlayer_src_com_oreilly_demo_android_pa_audioplayer_VideoRecorder.java_at_master_·_bmeike_ProgrammingAndroid2Examples

bmeike_ProgrammingAndroid2Examples

「かなり検討して書き直してるよな」

有料書籍は少し値段が高いので買うことはできないけど、
少しでも進化したい、身につけたい、と思ってる
あたしを含めそんな初心な開発者に向けてのメモず。

目次がテキストであれば「ページ内検索」で便利だと思いながら。

どれも汎用性のある基本を重視したコードとなっているので
ブックマークやテンプレート化しておくのがいいのかもしれず。

プログラミングAndroid

O'Reilly Japan - プログラミングAndroid

1部 ツールと基本

1章 ツールキット
    1.1 Android SDKとそれに必要なソフトウェアのインストール
    1.2 テストドライブ:インストール後の動作確認
    1.3 SDKのコンポーネント(構成要素)
    1.4 最新の状態に保つ
    1.5 サンプルコード
    1.6 コードを読むこと

2章 Java for Android
    2.1 AndroidはクライアントサイドJavaの新しい形
    2.2 Javaの型システム
    2.3 スコープ
    2.4 Javaプログラミングのイディオム

3章 Androidアプリケーションの構成要素
    3.1 Androidと従来のプログラミングモデルとの比較
    3.2 アクティビティ、インテント、タスク
    3.3 そのほかのAndroidコンポーネント
    3.4 静的なアプリケーションリソースとコンテキスト
    3.5 リソース
    3.6 Androidアプリケーション実行環境
    3.7 コンポーネントのライフサイクル
    3.8 Androidアプリケーションのパッケージ化:.apkファイル
    3.9 ソフトウェアのAndroidへの移植

4章 アプリケーションをユーザーの元に
    4.1 アプリケーション署名
    4.2 配布用アプリケーションのAndroid Marketへの提出
    4.3 Google Maps APIキー
    4.4 APIレベルの互換性の指定
    4.5 さまざまな画面サイズとの互換性

5章 Androidソフトウェア開発用Eclipse
    5.1 Eclipseの概念と用語
    5.2 Eclipseのビューとパースペクティブ
    5.3 EclipseによるJavaコードの記述
    5.4 EclipseとAndroid
    5.5 バグを避けコードをきれいに保つ
    5.6 Eclipseの特異性とそれに代わるもの

6章 Effective Java for Android
    6.1 Android Framework
    6.2 Javaソースの構造化
    6.3 Androidの並行処理
    6.4 直列化

2部 Android Frameworkについて

7章 ビューの構築
    7.1 Android GUIアーキテクチャ
    7.2 グラフィカルインターフェイスの組み立て
    7.3 コントローラとのワイヤリング
    7.4 メニュー

8章 フラグメントとマルチプラットフォームのサポート
    8.1 フラグメントの作成
    8.2 フラグメントのライフサイクル
    8.3 フラグメントマネージャ
    8.4 フラグメントのトランザクション
    8.5 互換パッケージ

9章 2Dと3Dグラフィックの描画
    9.1 ウィジェットの自作
    9.2 点滅

10章 データの処理と永続化
    10.1 リレーショナルデータベースの概略
    10.2 SQLite
    10.3 SQL言語
    10.4 SQLとデータベースを中心としたAndroidアプリケーション向けデータモデル

    10.5 Androidデータベースクラス
    10.6 Androidアプリケーション向けのデータベース設計
    10.7 データベースAPIの使用:MJAndroid

3部 Androidのスケルトンアプリケーション

11章 振る舞いのよいアプリケーションのためのフレームワーク
    11.1 ライフサイクルの視覚化
    11.2 フラグメントのライフサイクルの視覚化
    11.3 Activityクラスと振る舞いのよいアプリケーション
    11.4 Applicationクラスのライフサイクルメソッド
    11.5 複数のアクティビティ間の流れと直観的なユーザーインターフェイス

12章 コンテンツプロバイダの使用
    12.1 コンテンツプロバイダの理解
    12.2 プロバイダのpublic APIの定義
    12.3 コンテンツプロバイダの記述と統合
    12.4 ファイル管理とバイナリデータ
    12.5 Android MVCとコンテンツの観察
    12.6 コンテンツプロバイダの完成:SimpleFinchVideoContentProviderのコード
    12.7 コンテンツプロバイダの宣言

13章 コンテンツプロバイダを探る
    13.1 RESTful Androidアプリケーションの開発
    13.2 Network MVC
    13.3 メリットのまとめ
    13.4 コードサンプル:動的なリスト表示とYouTubeビデオコンテンツの
キャッシング
    13.5 Finch YouTubeビデオサンプルソースコードの構造
    13.6 検索アプリの動作段階
    13.7 段階1:UIでユーザー入力を得る
    13.8 段階2:コントローラがイベントを監視する
    13.9 段階3:コントローラがコンテンツプロバイダ/モデルに対しmanagedQueryでクエリを送る
    13.10 段階4:RESTful要求の実装

4部 高度なトピック

14章 マルチメディア
    14.1 オーディオとビデオ
    14.2 オーディオとビデオの再生
    14.3 オーディオの録音とビデオの録画
    14.4 メディアコンテンツの使用

15章 位置とマップ
    15.1 位置にもとづくサービス
    15.2 マップ
    15.3 Google Mapsアクティビティ
    15.4 MapViewとMapActivity
    15.5 MapViewの使用
    15.6 MapViewとMyLocationOverlayの初期化
    15.7 MapActivityの一時停止と再開
    15.8 メニューボタンによるマップの制御
    15.9 キーパッドを使ったマップの制御
    15.10 MapViewを使わないで位置を取得する

16章 センサー、NFC、スピーチ、ジェスチャ、アクセシビリティ
    16.1 センサー
    16.2 Near Field Communication(NFC、近距離無線通信規格)
    16.3 ジェスチャ入力
    16.4 アクセシビリティ

17章 コミュニケーション、識別、同期、ソーシャルメディア
    17.1 アカウントのコンタクト
    17.2 認証と同期
    17.3 Bluetooth

18章 Android Native Development Kit(NDK)
    18.1 ネイティブメソッドとJNIの呼び出し
    18.2 Android NDK
    18.3 Androidで提供されるネイティブライブラリ
    18.4 自作ライブラリモジュールのビルド
    18.5 ネイティブアクティビティ(NativeActivity)

サンプルコードダウンロード:

bmeike/ProgrammingAndroidExamples
https://github.com/...

bmeike/ProgrammingAndroid2Examples
https://github.com/...

続きます。

Java 並行処理プログラミング

目次 : 
第1部 基礎編(スレッドセーフ/ オブジェクトを共有する ほか)
第2部 並行アプリケーションの構造を作る(タスクの実行/ キャンセルとシャットダウン ほか)
第3部 生存、実行性能、試験(生存事故を防ぐ/ 実行性能とスケーラビリティ ほか)
第4部 高度な話題(明示的なロック/ カスタムシンクロナイザを構築する ほか)
付録A 並行処理のためのアノテーション

サンプルコードダウンロード:
Java Concurrency in Practice
http://jcip.net.s3-website-us-east-1.amazonaws.com/listings.html

増補改訂版Java言語で学ぶデザインパターン入門マルチスレッド編

http://www.hyuki.com/dp/dp2.html

はじめに
UMLについて
Introduction
Java言語のスレッド
マルチスレッドプログラムの評価基準
パターン
Single Threaded Execution - この橋を渡れるのは、たった一人
Immutable - 壊したくとも、壊せない
Guarded Suspension - 用意できるまで、待っててね
Balking - 必要なかったら、やめちゃおう
Producer-Consumer - わたしが作り、あなたが使う
Read-Write Lock - みんなで読むのはいいけれど、読んでる間は書いちゃだめ
Thread-Per-Message - この仕事、やっといてね
Worker Thread - 仕事が来るまで待ち、仕事が来たら働く
Future - 引換券を、お先にどうぞ
Two-Phase Termination - 後片付けしてから、おやすみなさい
Thread-Specific Storage - スレッドごとのコインロッカー
Active Object - 非同期メッセージを受け取る、能動的なオブジェクト
まとめ - マルチスレッドプログラミングのパターン・ランゲージ
付録
練習問題の解答
Javaのメモリモデル
Javaスレッドの優先度
スレッド関連の主要API
java.util.concurrentパッケージ
サンプルプログラムの実行手順
参考文献

サンプルコードダウンロード:
http://www.hyuki...

SMASHING Android UI

Android UI Patterns: Smashing Android UI

PART I: INTRODUCTION TO ANDROID DESIGN 1

Chapter 1: Introduction to Usability and User Interface Design 3

Considering Technology versus Design 4
Understanding the Mental Model 5
Designing for Users 10
No App Will Do Everything; Pick Your Battles 13
You Are the Expert; Users Are Not Designers 14
Know Your Users; Design for Real People 14

Chapter 2: Don’t Start Coding Just Yet 19

Prototyping 20
Tools for Design 22
User Testing 26

Chapter 3: Considerations in Designing for Mobile and Touch Devices 31

Designing for Mobile 32
Designing for Touch Interfaces 38

Chapter 4: Exploring the Android Platform 43

Challenges of the Android Platform 44
Android Versions 52
Android App Distribution 55
What Does Open Source Mean? 57


PART II: ANDROID PLATFORM FEATURES AND UI COMPONENTS 61

Chapter 5: Android App Structure and Online Guidelines 63

Android App Structure Overview 64
Android Project Structure Overview 67
Official Android Guidelines 69

Chapter 6: Android Intents 73

Intents Allow Apps to Work Together 74
Using Social Networks And Sharing 76
Working with Browsers 76
How Do Android Intents Work? 79
Creating Your Own Actions 85
Intents Are Everywhere 85
Intents versus Third-Party APIs 86

Chapter 7: Android App Navigation Structure 87

Components of Android Navigation, Activities, and Intents 88
Android Navigation Controls 89

Chapter 8: Home Screen App Widgets 103

Uses of Home Screen App Widgets 104
Updating App Widget Data 108
App Widget Layout and Functionality 110
Implementing an App Widget 115

Chapter 9: Notifying and Informing Users 119

Android Notifi cation Methods 120
When to Notify Users 122
When Not to Notify Users 128
Avoiding Pop-Ups 129
Getting the Most from Status Bar Notifi cations 130

Chapter 10: Designing For Hardware Buttons, Input Methods, and Sensors 137

Designing for the Touch Screen 138
Designing Phone Hardware Buttons 139
Designing for the On-Screen Keyboard 140
Designing for Hardware Keyboards 148
Designing for D-Pads And Trackballs 149
Designing for the Stylus 150
Designing for Voice Control 150
Designing for External Keyboards, Mice, and Touchpads 151
Designing for Connected Smart Accessories 152
Designing for Sensors 152
Designing for a Second Screen 153

Chapter 11: Designing Platform User Interface Components 155

Using User Interface Widgets 156
Customizing User Interface Widgets 168
Adjusting the Typography 170
Using Icons 176
Using Animations and Transitions 182


PART III: SCALABLE ANDROID DESIGN 193

Chapter 12: Managing Android Resources 195

Using Android Resources 196
Designing for Screen Density 197
Designing for Screen Size and Form 202
Designing for Language and Region 204
Designing for Device Controls 204
Designing for Platform Versions 205
Designing for Device Modes 205

Chapter 13: Android App Layouts 207

Android Layout Strategy 208
Layouts from XML and Code 210
Layout Managers 210
Defining a Layout Size 220
Scrolling 220
Z Axis, Layout Order 221
Padding and Margin 221
Import and Merge Layout Files 222
Custom Layouts 223
Android Development Tools User Interface Builder 223
Debugging Layouts 224

Chapter 14: Scalable Graphics 227

Nine-Patching 228
Drawable XML 233
Drawing from Code 240

Chapter 15: Beyond Scalable – Responsive Design 245

More Android Devices Th an Just Phones 246
Understanding Responsive Design 248
Common Ways to Create Responsive User Interfaces 259

Chapter 16: Implementing Responsive User Interfaces 263

Introduction to Fragments 264
Fragment and Activity Architecture 266
Migrating Existing Apps 268
Looking at an Example App 269


PART IV: ANDROID UI DESIGN PATTERNS 283

Chapter 17: Introduction to User Interface Design Patterns 285

User Interface Design Patterns 286
Benefits of Using UI Design Patterns 287
Design Patterns in Android Design Guidelines 288
User Interface Design Patterns Found in Th is Book 288

Chapter 18: User Action Design Patterns 291

Using the Action Bar Pattern 292
Using the Quick Actions Design Pattern 300
Using the Action Drawer Design Pattern 306
Using the Pull-to-Refresh Design Pattern 308
Using the Swipe-to-Dismiss Gesture 311

Chapter 19: Navigation and Layout Design Patterns 315

Using Stacked Galleries 316
Using the Dashboard 318
Using Workspaces 322
Using Split View 326
Using the Expand-in-Context Pattern 329
Using Side Navigation 332

Chapter 20: Data Design Patterns 337

Using Dynamic Lists 338
Using the Image Placeholder Pattern 340
Using the Non-Forced Login Pattern 342
Using the Drag-to-Reorder Handle Pattern 345

Chapter 21: User Interface Design Anti-Patterns 349

Avoid Using the Splash Screen 350
Avoid Using the Tutorial Screen 351
Avoid Using the Confi rmation Window 353
Avoid Using the On-Screen Back Button 353
Avoid Using the Menu Button 355
Avoid Hiding the Status Bar 355
Avoid Using Swipe Overlay for Quick Actions 356
Avoid Using Non-Android Designs 357

サンプルコードダウンロード:
https://github.com/JuhaniLehtimaeki/smashing...

JUnit実践入門 - 体系的に学ぶユニットテストの技法

JUnit実践入門 ── 体系的に学ぶユニットテストの技法:書籍案内|技術評論社
http://gihyo.jp/book/2012/978-4-7741-5377-3

目次:
http://gihyo.jp/book/2012/978-4-7741-5377-3#toc

サンプルコードダウンロード:
http://gihyo.jp/book/2012/978-4-7741-5377-3/support?ard=1380366758


関連ワード:  Androidアプリツール評判開発