書籍概要

ポケットリファレンス

Swiftポケットリファレンス

著者
発売日
更新日

概要

ロングセラーシリーズ・ポケットリファレンスに話題のSwiftが新登場。
「逆引き形式で目的からすぐ探せる」「サンプルコードを見ながら具体的な実装のイメージがつかめる」という特徴で,困ったときにすぐに役立ちます。
iOSのフレームワークの解説から全く新しい操作性を実現する3D Touchまで網羅。iPhone/iPadアプリ開発にも,Swift学習にも便利な1冊です。

こんな方におすすめ

  • iOSアプリ開発者

著者から一言

初代iPhoneが発売されて8年が過ぎようとしています。iPhoneの斬新なユーザーインターフェースがスマートフォンやアプリの普及に貢献したことは言うまでもありません。もはやスマートフォンでアプリを使うことは日常生活の一部と言ってもいいほどです。2015年には,iPhoneの新端末であるiPhone 6s/iPhone 6sPlusの他にも,腕時計型のApple Watch/ノートパソコンサイズのiPad ProといったiOS搭載端末が新しく発売されました。iOSをベースに動作する端末が,スマートフォンやタブレットのみならず,ウェアラブル端末の行く末をリードしていると言っても過言ではありません。
その一方で,これだけiOS搭載端末が普及し,アプリ開発者が増えているにも関わらず,「具体的なアプリの開発手法がわからない」「iOSや端末のリニューアルが早すぎて技術的についていけない」「開発言語がObjective-CからSwiftに替わって覚えることが多すぎる」などの声もよく聞かれます。また,これから発売が期待されるAppleのウェアラブル端末に関しても,「今からアプリ開発を始めてもキャッチアップしていけるか不安」という開発者も多いと聞きます。
本書では,iOSアプリ開発においてベースとなる基本的な項目や,将来的なアップデートを踏まえても必要であろう事柄について整理し,すぐに動作を確認できるサンプルとともに説明しています。開発ツールXcodeやAppleの技術ドキュメントに関しても,紙面の許す限り触れるようにしています。一通りアプリ開発ができる方はもちろん,これからアプリを作ってみようという方にも第一歩となるように配慮した構成を心掛けています。 本書で紹介した項目の1つ1つが,読者の皆様が開発するアプリに役立つことを願ってやみません。

なお,本書に関するサポート情報を「サーバサイド技術の学び舎・WINGS」で公開しています。本書で使用しているサンプルアプリケーションのダウンロードをはじめ,Q&A掲示板,FAQ情報,オンライン公開記事など,タイムリーな情報を充実した内容でお送りしていますので,併せて利用ください。

http://www/wings.msn.to/

最後に,技術評論社の編集諸氏,執筆の機会を与えてくださいましたWINGSプロジェクトの山田祥寛様,山田奈美様,関係者御一同様に深く感謝を申し上げます。

目次

Chapter 1 iOSアプリ開発の基本

  • 概要
  • 開発に必要な環境
  • Xcodeの基本的な使い方

Chapter 2 Swiftの基本的な使い方

  • Swiftとは
  • データ型

データ型と変数

  • 変数/定数を宣言する
  • タプルを利用する
  • nilを許容して変数を宣言する
  • ジェネリックスで変数を宣言する
  • 型を変換する
  • 変数を出力する
  • 演算子

制御文

  • 処理を分岐する
  • 複数の条件で処理を分岐する
  • 処理を繰り返す
  • 1度実行した後に処理を繰り返す
  • 上限を決めて処理を繰り返す
  • コレクション内で処理を繰り返す
  • 処理を抜け出す
  • 処理をスキップする

クラス

  • クラスを定義する
  • モジュールをインポートする
  • プロパティを定義する
  • メソッドを定義する
  • 可変長引数を利用したメソッドを定義する
  • クラスメソッドを定義する
  • インスタンスを生成する/初期化する/メモリを開放する
  • メソッドを実行する
  • スーパークラスのメソッドを実行する
  • エクステンションを利用する
  • クロージャを利用する
  • コメントを記述する

例外処理

  • 例外時のエラーを投げるメソッドを定義する
  • 例外処理を定義する

構造体と列挙型

  • 構造体を定義する
  • 列挙型を定義する
  • 列挙型の値を参照する/値から列挙型にアクセスする

文字列

  • 文字列を利用する
  • 文字列を置換する
  • 文字列を削除する

配列

  • 配列を利用する
  • 要素の数を取得する
  • 配列に要素を追加する
  • 配列から値を削除する
  • 配列をソートする

辞書

  • 辞書を利用する
  • 要素の数を取得する
  • 全てのキー/値を取得する
  • 辞書から要素を削除する

バイナリデータ

  • バイナリデータを扱う
  • データをファイルへ出力する
  • データを追加する

日時

  • 日時を取得する
  • 日時のフォーマットを指定する
  • ローカル時間を取得する
  • 日付を比較する
  • 時間を加算する

Chapter 3 画面を作成する

  • 概要

アプリ全体の制御

  • アプリケーションを初期化する
  • アプリの状態が変わった際の処理を行う
  • windowを初期化/利用する

汎用的な画面

  • ビューコントローラーを利用する
  • 画面呼び出しの際の処理を指定する
  • 画面やUIを追加/削除する
  • モーダルウィンドウを利用する
  • 画面のタイトルを指定する
  • コンテナビューコントローラーを利用する

ナビゲーション

  • ナビゲーションを利用する
  • 次の画面へ遷移する
  • ナビゲーションバー/ツールバーを表示/非表示する
  • バックボタンを非表示にする

テーブル

  • テーブルビューコントローラーを利用する
  • テーブルのセルを表示する
  • テーブルのセクションを利用する
  • テーブルのセルが選択された際の処理を行う
  • テーブルを編集可能にする
  • テーブルのセルを編集可能にする
  • テーブルの編集形式を指定する
  • テーブルを編集する
  • テーブルのセルを挿入/削除する
  • テーブルのデータを移動する

タブ

  • タブバーを利用する
  • 選択された画面を取得する
  • タブを装飾する

書籍風のページ

  • 書籍風のページを利用する
  • ページを指定する
  • 次/前のページを指定する
  • ページめくりの詳細を指定する

画面の分割

  • 画面を分割する
  • 左側の画面を開閉するボタンを表示する

ポップオーバー

  • ポップオーバーを表示する
  • ポップオーバーの形状を指定する
  • ポップオーバーのサイズを指定する
  • ポップオーバーを終了しないUIを指定するr
  • ポップオーバーを閉じる

Chapter 4 コンテンツを表示する

  • 概要

汎用的なビュー

  • ビューを表示する
  • 子要素の自動調整を行う
  • 色/透明度を指定する
  • 描画をカスタマイズする
  • ビューを変形する
  • アニメーションを実装する
  • ビューの外観を変える
  • モーションエフェクトを利用する
  • nibァイルの内容を取得する

ラベル

  • ラベルを表示する
  • ラベルに文字列を合わせる
  • 改行/文字の切り捨てを指定する
  • 横揃え/縦揃えを指定する
  • テキストに影をつける

画像

  • 画像を表示する
  • 画像のサイズを調整する
  • アニメーションを表示する

テキスト

  • テキストを表示する
  • テキストを編集する
  • テキスト編集時の処理を指定する

スクロールビュー

  • スクロールビューを表示する
  • スクロールの詳細を指定する
  • スクロール時の処理を指定する

テーブル

  • テーブルを表示する
  • セルの種類を指定する
  • セルのアクセサリを指定する
  • セル内にビューを配置する

コレクション

  • コレクションを利用する
  • コレクションのセルにビューを表示する

Webコンテンツの表示

  • Webコンテンツを利用する
  • Webページを操作する
  • Webページの操作時の処理を指定する

地図

  • 地図を表示する
  • 地図の範囲を指定する
  • 地図上にピンを立てる
  • 地図の読み込み時の処理を指定する
  • 3Dマップを表示する
  • オーバーレイを表示する
  • 2点間のルートを表示する
  • 地図のスナップショットをとる

進捗状況

  • プログレスバーを表示する
  • 進捗状態を指定する
  • アクティビティインジケーターを表示する
  • アクティビティインジケーターを開始/停止する

Chapter 5 UI部品を利用する

  • 概要

入力欄

  • 入力欄を表示する
  • 入力欄のプレースホルダ/キーボードを指定する
  • 入力/編集時の処理を行う

ボタンの利用

  • ボタンを表示する
  • ボタンの状態に応じた色を指定する

スイッチの利用

  • スイッチを表示する

選択肢の利用

  • 選択肢を表示する
  • 選択肢をカスタマイズする

スライダー

  • スライダーを表示する
  • スライダーに画像を利用する

ステッパー

  • ステッパーを表示する

ピッカー

  • ピッカーを表示する
  • ピッカーの項目を指定する
  • ピッカーの項目のタイトルを指定する
  • ピッカーのサイズを指定する
  • ピッカーの選択時の処理を指定する

日付ピッカーの利用

  • 日付ピッカーを表示する
  • 日付の最大/最小を指定する
  • 選択した日付を参照する

サーチバーの利用

  • サーチバーを表示する
  • サーチバーのボタン/スコープを利用する
  • サーチバーの検索/キャンセル時の処理を指定する

ツールバー

  • ツールバーを表示する
  • ツールバーにボタンを配置する

ナビゲーションバー

  • ナビゲーションバーを表示する
  • ナビゲーションバーにボタンを配置する

タブバー

  • タブバーを表示する
  • タブバーにアイテムを表示する
  • タブバーのアイテム選択時の処理を指定する

アクションシート/アラート

  • アクションシート/アラートを表示する
  • ボタンを追加する
  • 入力欄を追加/参照する

Chapter 6 画面の操作を処理する

  • 概要

単純な操作

  • タッチに反応する
  • タッチ時の動作を指定する
  • タッチの位置を検出する
  • タップ数を検出する
  • 端末の揺れを検出する

複雑な操作

  • ジェスチャーを検出する
  • 複雑なタップを利用する
  • 拡大/縮小の動きを利用する
  • 回転の動きを利用する
  • スワイプを利用する
  • ドラッグを利用する
  • 画面の縁からのドラッグを利用する
  • 長押しを利用する

UI部品への操作

  • 入力時の処理を行う
  • 入力時の処理を取り消す
  • UI部品にフォーカスする/フォーカスを外す

Chapter 7 端末の機能を利用する

  • 概要

センサー

  • 加速度センサーの参照を開始/停止する
  • 加速度センサーの値を一定間隔で取得する
  • ジャイロセンサーの参照を開始/停止する
  • ジャイロセンサーの値を一定間隔で取得する

位置情報

  • 位置情報の利用を許可する
  • 緯度経度の取得を開始/停止する
  • 緯度経度を参照する
  • 現在の位置を地図に表示する
  • 住所/地名から緯度経度を取得する
  • 緯度経度から住所を取得する
  • 方位の取得を開始/停止する
  • 方位を取得する

カメラ/カメラロール

  • イメージピッカーを表示する
  • ファイル取得時/キャンセル時の処理を指定する
  • 撮影時の詳細を指定する
  • 撮影した画像/動画を保存する

端末の機能

  • システム情報を参照する
  • 通知センターを利用する
  • 端末の向きを取得する
  • 電話/メール/ブラウザーを起動する
  • タイマーを利用する
  • 指紋認証を利用する

Chapter 8 データを利用する

  • 概要

アプリ内部でのデータ保存

  • アプリの設定としてデータを保存する
  • 設定したデータを取得する
  • ディレクトリを利用する
  • ファイルパスを結合する
  • ファイルに文字列を書き込む
  • ファイルの存在を確認する
  • ファイルの内容を取得する

画像データ

  • 画像データを生成する
  • 画像編集用データを生成する
  • 画像データを出力する
  • 画像にフィルタをかける

動画

  • 動画ファイルを再生する
  • フルスクリーン再生/繰り返し再生する
  • 動画のサムネイル画像を取得する

音声

  • 音声ファイルを再生する
  • 音量を調整/繰り返し再生する

Chapter 9 ネットワークを利用する

  • 概要

HTTP通信

  • リクエスト先を指定する
  • HTTPリクエストを生成する
  • HTTPセッションを生成する
  • HTTP通信の詳細を指定する
  • ダウンロードの方法を定義する
  • HTTP通信を行う
  • ダウンロード中/完了時の処理を指定する
  • バックグラウンドでHTTP通信を行う
  • ステータスコードを取得する
  • JSONを解析する
  • Safariを利用する
  • Safari動作時の処理を指定する

Chapter 10 情報を共有する

  • 概要 iOSアプリでの情報共有

メール/SMSの利用

  • メールを送信する
  • メール送信時の実行結果を取得する
  • SMSを送信する

ソーシャルメディアとの連携

  • アクティビティを利用する
  • ソーシャルメディアに投稿する
  • ソーシャルメディアのアカウントを利用する
  • ソーシャルメディアのAPIを利用する

Chapter 11 3D Touchを利用する

  • 概要

3D Touchの利用

  • 3D Touchの利用可否を判断する
  • タッチの強さを参照する
  • クイックアクセスのメニューを作成する
  • クイックアクセスからの起動後の処理を指定する
  • ピーク/ポップを利用する
  • ピーク時にプレビューを表示する
  • ピーク時のプレビュー画面のサイズを指定する
  • ポップして画面遷移する
  • ピーク時のメニューを表示する
  • ピーク時のメニューを生成する
  • ピーク時のグループメニューを生成する

COLUMN

  • Swiftでの初期化処理
  • Swiftでの例外処理
  • 列挙型で定義される並列関係にある値
  • 引数にジェネリクスを使ったメソッド
  • アプリの初回起動の処理
  • Xcodeでの開発について
  • 画面遷移時のパラメータの受け渡し
  • テーブルで学ぶSwift
  • アプリの機能とUIデザイン
  • iOSアプリの表現力
  • アプリのサイズ制限
  • テキストの表示
  • UIWebViewの利用
  • Swiftの中からObjective-Cのリソースを利用する
  • アプリ開発のお手本
  • タッチを無効にするほかの方法
  • iOSシミュレーターでのジェスチャーの動作
  • 複雑なタップでのタップ位置の取得
  • iOSヒューマンインターフェイスガイドライン
  • HTML5でのセンサー利用
  • ジャイロセンサーの利用
  • 地図機能と乗り換え案内
  • Google Maps SDK for iOS
  • ディレクトリの共有
  • Core Imageで顔認識を行う
  • AVAudioPlayerのほかの機能
  • バックグラウンドでの処理とローカル通知
  • iOSアプリのUI
  • iOSアプリでFacebookの機能を利用する
  • 3D Touchのタッチ以外の利用
  • 通常のタッチでの3D Touchの利用

サポート

補足情報

本書で紹介しているサンプルについて

本書で使用しているサンプルアプリケーションは著者のWebサイト「サーバサイド技術の学び舎・WINGS」からダウンロードしていただけますので,ぜひご利用ください。

正誤表

本書の以下の部分に誤りがありました。ここに訂正するとともに,ご迷惑をおかけしたことを深くお詫び申し上げます。

(2016年5月11日更新)

P.37 書式4行目

let (変数名 [, 変数名]) [: (型 [, 型])] = (値 [, 値])
let (変数名 [, 変数名]) (: (型 [, 型])) = (値 [, 値])

P.37 サンプルファイルの場所

Base/ArrayViewController.swift
Base/ParamViewController.swift

P.37 サンプルコード最終行

let (errCode : Int, errMessage : String) = (404, "Not Found")
let (errCode, errMessage): (Int, String) = (404, "Not Found")

商品一覧