iPhone SDK アプリケーション開発ガイド

[cover photo]
  • 2009年09月 発行
  • 448ページ
  • ISBN978-4-87311-417-0
  • フォーマット Print PDF
  • 原書: iPhone SDK Application Development

オライリー・ジャパンで書籍を購入:
定価3,672円

Ebook Storeで電子版を購入:
価格2,938円

本書ではiPhone SDKアプリケーション開発に必要な知識とコードを読者に提供します。テキスト表示や画面の回転への対応、ページ移動から始まり、マルチタッチや各種UI部品の扱い、さらには画像、サウンド、ビデオ、ネットワーク、位置情報、アドレス帳、環境設定、カバーフローなどのトピックに関して、そのテクニックをプログラム例とともに基礎から詳しく解説します。iPhoneアプリケーション開発に必要な基礎技術を網羅しています。日本語版ではInterface Builderの解説を補強したほか、巻末付録としてCore Graphicsの使い方、オーディオセッションとオーディオユニットについて加筆しました。

翻訳者によるサポートページ(本書のサンプルコードをダウンロード可)。

関連書籍

iPhone/iPadゲーム開発ガイド
iPhoneアプリケーション開発ガイド
Subject To Change
詳解 OpenCV
ビジュアライジング・データ
リファクタリング・ウェットウェア

推薦の言葉
監訳者まえがき
はじめに
まえがき
1章 iPhone SDKの概要
    1.1 iPhoneアプリケーションの構造
    1.2 iPhone SDKのインストール
        1.2.1 動作環境
        1.2.2 iPhoneシミュレータ
        1.2.3 iPhone SDKのダウンロードとインストール
    1.3 iPhoneの準備
    1.4 アプリケーションの作成とインストール
        1.4.1 MVCパラダイム
        1.4.2 アプリケーションのテンプレート
        1.4.3 Xcodeプロジェクトのレイアウト
        1.4.4 プロトタイプ
        1.4.5 フレームワークの追加
        1.4.6 アクティブSDKの設定
        1.4.7 アプリケーションのビルド
        1.4.8 アプリケーションのインストール
    1.5 Objective-C概説
        1.5.1 メッセージング
        1.5.2 クラスおよびメソッドの宣言
        1.5.3 実装
        1.5.4 プロパティ
        1.5.5 プロトコル
        1.5.6 カテゴリ
        1.5.7 参考資料
2章 Interface Builderの概要
    2.1 ウィンドウ、ビュー、ビューコントローラ
    2.2 単純なウィンドウを表示
        2.2.1 XcodeからInterface Builderの呼び出し
        2.2.2 インスペクタの使用
    2.3 タブバーを使ったアプリケーションのテンプレート
        2.3.1 [Tab Bar Application]の選択
        2.3.2 タブの編集
        2.3.3 日本語のラベルの表示
        2.3.4 発展課題
    2.4 Interface Builderの「登場人物」
        2.4.1 Libraryウィンドウ
        2.4.2 ビューコントローラ
        2.4.3 データビュー
        2.4.4 InputsとValues
        2.4.5 ビューやバーの追加
        2.4.6 インスペクタ
        2.4.7 発展課題
    2.5 ビューの接続
    2.6 Interface Builderを使わない開発
3章 UI Kit入門
    3.1 ユーザーインタフェースの基本要素
    3.2 ウィンドウとビュー
        3.2.1 ウィンドウとビューの生成
        3.2.2 ビューの表示
        3.2.3 HelloView−前代未聞の役立たずなアプリ
        3.2.4 プログラムの動作
        3.2.5 ビューコントローラ
        3.2.6 HelloWorld−伝統の役立たずアプリ
        3.2.7 プログラムの動作
    3.3 ビューコントローラ
        3.3.1 ビューコントローラの生成
        3.3.2 Interface Builderからのロード
        3.3.3 オリエンテーションの変化への対応
        3.3.4 ビューコントローラの破棄
        3.3.5 ControllerDemo−ビューコントローラ版「Hello World」
        3.3.6 プログラムの動作
        3.3.7 発展課題
    3.4 テキストビュー
        3.4.1 テキストビューの作成
        3.4.2 コンテンツの代入
        3.4.3 HTMLの表示
        3.4.4 SourceReader−ウェブページのソースコードリーダ
        3.4.5 プログラムの動作
        3.4.6 発展課題
    3.5 ナビゲーションバーとナビゲーションコントローラ
        3.5.1 ナビゲーションコントローラの生成
        3.5.2 ナビゲーションコントローラの属性
        3.5.3 セグメンテッドコントロールの追加
        3.5.4 ツールバーの追加
        3.5.5 PageDemo−ページナビゲーションの例題
        3.5.6 プログラムの動作
        3.5.7 発展課題
    3.6 トランジションのアニメーション
        3.6.1 トランジションの作成
        3.6.2 トランジションの付加
        3.6.3 FlipDemo−ページをめくるトランジション
        3.6.4 プログラムの動作
        3.6.5 発展課題
    3.7 アクションシートとアラート
        3.7.1 アラート
        3.7.2 アクションシート
        3.7.3 アクションシートの消去
        3.7.4 EndWorld−世界を終了させる(確認付き)
        3.7.5 プログラムの動作
        3.7.6 発展課題
    3.8 テーブルビューとテーブルビューコントローラ
        3.8.1 テーブルの作成
        3.8.2 テーブルセル
        3.8.3 複数選択の実装
        3.8.4 編集とスワイプによる消去
        3.8.5 テーブルの再読み込み
        3.8.6 TableDemo−簡単なファイルブラウザ
        3.8.7 プログラムの動作
        3.8.8 発展課題
    3.9 ステータスバーの操作
        3.9.1 ステータスバーを隠す
        3.9.2 ステータスバーのスタイル
        3.9.3 ステータスバーの向き
    3.10 アプリケーションバッジ
        3.10.1 アプリケーションバッジの表示
        3.10.2 アプリケーションバッジの消去
        3.10.3 発展課題
    3.11 アプリケーションサービス
        3.11.1 中断と再開
        3.11.2 プログラムの終了
    3.12 Safariの起動
    3.13 電話の発信
4章 マルチタッチイベントとジオメトリ
    4.1 ジオメトリ関連のデータ構造
        4.1.1 CGPoint
        4.1.2 CGSize
        4.1.3 CGRect
    4.2 マルチタッチイベントの処理
        4.2.1 UITouchの通知
        4.2.2 UIEvent
        4.2.3 イベント処理
        4.2.4 例−タップカウンター
        4.2.5 例−タップとドラッグ
        4.2.6 マルチタッチの処理
        4.2.7 PinchMe−ピンチジェスチャの追跡
        4.2.8 TouchDemo−マルチタッチによるアイコンの位置調整
        4.2.9 プログラムの動作
        4.2.10 発展課題
5章 Quartz Coreを使ったレイヤの処理
    5.1 レイヤ
        5.1.1 レイヤ階層
        5.1.2 サイズと表示位置
        5.1.3 レイヤの順序と表示
        5.1.4 レンダリング
        5.1.5 変換
        5.1.6 レイヤを用いたアニメーション
        5.1.7 レイヤの変換
        5.1.8 BounceDemo−レイヤを使った視覚的デモ
        5.1.9 プログラムの動作
        5.1.10 発展課題
6章 iPhoneのサウンド−Audio ToolboxとAVFoundation
    6.1 AVFoundationフレームワーク
        6.1.1 オーディオプレーヤー
        6.1.2 プレーヤーのプロパティ
        6.1.3 サウンドの再生
        6.1.4 委任メソッド
        6.1.5 メータリング
    6.2 AVMeter−音量計の構築
        6.2.1 プログラムの動作
        6.2.2 発展課題
    6.3 システムサウンドサービス
        6.3.1 プログラムの動作
    6.4 オーディオキュー
        6.4.1 オーディオキュー構造体
        6.4.2 音声出力のプロビジョニング
        6.4.3 サウンドバッファ
        6.4.4 コールバック関数
        6.4.5 音量の制御
        6.4.6 例−PCMプレーヤー
        6.4.7 プログラムの動作
        6.4.8 発展課題
    6.5 サウンドの録音
        6.5.1 オーディオキュー構造体
        6.5.2 オーディオ入力のプロビジョニング
        6.5.3 サウンドバッファ
        6.5.4 コールバック関数
        6.5.5 生データへのアクセス
        6.5.6 ファイルへの書き込み
        6.5.7 例−サウンドレコーダ
        6.5.8 プログラムの動作
        6.5.9 発展課題
    6.6 バイブ
7章 CFNetworkを用いたネットワークプログラミング
    7.1 ソケットの基本的なプログラミング
        7.1.1 ソケットのタイプ
        7.1.2 CFSocket
        7.1.3 CFSocketContext
        7.1.4 ソケットストリーム
        7.1.5 CFSocketの例−Joke Server
        7.1.6 発展課題
    7.2 CFHTTPとCFFTP
        7.2.1 CFHTTP
        7.2.2 CFFTP
        7.2.3 発展課題
8章 位置情報の取得−Core Location
    8.1 Core Locationマネージャ
        8.1.1 Core Locationへのパラメータ
        8.1.2 照会の発行
        8.1.3 更新情報の受信
        8.1.4 照会の完了
        8.1.5 エラー処理
        8.1.6 WhereYouAt−Core Locationを使用するアプリケーションの例
        8.1.7 プログラムの動作
        8.1.8 発展課題
9章 アドレス帳のフレームワーク
    9.1 アドレス帳へのアクセス
        9.1.1 トップレベルの関数
        9.1.2 アドレス帳の照会
        9.1.3 レコードの作成
        9.1.4 レコードの処理
        9.1.5 複数値を持つプロパティ
        9.1.6 ディクショナリ
        9.1.7 画像データ
        9.1.8 発展課題
    9.2 アドレス帳のUI
        9.2.1 パーソンビュー
        9.2.2 ピープルピッカー
        9.2.3 Emails−アドレス帳から姓とメールアドレスだけをリスト
        9.2.4 プログラムの動作
        9.2.5 発展課題
10章 高度なUI Kitデザイン
    10.1 各種コントロール
        10.1.1 UIControl
        10.1.2 セグメンテッドコントロール−UISegmentedControl
        10.1.3 スイッチ−UISwitch
        10.1.4 スライダ−UISlider
        10.1.5 テキストフィールド−UITextField
        10.1.6 ボタン−UIButton
        10.1.7 ページコントロール−UIPageControl
        10.1.8 発展課題
    10.2 プレファレンステーブル
        10.2.1 プレファレンステーブルの作成
        10.2.2 プレファレンステーブルの表示
        10.2.3 ShootStuffUp−プレファレンステーブルの例
        10.2.4 プログラムの動作
        10.2.5 発展課題
    10.3 セクションリスト
        10.3.1 セクションリストの作成
        10.3.2 インデックスバーの追加
        10.3.3 セクションリストの表示
        10.3.4 TableDemo−改良版のファイルブラウザ
        10.3.5 プログラムの動作
        10.3.6 発展課題
    10.4 インジケータ
        10.4.1 UIActivityIndicatorView
        10.4.2 UIProgressView
        10.4.3 ネットワークアクティビティのインジケータ
        10.4.4 発展課題
    10.5 画像
        10.5.1 画像オブジェクト
        10.5.2 ImageFun−画像とパターンで遊ぶ
        10.5.3 UIImageView−ビュー付きの画像
        10.5.4 画像ピッカー
    10.6 キーボード属性
        10.6.1 キーボードスタイル
        10.6.2 キーボードの外見
        10.6.3 リターンキー
        10.6.4 自動大文字化
        10.6.5 自動スペルチェック
        10.6.6 セキュリティ付きテキスト入力
    10.7 ピッカー
        10.7.1 ピッカーの作成
        10.7.2 ピッカーの表示
        10.7.3 ピッカーの読み出し
        10.7.4 NosePicker−自分の鼻の選択
        10.7.5 プログラムの動作
        10.7.6 発展課題
    10.8 日付時刻ピッカー
        10.8.1 日付時刻ピッカーの作成
        10.8.2 日付ピッカーを表示する
        10.8.3 日付の読み出し
        10.8.4 DatePicker−独立記念日ピッカー
        10.8.5 プログラムの動作
        10.8.6 発展課題
    10.9 タブバー
        10.9.1 タブバーコントローラ
        10.9.2 タブバーコントローラの作成
        10.9.3 ボタンのカスタマイズ
        10.9.4 ナビゲーション
        10.9.5 委任オブジェクト
        10.9.6 TabDemo−別の方法で本を作る
        10.9.7 プログラムの動作
        10.9.8 発展課題
    10.10 センサとデバイス情報
        10.10.1 デバイスの向きを読み出す
        10.10.2 デバイス情報を読み出す
        10.10.3 加速度センサの読み出し
        10.10.4 接近センサ
        10.10.5 発展課題
    10.11 スクロールビュー
        10.11.1 スクロールビューの作成
        10.11.2 プロパティ
        10.11.3 委任メソッド
        10.11.4 BigImage−天気図のスクロール
        10.11.5 プログラムの動作
        10.11.6 発展課題
    10.12 ウェブビュー
        10.12.1 ウェブビューの作成
        10.12.2 ウェブビューの表示
        10.12.3 コンテンツのロード
        10.12.4 ナビゲーション
        10.12.5 委任メソッド
        10.12.6 WebDemo−Google検索ユーティリティ
        10.12.7 プログラムの動作
        10.12.8 発展課題
11章 アプリケーションの環境設定
    11.1 ディクショナリとプロパティリスト
        11.1.1 ディクショナリの作成
        11.1.2 キーの管理
        11.1.3 プロパティリストの書き込み
        11.1.4 プロパティリストの読み込み
        11.1.5 発展課題
    11.2 Settings Bundle
        11.2.1 キーの追加
        11.2.2 設定バンドル値の読み取り
        11.2.3 発展課題
12章 カバーフロー
    12.1 CovertFlow−SDK準拠のカバーフロー
        12.1.1 動作の説明
        12.1.2 発展課題
13章 ページのフリック
    13.1 PageControl−ページのフリックの例
        13.1.1 プログラムの動作
        13.1.2 発展課題
    13.2 大量のビューへの対応
        13.2.1 プログラムの動作
14章 Media Playerフレームワーク
    14.1 ムービープレーヤーコントローラ
        14.1.1 プロパティ
        14.1.2 ムービー再生の開始と終了
        14.1.3 通知
        14.1.4 発展課題
付録A Core Graphicsフレームワーク
    A.1 UIViewからの利用
    A.2 Core Graphicsのデータ型
    A.3 CGContext
        A.3.1 矩形の描画
        A.3.2 線の描画
        A.3.3 色の指定
    A.4 簡単なお絵描きツールの作成
        A.4.1 BitmapContext
        A.4.2 プレビューの表示
        A.4.3 タッチして絵を描く
        A.4.4 画像の保存
        A.4.5 SimpleDrawing−簡単なお絵描きソフト
        A.4.6 プログラムの動作
        A.4.7 発展課題
付録B オーディオセッションとオーディオユニット
    B.1 Audio Session
        B.1.1 オーディオにおける「正しい対応」
        B.1.2 割り込み
        B.1.3 オーディオハードウェアの状態の取得と設定
    B.2 Audio Unit
        B.2.1 8.24固定小数点
        B.2.2 Remote IO Audio Unitを使う
        B.2.3 Audio Unitをインスタンス化する
        B.2.4 コールバック関数を設定する
        B.2.5 Remote IO Audio Unitのオーディオデータフォーマットを設定する
        B.2.6 Remote IO Audio Unitを開始する
        B.2.7 コールバック関数を実装する
        B.2.8 AudioUnitを解放する
    B.3 まとめ
索引

Feedback

皆さんのご意見をお聞かせください。ご購入いただいた書籍やオライリー・ジャパンへのご感想やご意見、ご提案などをお聞かせください。より良い書籍づくりやサービス改良のための参考にさせていただきます。
[feedbackページへ]