「なんでこんなに見通しがいいんだ?」
「同じことやってるのにシンプルすぐる」
と思えるコードは素晴らしいこと間違いない。
「かなり検討して書き直してるよな」
有料書籍は少し値段が高いので買うことはできないけど、
少しでも進化したい、身につけたい、と思ってる
あたしを含めそんな初心な開発者に向けてのメモず。
目次がテキストであれば「ページ内検索」で便利だと思いながら。
どれも汎用性のある基本を重視したコードとなっているので
ブックマークやテンプレート化しておくのがいいのかもしれず。
プログラミング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