ポケットリファレンスシリーズ[改訂第3版]Swiftポケットリファレンス

[表紙][改訂第3版]Swiftポケットリファレンス

紙版発売
電子版発売

四六判/536ページ

定価3,520円(本体3,200円+税10%)

ISBN 978-4-297-14190-5

電子版

→学校・法人一括購入ご検討の皆様へ

書籍の概要

この本の概要

改訂第3版では,SwiftUIに完全対応しました。SwiftUIは2019年の登場以来,バージョンアップを重ねて,従来からのUIKit版と遜色ないレベルまで充実してきましたが,まとまった情報が公式のドキュメント以外にほとんどないため,開発者にとっても移行しづらい状況がありました。しかし,開発元のアップル社は今後もSwiftUIを充実させていく流れに変わりはありません。iOSアプリ開発のお伴に,ぜひ本書を役立ててください。旧版のUIKit版の情報もダウンロードコンテンツとして提供する万全の一冊!

こんな方におすすめ

  • iOSアプリの作成・開発に関わるすべてのプログラマー

目次

Chapter 1 iOSアプリ開発の基本

  • 概要
  • 開発に必要な環境
  • iOSアプリ開発について
  • Xcodeの基本的な使い方

Chapter 2 Swiftの基本的な使い方

  • Swiftとは

データ型と変数

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

制御文

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

クラス

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

プロトコルと構造体

  • プロトコルを定義する
  • 構造体を定義する

例外処理

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

列挙型

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

Chapter 3 よく利用されるオブジェクト

  • 概要

文字列

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

配列

  • 配列を利用する
  • 配列の要素の数を取得する
  • 配列に要素を追加する
  • 配列から要素を削除する
  • 配列の要素をソートする
  • 配列のインデックス番号と要素を取得する
  • 配列の全要素を順番に取得する
  • 配列の全要素に対して処理を行う
  • 配列の条件にマッチする要素のみを取り出す
  • 配列の要素をまとめて1つにする
  • 配列の要素を平坦化して抽出する
  • 配列の最大/最小の要素を取得する

辞書

  • 辞書を利用する
  • 辞書の要素の数を取得する
  • すべてのキー/値を取得する
  • 辞書から要素を削除する
  • 要素の値に対して処理を行う
  • 条件にマッチする要素を抽出する/要素の値をまとめる
  • 配列をグループ化する

バイナリデータ

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

日時

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

Chapter 4 画面を作成する

  • 画面構成のプログラミング

アプリを管理する

  • アプリのコンテンツを指定する
  • 最初の画面を指定する

画面を表示する

  • 画面を定義する/表示する
  • プレビューを表示する
  • セーフエリア外の領域を利用する

UIを利用する

  • ビューを表示する
  • ビューの属性を指定する
  • ビュー内でバインディング変数を利用する
  • ビュー間でバインディング変数を利用する

レイアウト

  • 縦に表示するレイアウトを利用する
  • 横に表示するレイアウトを利用する
  • 重ねて表示するレイアウトを利用する
  • スペーサーを利用する

ナビゲーション

  • ナビゲーションを利用する
  • 次の画面へ遷移する
  • オブジェクトを伴って次の画面へ遷移する
  • 画面を分割する
  • 分割スタイルを指定する

モーダル

  • 画面をモーダルで表示する
  • 部分的にモーダルを表示する
  • ポップオーバーを表示する

タブ

  • タブを利用する
  • タブのスタイルを指定する

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

  • 概要

2D図形

  • 2D図形を表示する
  • 背景に2D図形を利用する

画像

  • 画像を表示する
  • 画像のサイズを調整する

テキスト

  • テキストを表示する
  • 複数行のテキストを表示する

ラベル

  • ラベルを表示する
  • ラベルのスタイルを指定する

コレクション

  • コレクションの要素を一意にする
  • コレクションの要素を識別する
  • コレクションを一覧で表示する

リスト

  • リストを表示する
  • リストから選択する

スクロールビュー

  • スクロールビューを表示する
  • スクロールにスナップを実装する

グリッド

  • グリッドを表示する
  • グリッドの行を表示する
  • グリッドのスペースを確保する
  • グリッドの列を統合する
  • 縦スクロールに組み込む
  • 横スクロールに組み込む
  • スクロールの列/行を定義する

テーブル

  • テーブルを表示する
  • コンテクストメニューを表示する

地図

  • 緯度経度を利用する
  • 範囲を利用する
  • ズームを利用する
  • 仮想カメラを利用する
  • 地図を表示する
  • 地図のスタイルを指定する
  • 地図の詳細スタイルを指定する
  • 3Dマップを表示する
  • コントローラーを表示する
  • マーカーを表示する
  • アノテーションを表示する
  • タップした地点を取得する
  • タップした場所の緯度経度を取得する
  • 円形オーバーレイを表示する
  • 地図内の地点を検索する
  • 周辺の景色を取得する

進捗状態

  • 進捗状態を表示する
  • 進捗状態を指定する

ビューの拡張

  • モディファイアを定義する
  • ビューを構築するメソッドを簡略化する
  • 再利用可能なビューを定義する

Chapter 6 UI部品を利用する

  • 概要

UIをまとめる

  • フォームを利用する
  • セクションを利用する
  • グループ化する
  • 視覚的にグループ化する
  • 階層的にグループ化する
  • ラベルを付加してコンテンツを表示する
  • 区切りを設ける

バーの利用

  • ナビゲーションバーを利用する
  • ツールバーを利用する
  • ツールバーのアイテムを利用する
  • 検索バーを表示する

テキスト入力

  • テキストフィールドを利用する
  • テキストフィールドのスタイルを指定する
  • テキストフィールドの行数を指定する
  • セキュアなテキストフィールドを利用する
  • 複数行のテキスト入力欄を利用する
  • 行揃え/行間のスペース/単語の自動修正を設定する
  • キーボードの種類を指定する

操作による入力

  • ボタンを利用する
  • ボタンのスタイルを指定する
  • スライダーを利用する
  • ステッパーを利用する
  • トグルを利用する
  • トグルのスタイルを指定する
  • ピッカーを利用する
  • 日付ピッカーを利用する
  • 日付ピッカーのスタイルを指定する
  • 複数日付ピッカーを利用する
  • カラーピッカーを利用する

警告と確認

  • アラートを表示する
  • 確認ダイアログを表示する

動作時の処理

  • ビューが表示されたときの処理を指定する
  • 値が変更された際の処理を定義する
  • フォーカスする/外すときの処理を定義する

アニメーション

  • アニメーションを利用する
  • アニメーションの処理を定義する

Chapter 7 データフローと非同期処理

  • 概要

データフロー

  • オブジェクトを観測可能にする
  • 観測可能なオブジェクトを環境に配置する
  • 観測可能なオブジェクトを環境から取得する
  • 観測可能なオブジェクトをバインディング可能にする
  • 値が変更された際の処理を行う

非同期処理

  • 非同期な処理を定義する
  • 非同期処理の値を取得する/並列して実行する
  • 同期処理の中で非同期処理を実行する
  • 同期処理から並列的に非同期処理を実行する
  • エラーを定義する
  • 処理の結果を定義する
  • 排他制御可能な型を利用する

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

  • 概要

ジェスチャー

  • ジェスチャーを登録する
  • ジェスチャー中/終了時の処理を指定する
  • ジェスチャーによる状態の変化を参照する変数を宣言する
  • ジェスチャー時の状態の変化に応じた処理を指定する
  • タップを利用する
  • 長押しを利用する
  • ドラッグを利用する
  • 拡大/縮小の動きを利用する
  • 回転の動きを利用する
  • 2つのジェスチャーを同時に実行する
  • 2つのジェスチャーを順番に実行する

画面上の位置関係

  • タップした位置を利用する
  • ビューのサイズを利用する
  • ビューの特定の領域で処理を行う

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

  • 概要

位置情報

  • 位置情報の利用を許可する
  • 位置情報の許可状況を参照する
  • 正確な位置情報の取得を許可する
  • 緯度経度の取得を開始/停止する
  • 緯度経度を参照する
  • 住所/地名から緯度経度を取得する
  • 緯度経度から住所を取得する

フォトライブラリ/カメラ

  • フォトライブラリを表示する
  • カメラを利用する
  • ファイル取得時/キャンセル時の処理を指定する
  • 撮影時の詳細を指定する
  • 撮影した画像/動画を保存する

端末の機能

  • システム情報を参照する
  • 通知センターを利用する
  • 情報を共有する
  • アプリからほかのアプリを起動する
  • タイマーを利用する
  • 生体認証を利用する

Chapter 10 データを利用する

  • 概要

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

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

画像データ

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

動画

  • 動画プレイヤーを表示する
  • 動画ファイルを再生/停止する

音声

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

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

  • 概要

HTTP通信

  • リクエスト先を指定する
  • HTTPリクエストを生成する
  • HTTPセッションを生成する
  • HTTP通信の詳細を指定する
  • ダウンロードの方法を定義する
  • HTTP通信を行う
  • ダウンロード中/完了時の処理を指定する
  • ステータスコードを取得する
  • URLから画像を表示する
  • JSONの構造をマップする
  • JSONを解析する

Chapter 12 画像認識を利用する

  • 概要

画像の認識

  • 画像解析リクエストを生成する
  • 画像解析リクエストを実行する
  • 矩形を検出する
  • テキストを認識する
  • テキストの領域を認識する
  • 顔を検出する

リアルタイムな画像の認識

  • セッションを管理する
  • 入力デバイスを管理する
  • カメラからの入力を管理する
  • 出力される映像を管理する
  • フレームごとの映像を管理する

Chapter 13 UIKitを利用する

  • 概要

UIKitの利用

  • UIKitのUI部品を利用する
  • SwiftUIのビューの更新時にUIViewに対して行う処理を指定する
  • UIViewからSwiftUIへ情報を伝える

ビューコントローラーの利用

  • UIKitのビューコントローラーを利用する
  • SwiftUIのビューの更新時にUIViewControllerに対して行う処理を指定する
  • UIViewControllerからSwiftUIへ情報を伝える

著者プロフィール

片渕彼富(かたふちかのとみ)

執筆コミュニティ「WINGSプロジェクト」所属のライター。旅行,EC,アイドル関係のコンテンツ会社勤務後,フリーへ。現在はSwift/Kotlin/Flutterでの案件に取り組んでいます。主な著書に「iPhone/iPad開発ポケットリファレンス」(技術評論社),「Pythonでできる!株価データ分析」(森北出版)など。


山田祥寛(やまだよしひろ)

千葉県鎌ヶ谷市在住のフリーライター。Microsoft MVP for Visual Studio and Development Technologies。執筆コミュニティ「WINGSプロジェクト」代表。主な著書に「改訂3版 JavaScript本格入門」「Angularアプリケーションプログラミング」(以上,技術評論社),「独習シリーズ(Java・C#・Python・PHP・Ruby・ASP.NET など)」(以上,翔泳社),「速習シリーズ(React,Vue,TypeScript,ASP.NET Core,Laravel など)」(Amazon Kindle)など。最近の活動内容は公式サイト(https://wings.msn.to/)を参照されたい。