詳解 iOS SDK 第4版

―ワンランク上のiPhone/iPadプログラミング

[cover photo]
TOPICS
Mobile
発行年月日
PRINT LENGTH
752
ISBN
978-4-87311-675-4
原書
Programming iOS 7, 4th Edition
FORMAT
PDF EPUB
Ebook
5,060円
Ebookを購入する

iOSプログラミングを網羅的に解説する徹底ガイド。「第I部 ビュー」「第II部 インタフェース」「第III部 フレームワーク」「第IV部 その他の話題」の四部構成で解説します。第I部では、iOSアプリのUI上に表示される要素について学びます。第II部では、Cocoaフレームワークが提供する各種の機能を持った特定用途のビューについて学びます。第III部では、UIKitやFoundation以外の重要なフレームワークについて学びます。第IV部では、ファイル、ネットワーク、スレッド、アンドゥ機能など、その他の雑多な話題を扱います。iOSアプリ開発を極めたい中級以上のiOSプログラマー対象。プログラミングのお供に机や書棚に置くだけで開運・魔除けの効果もあるバイブル、待望の刊行!

翻訳者によるサポートページ

目次

まえがき

第Ⅰ部 ビュー

1章 ビュー
    1.1 ウィンドウ
    1.2 ビューを使った実験
    1.3 サブビューとスーパービュー
    1.4 可視性と不透明度
    1.5 フレーム
    1.6 境界と中央
    1.7 変換
    1.8 レイアウト
        1.8.1 自動サイズ調整
        1.8.2 自動レイアウト
        1.8.3 制約
        1.8.4 自動サイズ調整の制約
        1.8.5 nibにおける制約
        1.8.6 レイアウトイベントの順序
        1.8.7 自動レイアウトとビューの変換

2章 描画
    2.1 UIImageとUIImageView
    2.2 グラフィックスコンテキスト
    2.3 UIImageの描画
    2.4 CGImageの描画
    2.5 CIFilterとCIImage
    2.6 UIViewの描画
    2.7 グラフィックスコンテキストの設定
    2.8 パスと描画
    2.9 クリッピング
    2.10 グラデーション
    2.11 色とパターン
    2.12 グラフィックスコンテキストの変換
    2.13 シャドウ
    2.14 ポイントとピクセル
    2.15 コンテンツモード

3章 レイヤ
    3.1 ビューとレイヤ
    3.2 レイヤとサブレイヤ
        3.2.1 レイヤ階層の操作
        3.2.2 サブレイヤの配置
        3.2.3 CAScrollLayer
        3.2.4 サブレイヤのレイアウト
    3.3 レイヤの描画
        3.3.1 コンテンツのリサイズと配置
        3.3.2 自分自身を描画するレイヤ
    3.4 変換
        3.4.1 深さ
    3.5 シャドウ、枠線、その他
    3.6 レイヤとキー値コーディング

4章 アニメーション
    4.1 描画、アニメーション、スレッド
    4.2 UIImageViewとUIImageによるアニメーション
    4.3 ビューアニメーション
        4.3.1 アニメーションブロック
        4.3.2 アニメーションブロックの変更
        4.3.3 トランジションアニメーション
        4.3.4 ブロックベースのビューアニメーション
    4.4 暗黙的なレイヤアニメーション
        4.4.1 アニメーショントランザクション
        4.4.2 メディアタイミング関数
    4.5 Core Animation
        4.5.1 CABasicAnimationクラスとその継承
        4.5.2 CABasicAnimationの使用
    4.6 キーフレームアニメーション
        4.6.1 プロパティをアニメーション可能にする
        4.6.2 アニメーションのグループ化
        4.6.3 トランジション
        4.6.4 アニメーションリスト
    4.7 アクション
        4.7.1 アクションとは何か
        4.7.2 アクション検索
        4.7.3 アクション検索にフックを入れる
        4.7.4 プロパティ以外のアクション
    4.8 エミッタレイヤ

5章 タッチ
    5.1 タッチイベントとビュー
    5.2 タッチの受信
    5.3 タッチの制限
    5.4 タッチの解釈
    5.5 ジェスチャレコグナイザ
        5.5.1 ジェスチャレコグナイザクラス
        5.5.2 複数のジェスチャレコグナイザ
        5.5.3 ジェスチャレコグナイザのサブクラス化
        5.5.4 ジェスチャレコグナイザのデリゲート
    5.6 タッチの配信
        5.6.1 ヒットテスト
        5.6.2 最初のタッチイベントの配信
        5.6.3 ジェスチャレコグナイザとビュー
        5.6.4 タッチの排除ロジック
        5.6.5 認識
        5.6.6 タッチとレスポンダチェーン

第Ⅱ部 インタフェース

6章 ビューコントローラ
    6.1 ビューコントローラ階層
    6.2 ビューコントローラとビューの生成
        6.2.1 手作業で作成するビュー
        6.2.2 汎用ビューの自動生成
        6.2.3 別のnibからのビューの生成
        6.2.4 ビューコントローラのnibによるインスタンス化
        6.2.5 ビューコントローラのストーリーボードによるインスタンス化
    6.3 回転
        6.3.1 回転イベント
        6.3.2 最初の向き
    6.4 ビューコントローラの提示
        6.4.1 提示されるビューのアニメーション
        6.4.2 提示のスタイル
        6.4.3 被提示側のビューの回転
    6.5 タブバーコントローラ
        6.5.1 タブバーアイテム
        6.5.2 タブバーコントローラの設定
        6.5.3 ナビゲーションコントローラ
        6.5.4 バーボタンアイテム
        6.5.5 ナビゲーションアイテム
        6.5.6 ツールバーアイテム
        6.5.7 ナビゲーションコントローラの設定変更
    6.6 ページビューコントローラ
    6.7 コンテナビューコントローラ
    6.8 ストーリーボード
    6.9 ビューコントローラの生成と破棄に関するイベント
    6.10 ビューコントローラとメモリ管理

7章 スクロールビュー
    7.1 スクロールビューの生成
    7.2 スクロール
        7.2.1 ページング
        7.2.2 タイリング
    7.3 ズーム
        7.3.1 プログラムによるズーム
        7.3.2 拡大と詳細化
    7.4 スクロールビューのデリゲート
    7.5 スクロールビューとタッチ
    7.6 スクロールビューの実行速度

8章 テーブルビュー
    8.1 テーブルビューのセル
        8.1.1 組み込みのセルスタイル
        8.1.2 カスタムセル
    8.2 テーブルビューのデータ
        8.2.1 三つの質問
        8.2.2 テーブルビューのセクション
        8.2.3 テーブルビューのデータ更新
        8.2.4 行高の変化
    8.3 テーブルビューでの選択
    8.4 テーブルビューのスクロールとレイアウト
    8.5 テーブルビューの検索
    8.6 テーブルビューの編集
        8.6.1 テーブルアイテムの削除
        8.6.2 テーブルアイテムの編集可能なコンテンツ
        8.6.3 テーブルアイテムの挿入
        8.6.4 テーブルアイテムの順序変更
        8.6.5 動的なテーブルコンテンツ
    8.7 テーブルビューのメニュー

9章 ポップオーバーとスプリットビュー
    9.1 ポップオーバーの設定と表示
    9.2 ポップオーバーの管理
    9.3 ポップオーバーの消去
    9.4 ポップオーバーセグエ
    9.5 自動ポップオーバー
    9.6 スプリットビュー

10章 文字列
    10.1 UILabel
    10.2 UITextField
        10.2.1 編集とキーボード
        10.2.2 キーボードの設定変更
        10.2.3 テキストフィールドのデリゲートメッセージとコントロールイベント
    メッセージ
        10.2.4 テキストフィールドのメニュー
    10.3 UITextView
    10.4 Core Text

11章 ウェブビュー
    11.1 コンテンツの読み込み
        11.1.1 ウェブユーコンテンツのロード
    11.2 ウェブビューのコンテンツのデザイン
    11.3 ウェブビューのページ化
    11.4 ウェブビューの状態の復元
    11.5 ウェブビューとのやり取り

12章 コントロールおよびその他のビュー
    12.1 UIActivityIndicatorView
    12.2 UIProgressView
    12.3 UIPickerView
    12.4 UISearchBar
    12.5 UIControl
        12.5.1 UISwitch
        12.5.2 UIStepper
        12.5.3 UIPageControl
        12.5.4 UIDatePicker
        12.5.5 UISlider
        12.5.6 UISegmentedControl
        12.5.7 UIButton
        12.5.8 カスタムコントロール
    12.6 バー
        12.6.1 UINavigationBar
        12.6.2 UIToolbar
        12.6.3 UITabBar
    12.7 アピアランスプロキシ

13章 モーダルダイアログ
    13.1 アラートビュー
    13.2 アクションシート
    13.3 ダイアログの代替手段
    13.4 ローカルノーティフィケーション
    13.5 アクティビティビュー

第Ⅲ部 フレームワーク

14章 オーディオ
    14.1 システムサウンド
    14.2 オーディオセッション
        14.2.1 割り込み
        14.2.2 経路の変更
    14.3 オーディオプレイヤー
    14.4 サウンドのリモートコントロール
    14.5 バックグラウンドでの再生
    14.6 オーディオ関連のその他の事項

15章 ビデオ
    15.1 MPMoviePlayerController
    15.2 MPMoviePlayerViewController
    15.3 UIVideoEditorController
    15.4 AV Foundationの基本
        15.4.1 AV Foundationの構成要素
        15.4.2 ムービーの表示
        15.4.3 ビデオとアニメーションの同期
        15.4.4 メディアの作成
        15.4.5 AV Foundationのその他の機能

16章 ミュージックライブラリ
    16.1 ミュージックライブラリの概要
    16.2 ミュージックプレイヤー
    16.3 ミュージックピッカー

17章 フォトライブラリと画像のキャプチャ
    17.1 UIImagePickerController
        17.1.1 フォトライブラリのアイテムの選択
        17.1.2 カメラの使用
    17.2 AV Foundationによる画像キャプチャ
    17.3 Assets Libraryフレームワーク

18章 アドレスブック
    18.1 アドレスブックデータベース
    18.2 アドレスブック用ユーザーインタフェース
        18.2.1 ABPeoplePickerNavigationController
        18.2.2 ABPersonViewController
        18.2.3 ABNewPersonViewController
        18.2.4 ABUnknownPersonViewController

19章 カレンダー
    19.1 カレンダーデータベース
    19.2 カレンダーインタフェース
        19.2.1 EKEventViewController
        19.2.2 EKEventEditViewController
        19.2.3 EKCalendarChooser

20章 メールとSMS
    20.1 メールメッセージ
    20.2 テキストメッセージ
    20.3 Twitterメッセージの投稿

21章 地図
    21.1 地図の表示
    21.2 注釈
    21.3 オーバーレイ

22章 センサ
    22.1 位置情報
        22.1.1 Map KitとCore Location
        22.1.2 ジオコーディング
        22.1.3 ロケーションマネージャ
    22.2 方位(ヘディング情報)
    22.3 加速度と姿勢
        22.3.1 シェイクイベント
        22.3.2 生の加速度データ
        22.3.3 ジャイロスコープ

第Ⅳ部 その他の話題

23章 永続性記憶
    23.1 サンドボックス
    23.2 基本的なファイル操作
    23.3 ファイルの保存と読み込み
    23.4 ユーザーデフォルト
    23.5 ファイル共有
    23.6 ドキュメントタイプ
    23.7 ドキュメントアーキテクチャ
    23.8 XML
    23.9 SQLite
    23.10 画像ファイルフォーマット

24章 基本的なネットワーク機能
    24.1 HTTPリクエスト
    24.2 Bonjour(ボンジュール)
    24.3 プッシュノーティフィケーション
    24.4 基本的なネットワーク機能を超えて

25章 スレッド
    25.1 メインスレッド
    25.2 マルチスレッドを使うのが難しい理由
    25.3 スレッドを利用する3通りの方法
        25.3.1 直接的にスレッドを扱う方法
        25.3.2 NSOperation
        25.3.3 グランドセントラルディスパッチ
    25.4 スレッドとアプリのバックグラウンド移行

26章 アンドゥ
    26.1 アンドゥマネージャ
    26.2 アンドゥインタフェース
    26.3 アンドゥアーキテクチャ

付録A アプリケーションのライフタイムイベント
    A.1 典型的なシナリオ
        A.1.1 アプリの起動
        A.1.2 ホームボタンをタップ
        A.1.3 バックグラウンドにあるアプリをフロントに移動
        A.1.4 ホームボタンをダブルタップ
        A.1.5 アプリスイッチャでほかのアプリを選択
        A.1.6 アプリスイッチャでアプリを選択
        A.1.7 コントロールセンターあるいは通知センターを表示
        A.1.8 コントロールセンターあるいは通知センターを消去
        A.1.9 ノーティフィケーションのアラートが他のアプリから現れた場合
        A.1.10 ノーティフィケーションアラートからほかのアプリが起動された場合
        A.1.11 画面がロックされた
        A.1.12 画面のロックが解除された
        A.1.13 画面ロックボタンを長押し
        A.1.14 シャットダウンをキャンセル
        A.1.15 シャットダウンを実行

訳者あとがき

索引