magazine.gif プロの力が身につく iPhone/iPadアプリケーション開発の教科書 Swift対応版

はじめに

Chapter0 序章

  • 0-1 本書の想定読者など
    • 0-1-1 プログラミング未経験者への推薦参考書
    • 0-1-2 オブジェクト指向プログラミング未経験の方へ
    • 0-1-3 Swiftをはじめて使う人へ
    • 0-1-4 本書で使用する図について
  • 0-2 本書の構成
  • 0-3 はじめる前に必要なものとサンプルアプリについて
    • 0-3-1 Mac OS X Mavericks以上のOSがインストールされたMac
    • 0-3-2 Xcode 6.1以上の開発環境
    • 0-3-3 iOS Developer Programの登録
    • 0-3-4 各章のサンプルアプリ
    • 0-3-5 サンプルアプリのダウンロード

Chapter1 Swiftとオブジェクト指向プログラミング

  • 1-1 Swift & Objective-C入門
    • 1-1-1 オブジェクト指向言語の種類
    • 1-1-2 Objective-Cとその特徴
    • 1-1-3 Swift言語とその特徴
    • 1-1-4 SwiftとObjective-C、どちらを学習すべきか
    • 1-1-5 ファイル構成
    • 1-1-6 コメント
    • 1-1-7 変数
    • 1-1-8 基本データ型
    • 1-1-9 Optional型(Swiftのみ)
    • 1-1-10 タプル(Swiftのみ)
    • 1-1-11 関数とクロージャ
    • 1-1-12 制御構造
    • 1-1-13 ログ出力
    • 1-1-14 クラスやライブラリのインポート
    • 1-1-15 クラス
    • 1-1-16 列挙型
    • 1-1-17 プロトコル(インターフェース)
    • 1-1-18 カテゴリまたはエクステンション
    • 1-1-19 ジェネリクス(Swiftのみ)
    • 1-1-20 名前空間
  • 1-2 クラスとインターフェース
    • 1-2-1 クラス
    • 1-2-2 インターフェース
    • 1-2-3 クラスとインターフェースの違い
    • コラム クラス図とオブジェクト図
  • 1-3 オブジェクト指向プログラミングのコツ
    • 1-3-1 クラスとオブジェクトの違いを理解することがコツ
    • 1-3-2 プログラム実行時のメモリの状態
    • 1-3-3 クラス定義とメモリの関係
    • 1-3-4 構造体のオブジェクトがどのようにメモリに展開されるのか
    • 1-3-5 列挙型のオブジェクトがどのようにメモリに展開されるのか
    • 1-3-6 クラスは参照型、構造体と列挙型は値型
  • 1-4 メモリ管理とオブジェクト指向
    • 1-4-1 メモリ管理ってなに?
    • 1-4-2 参照カウント方式
    • 1-4-3 オーナーシップポリシー
    • 1-4-4 Automatic Reference Counting
    • コラム Xcode入門

Chapter2 画面開発とイベント駆動プログラミング

  • 2-1 アプリの見た目を作る ~UIパーツの種類とその使い方~
    • 2-1-1 どのようにアイデアを形にしていくか
    • 2-1-2 アプリ開発の3大要素
    • 2-1-3 iOS上でどんなアプリを開発できるのか?
    • 2-1-4 アプリの画面と画面遷移
    • 2-1-5 【サンプル①】2つの画面を行き来するアプリの作成
    • 2-1-6 ビューとUIViewクラス
    • コラム バー専用のUI部品クラス
      • 2-1-6-4 【サンプル②】プログラムからビューを追加するアプリの作成
    • コラム CGRect構造体
    • 2-1-7 ビューコントローラとUIViewControllerクラス
      • 2-1-7-4 【サンプル③】ストーリーボードを使わずに画面を遷移させるアプリの作成
    • 2-1-8 ビューとビューコントローラを組み合わせる
  • 2-2 イベント駆動プログラミング入門
    • 2-2-1 イベント駆動とは
    • 2-2-2 イベントはUIApplicationオブジェクトで制御されている
    • 2-2-3 イベントの種類
    • 2-2-4 ライフサイクルイベント
    • 2-2-5 ライフサイクルイベントの実装
    • 2-2-6 ユーザアクションイベント
    • 2-2-7 【サンプル④】ユーザアクションイベントを使ったアプリの作成
  • 2-3 テーブルビューとコレクションビュー
    • 2-3-1 テーブルビューとUITableViewクラス
    • 2-3-2 テーブルビュー関連のクラス
    • 2-3-3 【サンプル⑤】テーブルビューを使ったアプリの作成
    • 2-3-4 コレクションビューとUICollectionViewクラス
    • 2-3-5 コレクションビュー関連のクラス
    • 2-3-6 【サンプル⑥】コレクションビューを使ったアプリの作成
    • 2-3-7 ナビゲーションを使った画面遷移
      • 2-3-7-2 【サンプル⑦】ナビゲーションを使ったアプリの作成
    • コラム IBOutletとIBAction

Chapter 3 データを活用したアプリの作り方

  • 3-1 データを扱わないアプリは存在しない ~データ設計のポイント~
    • 3-1-1 そもそもデータってなに?
    • 3-1-2 「データ」と「情報」の違いを知る
    • 3-1-3 アプリ開発の3大要素とデータ設計
    • 3-1-4 データはどこに記憶するのか
    • 3-1-5 メモリ/FD/iCloud特徴を比較する
    • コラム AnyObject型とAny型
  • 3-2 メモリ上にデータを保存する
    • 3-2-1 メモリの構造を理解する
    • 3-2-2 アプリ領域にデータを保存する
      • 3-2-2-1 【サンプル⑧】メモリ上のアプリ領域にデータを保存するアプリの作成
    • 3-2-3 共有領域にデータを保存する
      • 3-2-3-1 【サンプル⑨】メモリ上の共有領域にデータを保存するアプリの作成
    • 3-3 データをフラッシュドライブに保存する ~データを永続化するポイント~
      • 3-3-1 データの永続化とフラッシュドライブ
      • 3-3-2 フラッシュドライブを構成する3つの領域
      • 3-3-3 アプリ固有領域にデータを永続化する方法
      • 3-3-4 データを保存できる場所
      • 3-3-5 データ保存場所についてのガイドライン
      • 3-3-6 オブジェクトをシリアライズしてファイルに保存する
        • 3-3-6-2 【サンプル⑩】NSKeyedArchiverを使ってデータをファイルに保存するアプリの作成
        • 3-3-6-5 【サンプル⑪】次作クラスのオブジェクトをアーカイブしてファイルに保存するアプリの作成
      • 3-3-7 プロパティリストを使ってデータを保存する
        • 3-3-7-3 【サンプル⑫】プロパティリスト形式でデータを保存するアプリの作成
        • 3-3-7-5 【サンプル⑬】プロパティリストに自作クラスのオブジェクトを保存するアプリの作成
        • 3-3-7-7 【サンプル⑭】プロパティリストのデータをプロジェクトに組み込んで使うアプリの作成
      • 3-3-8 NSUserDefaultsを使ってデータを保存する
        • 3-3-8-8 【サンプル⑮】NSUserDefaultsを使ってデータを保存するアプリの作成
        • 3-3-8-10 【サンプル⑯】NSUserDefaultsに自作クラスのオブジェクトを保存するアプリの作成
      • 3-3-9 CoreDataを使ってデータを保存する
        • 3-3-9-14 【サンプル⑰】Core Dataを使ったアプリの作成
    • 3-4 複数端末で同じデータを共有する ~iCloudプログラミング入門~
      • 3-4-1 iCloudってなに?
      • 3-4-2 iCloudを使うとなにがうれしいのか?
      • 3-4-3 iCloudを使ってデータを共有する方法
      • 3-4-4 iCloudを使うための設定
      • 3-4-5 iCloud Key-value storageを使う方法
        • 3-4-5-6 【サンプル⑱】NSUbiquitousKeyValueStoreを使ってデータを保存するアプリの作成
      • 3-4-6 iCloud Core Data storageを使う方法
        • 3-4-6-3 【サンプル⑲】アドレス帳アプリをiCloudに対応させる
      • コラム UIデザインをする上で役に立つ3冊の本

Chapter4 応用編

  • 4-1 iOSアプリの構造がどのようになっているか紐解いてみる
    • 4-1-1 いちばん単純なアプリの構造
    • 4-1-2 iOS SDKから提供されているクラスの説明
    • 4-1-3 開発者が作成するクラス
    • 4-1-4 アプリ起動時にオブジェクトの状態はどうなっているのか
    • 4-1-5 シングルビューアプリケーションにラベルとボタンを追加してみる
    • 4-1-6 シングルビューアプリケーションに画面を1つ追加してみる
    • 4-1-7 ストーリーボードとアプリの関係
  • 4-2 マルチスレッドプログラミング入門
    • 4-2-1 マルチスレッドプログラミングの利点
    • 4-2-2 マルチスレッドプログラミングを実現する仕組み
    • 4-2-3 NSOperationQueueとNSOperation
    • 4-2-4 NSOperationに処理を実装する
    • 4-2-5 NSOperationQueueを使って処理を実行する
    • 4-2-6 処理の入れ子実行
    • 4-2-7 addOperationWithBlockメソッド
    • 4-2-8 Key-value Observingを使ったNSOperationの実装
    • 4-2-9 【サンプル⑳】NSOperationを使ってHTTP通信をするアプリの作成
  • 4-3 In-App Purchaseを使ったアイテム課金プログラミング
    • 4-3-1 販売できるアイテムは5種類
    • 4-3-2 StoreKitフレームワークの概要
    • 4-3-3 アイテム購入の流れ
    • 4-3-4 アプリ内課金が使えるかチェックする
    • 4-3-5 アイテム情報の取得と購入処理の開始
    • 4-3-6 アイテム購入から購入処理の終了
    • 4-3-7 アイテムのリストア
    • 4-3-8 サンドボックス環境で課金のテストをする
    • 4-3-9 本番環境で課金のテストをする
    • 4-3-10 アプリ内課金(In-App Purchase)で失敗しないためのポイント
    • 4-3-11 【サンプル㉑】In-App Purchaseを使ったアプリの作成

索引