がぶちゃんの日記

札幌からフルリモートCTO

「Android SDK開発のレシピ」が第2版になりました。

Android SDK開発のレシピ

Android SDK開発のレシピ

人生初の執筆 「Android SDK開発のレシピ」という本を書きました。 - gabuchanの日記 から2年経ち、Androidのバージョンも上がり、当時と様々な状況が変わったため本書の大幅な改訂をいたしました。
しかし、ただのAndroidのバージョンアップ対応の改訂ではなく、現在のAndroidアプリ開発の状況を踏まえ全てのレシピを見直し、新しい要素も取り入れた結果、半分以上が新規レシピとなりました。

特に、Androidアプリ開発で最大の問題になる「Androidバージョンのフラグメンテーション(断片化)問題」を解決するため、Support Packageを使用することを前提として、本書はAndroid 2.2以降をサポートします(一部、2.3以降のレシピがありますがその数は少ないです)。

Support Packageを使っているレシピ

  • レシピ029, 030: Fragment
  • レシピ035: NotificationCompat
  • レシピ042, 043: ViewPager, PagerAdapter, FragmentPagerAdapter
  • レシピ112: ListFragment

などなど

はじめに

本書はAndroid初心者本の次に読んで頂くことを想定した本です。いわゆる逆引き系の本で「こうこうするには?」という単位で130個のレシピを収録しています。本書の他にもAndroidの逆引き本はいくつかありますが、本書は以下のような思いを込めて書きました。

  • 解説が必要なレシピは解説を厚く
  • 仕事でAndroidアプリを書いてきた経験をできるだけ盛り込む
  • 機種依存などいわゆるバッドノウハウもできるだけ盛り込む
  • 遊び心を忘れない

Androidアプリを趣味で開発される方にも、仕事で開発される方にも少しでもお役に立てば幸いです。

レシピを1つ公開

出版社さんが「レシピ127 多くの端末で動作するようにする」のPDFを用意してくださったので公開します。本書の雰囲気を掴んでいただけると思います。ぜひご覧ください。

レシピ127 多くの端末で動作するようにする(PDF注意)
gabubon2_recipe127.pdf 直

サンプルコード

初版同様にサンプルコードはGitHubで公開しています。
https://github.com/gabu/gabubon2

初版はレシピごとにAndroidアプリになっていたのですが、第2版では1つのAndroidアプリにまとめました。
サンプルコードを実際にAndroidアプリで動くかたちにしたサンプルアプリをGoogle Playでも公開しています。
https://play.google.com/store/apps/details?id=net.gabuchan.androidrecipe

こんな感じでレシピごとの動作を実際に動かして見ることができます。







目次

以下が全130レシピの見出しです。第2版で追加されたレシピを赤くしました。もちろん赤くない既存のレシピも改訂に合わせて見直し更新されています。

  • Chapter 01 開発環境のレシピ
    • レシピ001 Eclipseの設定を行う New!
    • レシピ002 Eclipseのショートカットを活用する New!
    • レシピ003 コードスタイルガイドラインを参考にする New!
    • レシピ004 Android本家のフォーマッターを使う New!
    • レシピ005 コマンドラインからビルドする
    • レシピ006 テストプロジェクトでユニットテストを行う
    • レシピ007 monkeyでストレステストを行う New!
    • レシピ008 monkeyrunnerでシナリオテストを行う New!
    • レシピ009 Jenkinsでビルドする New!
    • レシピ010 ProGuardで難読化する New!
    • レシピ011 Traceviewでボトルネックを発見する New!
    • レシピ012 DDMSとMATでメモリリークを発見する New!
    • レシピ013 Lintでソースコードをチェックする New!
    • レシピ014 端末内のファイルにアクセスする
    • レシピ015 デバッグ時のみ有効な処理を作る
  • Chapter 02 ウィジェットのレシピ
    • レシピ016 ボタンを使う New!
    • レシピ017 イメージボタンを使う New!
    • レシピ018 イメージビューを使う New!
    • レシピ019 テキストビューを使う New!
    • レシピ020 エディットテキストを使う New!
    • レシピ021 ラジオボタンを使う New!
    • レシピ022 チェックボックスを使う New!
    • レシピ023 スピナー(セレクトボックス)を使う New!
    • レシピ024 トグルボタンを使う New!
    • レシピ025 レイティングバーを使う New!
    • レシピ026 シークバーを使う New!
    • レシピ027 アナログ時計を使う New!
    • レシピ028 デジタル時計を使う New!
  • Chapter 03 UIのレシピ
    • レシピ029 日付選択ダイアログボックスを使う New!
    • レシピ030 時刻選択ダイアログボックスを使う New!
    • レシピ031 ウェブビューで指定したURLを表示する New!
    • レシピ032 ウェブビューで用意したHTMLを表示する New!
    • レシピ033 入力補完エディットテキストを使う New!
    • レシピ034 トーストを表示する New!
    • レシピ035 ノーティフィケーションを表示する New!
    • レシピ036 メニューを表示する New!
    • レシピ037 プログレスダイアログを表示する
    • レシピ038 確認ダイアログを表示する New!
    • レシピ039 選択ダイアログを表示する New!
    • レシピ040 画像の一覧をグリッドビューで表示する New!
    • レシピ041 カスタムビューをグリッドビューで表示する New!
    • レシピ042 スワイプで切り替わるビューを作成する New!
    • レシピ043 スワイプで切り替わるタブと処理を作成する New!
    • レシピ044 画面の回転をロックする
    • レシピ045 横画面用のレイアウトを用意する New!
    • レシピ046 ステータスバーを非表示にする New!
    • レシピ047 タイトルバーを非表示にする New!
    • レシピ048 アプリ起動時にスプラッシュ画像を表示する New!
    • レシピ049 ビューをアニメーションする
  • Chapter 04 ListViewのレシピ
    • レシピ050 ListViewを表示する
    • レシピ051 表示内容をカスタマイズする
    • レシピ052 タップ、ロングタップを検知する
    • レシピ053 最後までスクロールしたことを検知する
    • レシピ054 次のX件を読み込む
    • レシピ055 所定の位置までスクロールさせる
    • レシピ056 画面が回転してもデータを保持する
    • レシピ057 アプリが終了してもデータを保持する
  • Chapter 05 画像のレシピ
    • レシピ058 端末の解像度に合わせて画像を表示する
    • レシピ059 拡大されても綺麗な画像(9-patch)を作る
    • レシピ060 画像をリサイズする
    • レシピ061 画像を切り取る
    • レシピ062 画像を回転する
    • レシピ063 画像を合成する
    • レシピ064 画像をSDカードに保存する New!
    • レシピ065 ギャラリーから画像を選択する
    • レシピ066 サムネイルを取得する New!
    • レシピ067 JPEGファイルからExif情報を取得する New!
  • Chapter 06 マルチメディアのレシピ
    • レシピ068 効果音を再生する
    • レシピ069 音声ファイルを再生する
    • レシピ070 マイクから録音する
    • レシピ071 動画を撮影する
    • レシピ072 動画を再生する
    • レシピ073 ビジュアライザで波形を表示する New!
    • レシピ074 イコライザで音を変化させる New!
  • Chapter 07 カメラのレシピ
    • レシピ075 カメラアプリで写真を撮影する
    • レシピ076 カメラのプレビュー映像を表示する
    • レシピ077 カメラのプレビュー映像にビューを重ねる
    • レシピ078 写真を撮影する New!
    • レシピ079 オートフォーカスを使う New!
    • レシピ080 フラッシュを使う New!
    • レシピ081 フォーカスモードを使う New!
    • レシピ082 フロントカメラを使う New!
  • Chapter 08 センサーのレシピ
    • レシピ083 加速度センサーを使う
    • レシピ084 近接センサーを使う
    • レシピ085 明るさセンサーを使う
    • レシピ086 端末の傾きを取得する
    • レシピ087 方位を取得する
    • レシピ088 位置情報を取得する
    • レシピ089 シェイクを検知する
  • Chapter 09 インテントのレシピ
    • レシピ090 ブラウザを呼び出す
    • レシピ091 電話を呼び出す
    • レシピ092 Googleマップを呼び出す New!
    • レシピ093 共有機能を呼び出す New!
    • レシピ094 音声認識を呼び出す
    • レシピ095 メールを送信する
  • Chapter 10 データベース(SQLite)のレシピ
    • レシピ096 データベースをオープンする
    • レシピ097 テーブルを作成する
    • レシピ098 レコードを追加・更新・削除する
    • レシピ099 レコードを検索する
    • レシピ100 テーブルを変更する
    • レシピ101 検索結果をListViewに表示する
  • Chapter 11 (その他)便利なレシピ
    • レシピ102 アプリケーションの終了を検知する
    • レシピ103 自動的にスリープしないようにする
    • レシピ104 URLエンコードする
    • レシピ105 プリファレンスにデータを保存する
    • レシピ106 XMLをパースする
    • レシピ107 文字列からMD5を取得する
    • レシピ108 設定画面を作成する
    • レシピ109 ZIPファイルを解凍する
    • レシピ110 JSON形式のデータを扱う
    • レシピ111 正規表現を使う
    • レシピ112 連絡先の一覧を表示する
    • レシピ113 ネットワークの接続状況を判定する
    • レシピ114 Twitter4Jを使う
    • レシピ115 アプリをSDカードに移動できるようにする New!
    • レシピ116 Backup Serviceで自動バックアップする New!
    • レシピ117 Download Managerで簡単にダウンロードする New!
    • レシピ118 設定画面を呼び出す New!
    • レシピ119 Google Analyticsで分析する New!
    • レシピ120 AdMobの広告を組み込む
  • Chapter 12 開発者ライフを充実させるレシピ
    • レシピ121 効率よく必要な情報を手に入れる New!
    • レシピ122 ブログを書く New!
    • レシピ123 ソーシャルネットワークを活用する New!
    • レシピ124 勉強会やイベントに参加する New!
    • レシピ125 どうしても困ったらメーリングリストで相談する New!
  • Chapter 13 世界に羽ばたくアプリを創る
    • レシピ126 デザインをブラッシュアップする New!
    • レシピ127 多くの端末で動作するようにする New!
    • レシピ128 Google Playでアプリの魅力を伝える New!
    • レシピ129 アプリの公開を発表する New!
    • レシピ130 ローカライズをして世界に発信する New!

Android SDK開発のレシピ

Android SDK開発のレシピ