magazine.gif 開発のプロが教えるSwift標準ガイドブック

はじめに

Chapter01 Swiftの概要

  • 1-1 Swiftとは
    • 1-1-1 Swiftの特徴
    • 1-1-2 開発者への配慮
    • 1-1-3 公式資料
  • 1-2 開発環境
    • 1-2-1 Xcodeのインストール
    • 1-2-2 プロジェクトの作成
    • 1-2-3 画面構成
  • 1-3 PlaygroundとREPL
    • 1-3-1 Playground
    • 1-3-2 REPL

Chapter02 基本文法

  • 2-1 基本文法と変数
    • 2-1-1 基本文法
    • 2-1-2 変数と型
    • 2-1-3 型エイリアス
    • 2-1-4 タプル
    • 2-1-5 Optional型
    • 2-1-6 アクセスコントロール
    • 2-1-7 コンソール出力
    • 2-1-8アサーション
    • コラム:不変性の仕組みと考え方
  • 2-2 数値リテラルと演算子
    • 2-2-1 数値リテラル
    • 2-2-2 一般的な演算子
    • 2-2-3 Swift固有の演算子
    • 2-2-4 優先順位・結合律
    • 2-2-5 カスタム演算子・演算子オーバーロード
    • コラム:LiteralConvertibleとは
  • 2-3 制御構文
    • 2-3-1 判定による制御
    • 2-3-2 ループ構文
  • 2-4 文字列操作
    • 2-4-1 文字列リテラルで使用できる特殊文字
    • 2-4-2 文字列の結合
    • 2-4-3 文字列の比較
    • 2-4-4 同一文字の繰り返し
    • 2-4-5 空の変数判定
    • 2-4-6 文字数の取得
    • 2-4-7 先頭・末尾の文字列比較
    • 2-4-8 アルファベット変換
    • 2-4-9 数値型への変換
    • 2-4-10 UTFコードの取得
    • コラム:最適化オプション
  • 2-5 区間・配列・辞書
    • 2-5-1 区間(Range、ClosedInterval、HalfOpenInterval)
    • 2-5-2 配列(Array)
    • 2-5-3 辞書(Dictionary)
    • 2-5-4 構造体による範囲指定

Chapter03 関数とクラス

  • 3-1 関数定義と呼び出し
    • 3-1-1 基本的な関数定義と呼び出し
    • 3-1-2 外部引数
    • 3-1-3 デフォルト引数値
    • 3-1-4 可変長引数
    • 3-1-5 戻り値
    • 3-1-6 参照渡し引数
    • 3-1-7 ネスト関数
    • コラム:型の型
  • 3-2 クロージャ
    • 3-2-1 関数の型
    • 3-2-2 基本的なクロージャ定義と特徴
    • 3-2-3 クロージャの省略形
    • 3-2-4 値のキャプチャ
  • 3-3 クラス・構造体・列挙体
    • 3-3-1 クラスと構造体
    • 3-3-2 クラスと構造体の文法
    • 3-3-3 プロパティ
    • 3-3-4 メソッド
    • 3-3-5 添字
    • 3-3-6 継承
    • 3-3-7 イニシャライザ・デイニシャライザ
    • 3-3-8 アクセスコントロール
    • 3-3-9 循環参照の対策
    • 3-3-10 列挙体
  • 3-4 プロトコルとエクステンション
    • 3-4-1 プロトコル
    • 3-4-2 エクステンション
    • コラム:構造体の中のクラス
  • 3-5 ジェネリック
    • 3-5-1 ジェネリックとは?
    • 3-5-2 ジェネリック関数
    • 3-5-3 ジェネリック型
    • 3-5-4 ジェネリックの型制約
    • 3-5-5 関連型
    • 3-5-6 ジェネリックでのwhere文
    • コラム:継承したクラスにおけるメソッド使用上の注意
  • 3-6 カリー化
    • 3-6-1 カリー化の定義
    • 3-6-2 Swiftでのカリー化
  • 3-7 switchでのマッチング
    • 3-7-1 パターンマッチング
    • 3-7-2 switchのパターンマッチングの正体

Chapter04 オプショナル型

  • 4-1 Objective-Cにおけるnil
    • 4-1-1 nilのメリット・デメリット
    • コラム:空のコレクション定義
  • 4-2 Optional型
    • 4-2-1 Optional型とは
    • 4-2-2 nilの代入
    • 4-2-3 Optional型への代入
    • 4-2-4 if文とOptional型のアンラップ
    • 4-2-5 Optional Binding
    • 4-2-6 ??演算子
  • 4-3 Implicitly Unwrapped Optional型
    • 4-3-1 Implicitly Unwrapped Optional型とは
    • 4-3-2 Implicitly Unwrapped Optional型の利用例
  • 4-4 Optional Chaining
    • 4-4-1 Optional Chainingとは
    • 4-4-2 Optional Chainingの利用
    • 4-4-3 Optional Chainingを用いた代入操作
    • 4-4-4 VoidとOptional Chaining
    • 4-4-5 プロトコルの任意実装なメソッド実行
    • 4-4-6 nilの安全な処理
    • コラム:nilはどんな値よりも小さいと判断される

Chapter05 標準ライブラリの利用

  • 5-1 Foundation
    • 5-1-1 Objective-C APIの呼び出し
    • 5-1-2 整数(Int・UInt・NSNumber)
    • 5-1-3 文字列(StringとNSString)
    • 5-1-4 [UInt8]とNSData
    • 5-1-5 配列と辞書(Array・DictionaryとNSArray・NSDicitonary)
    • 5-1-6 ポインタ
    • 5-1-7 ポインタへの値の返却
    • 5-1-8 クロージャとブロック
  • 5-2 UIKit
    • 5-2-1 UIView
    • 5-2-2 UIViewController
    • 5-2-3 UIAlertController
    • 5-2-4 UIPrinterPickerController
    • 5-2-5 delegate、dataSource
    • 5-2-6 Selector
    • 5-2-7 StoryboardとIBOutlet、IBAction
    • コラム:NSMutableArrayによる配列操作
  • 5-3 KVCとKVO
    • 5-3-1 KVC(Key-Value Coding)
    • 5-3-2 KVO(Key-Value Observing)
  • 5-4 Core Data
    • 5-4-1 NSManagedObjectサブクラスの作成
    • 5-4-2 NSManagedObjectサブクラスのプロパティ

Chapter06 予約語とアトリビュート

  • 6-1 予約語
    • 6-1-1 予約語を知る
    • 6-1-2 予約語を識別子として使う
    • コラム:Swiftのメソッド呼び出し速度
  • 6-2 アトリビュート
    • 6-2-1 アトリビュートの文法
    • 6-2-2 宣言と型の属性
    • 6-2-3 Interface Builder用の属性
    • 6-2-4 UnDocumented

Chapter07 Objective-Cとの相互利用

  • 7-1 SwiftからObjective-Cのコードを利用
    • 7-1-1 Objective-Cのコードを利用
    • 7-1-2 Objective-Cを利用する上での注意点
  • 7-2 Objective-CからSwiftのコードを利用
    • 7-2-1 Objective-CからSwiftのコードを利用
    • 7-2-2 Swiftを利用する上での注意点
  • 7-3 Swiftへの移行
    • 7-3-1 書き換えるファイルと削除するファイル
    • 7-3-2 プリプロセッサ
    • 7-3-3 インポート
    • 7-3-4 UIApplicationMain
    • 7-3-5 クラスとエクステンション、プロトコル
    • 7-3-6 プロパティ
    • 7-3-7 変数と型
    • 7-3-8 列挙体
    • 7-3-9 イニシャライザ
    • 7-3-10 セッター・ゲッター
    • 7-3-11 メソッド、クロージャ
    • コラム:入れ子のOptional型とUIApplicationDelegate
  • 7-4 Swiftへの移行(実践編)
    • 7-4-1 サンプルプロジェクト
    • 7-4-2 利用するフレームワーク
    • 7-4-3 オブジェクト配置と関連付け
    • 7-4-4 ライブビュー用クラスの作成
    • 7-4-5 キャプチャセッションのセットアップ
    • 7-4-6 ムービー撮影
    • 7-4-7 静止画撮影
    • 7-4-8 SNS投稿
    • コラム:コマンドラインでの自作モジュールの作成と利用

Chapter08 実践と応用

  • 8-1 テスト
    • 8-1-1 Swiftでの単体テスト
    • 8-1-2 XCTest
    • 8-1-3 Quick
    • コラム:低レベル配列処理で速度を稼ぐ
  • 8-2 ブリッジによる拡張
    • 8-2-1 ブリッジする言語の選定基準
    • 8-2-2 スタティックライブラリの準備
    • 8-2-3 プロジェクト作成
    • 8-2-4 言語へのアクセス方法を探る
    • 8-2-5 ブリッジコード
    • 8-2-6 Swiftからのアクセス
    • コラム:デバッグ出力に便利な特殊リテラル
  • 8-3 ライブラリ紹介
    • 8-3-1 swift-json
    • 8-3-2 Alamofire
    • 8-3-3 EmitterKit
    • 8-3-4 Surge
    • 8-3-5 GCDKit
  • 8-4 デザインパターン
    • 8-4-1 デザインパターンの種類
    • 8-4-2 Factory Method
    • 8-4-3 Prototype
    • 8-4-4 Singleton
    • 8-4-5 Adapter
    • 8-4-6 Decorator
    • 8-4-7 Facade
    • 8-4-8 Strategy

索引
謝辞
著者プロフィール