SwiftUI 徹底入門


SwiftUI 徹底入門


ソフトバンククリエイティブ


著者:金田浩明


はじめに
サンプルの使い方
目次

CHAPTER01 SwiftUIの概要
01 プロジェクトを作ってみよう
02 Xcode 11の画面
03 デザインツールを使ってみよう
 ポップアップメニューによるソースコードの変更
 モディファイアを直接記述する
 SwiftUIにおけるレイアウト
 ボタンの設定
 ビューの階層構造
 StoryboardやXibによるUI作成の問題点
 これまでの問題を解決するSwiftUI
 SwiftUIにおける状態の監視とビューの更新
04 Swift5.1の新機能
 Opaque Return Type
 暗黙のreturn
 プロパティラッパー(Property Wrapper)
 プロパティラッパーを作ってみる
 ファンクションビルダ(Function builders)

CHAPTER02 SwiftUIのビューを理解する
01 SceneDelegateクラスについて
 SceneDelegateとは
02 SwiftUIのビューを理解する
 Viewプロトコル
03 標準のモディファイア
 ビューのサイズを設定する
 フレームサイズよりビューを優先する
 ビューに枠線を設定する
 ビューの表示位置を座標で指定する
 ビューの表示をずらす
 セーフエリア外にコンテンツを配置する
 余白を指定してビューサイズを設定する
 ビューの前景・背景を設定する
 別のビューを重ねて表示する
 ビューのクリッピング(切り取り)とマスキング
 モディファイアの適用順序
04 Textビュー
 文字列の表示行数を設定する
 文字列の行間を調整する
 Textビューの外観を変更する
05 Imageビュー
 システムアイコンを使用する
 画像をリサイズする
06 Colorビュー
 アセットカタログで定義した色を参照する
07 グラデーション
 均等なグラデーションを作成する
 不均等なグラデーションを作る
 円形グラデーション
 放射状グラデーション

CHAPTER03 レイアウトの作り方
01 スタックレイアウトの使い方
 VStackとHStack
 基本的な使い方
  伸縮する空白を入れる
  仕切り線を表示する
 ZStackでビューを重ねる
 ビューの構築にif文を使う
 ビューのアライメントを調整する
 ビューのカスタムアライメント
02 サンプルアプリ「Tapioca Milk Tea」
 サンプルで使用するデータ
 オーダー詳細画面を作る
 複数のプレビューを表示する
 セルに使用するビューを作成する
  UI作成時のポイント
 プレビュー表示に使う端末やサイズを指定する

CHAPTER04 状態の管理を委譲する
01 状態の操作
 ビューは状態を持たない
 Stateによる状態の管理
02 状態変更に使用するビュー
 Buttonビュー
 Toggleビュー
 TextFieldビュー
  TextFieldビューによる境界線を追加する
 SecureFieldビュー
 Sliderビュー
  スライダの操作イベントで処理を行う
 Pickerビュー
  各画像を使ったピッカーを作る
  ピッカーの選択項目に配列を使う
 ForEach構造体について
  セグメンティッドコントロール風の表示にする
 DatePickerビュー
  日付の選択可能範囲を指定する
 Stepperビュー
  ステッパーの値の設定をカスタマイズする
03 「Tapioca Milk Tea」の注文画面を作る
 注文画面の概要
 プログラムの入力
 注文詳細画面の修正

CHAPTER05 リストビューとスクロールビュー
01 リストビューとスクロールビュー
 静的なリスト
 複雑なリストを作る
 リストを動的に作る
 Identifiableプロトコルを使う
 Listビューに行を追加する
 Listビューから行を削除する
 EditButtonビューを使う
 行をドラッグして順序を入れ替える
 リストにセクションを追加する
 リストの表示形式をGroupedにする
02 スクロールビュー
 全方位にスクロールさせる
 縦・横方向のみにスクロールさせる
03 「Tapioca Milk Tea」の注文一覧画面とホーム画面を作る
 各画面の概要
 タピオカドリンクの注文を一覧表示する画面
 店舗情報を表示するカスタムビュー
 特別メニューを表示するカスタムビュー
 ホーム画面の作成

CHAPTER06 図形の描画とカスタムビュー
01 シェイプ
 四角形を描画する
 図形のパス部分だけを描画する
 角丸の四角を描画する
 カプセルを描画する
 円や楕円を描画する
02 シェイプを使ってカスタムビューを作る
 Pathビューで図形を描画する
 シェイプのカスタムビューを作成する
 複数のパスを組み合わせる
 パスに3次ベジェ曲線を追加する
 パスに直線を追加する
 パスを円弧を追加する
 パスに矩形を追加する
03 「Tapioca Milk Tea」のカスタムビューを作る
 カスタビューの概要
 ストローを描く
 アイスクリームを描く
 ティーを描く
 グラスを描く
 タピオカとナタデココを描く
 TapiocaTableViewに置き換える

CHAPTER07 ナビゲーション・シート・タブによる画面の切り替え
01 ナビゲーションビュー
 ナビゲーションビューでビューを表示する
 ナビゲーションバーにボタンを配置する
 ナビゲーションビューで画面遷移を行う
 リストの行をタップして画面遷移する
 ナビゲーションバーを非表示にする
 手動で前画面に戻る処理を行う
02 フォームを使用する
 基本のフォームを作る
 フォームをセクションに分割する
03 シートを使ってビューをモーダルに表示する
 基本的な使い方
 シートを閉じた時に処理を行う
 List内でシートを表示する
 シートを閉じるボタンを設定する
04 タブバーで画面で切り替える
 基本のタブバーを作る
 タブバーの表示を切り替える
05 サンプルアプリ「Tapioca Milk Tea」に画面遷移を追加する
 店舗画面を作る
 ホーム画面から店舗画面へ遷移する
 注文履歴画面から注文詳細画面へ遷移する
 タブバーでホーム画面、注文画面、注文履歴画面を切り替える

CHAPTER08 アラートとアクションシート
01 アラートを表示する
 アラートの基本的な使い方
 バインドしたオブジェクトでアラートの表示・非表示を定義する
 アラートのボタンをタップした時に処理を行う
02 アクションシート
 アクションシートの基本的な使い方
 アクションを選択したときに処理を行う
03 サンプルアプリ「Tapioca Milk Tea」にアラートを追加する
 アラートを追加する
 ボタンをタップされた時の処理を追加する

CHAPTER09 ビューアニメーションとエフェクト
01 ビューの形状変換
 拡大と縮小
 回転
 3D効果をつけた回転
02 ビューのエフェクト
 不透明度
 ぼかし
 ブレンド
 色の反転
 色の乗算
 彩度とコンストラクト
 明度
 色相
 シャドウ
 適用範囲の変更
03 アニメーション
 基本のアニメーション
 バネのアニメーションを作成する
 Stateを使ったアニメーション
 Bindingを使ったアニメーション
 ビューが表示されたらアニメーションを開始する
04 トランジション
 トランジション効果を結合する
 非対称トランジション
05 サンプルアプリ「Tapioca Milk Tea」にアニメーションを追加する
 タピオカドリンクにアニメーションを追加する
 店舗の写真にシャドウを入れる
 店舗の写真に3Dの回転効果を追加する

CHAPTER10 状態とデータフロー
01 State
 Stateと状態変数
 射影プロパティ
 ビューの更新
02 Binding
03 ObservedObject
 ObservableとCombineフレームワーク
 @ObservedObjectでのBinding
 状態の更新をSwiftUIに手動で送信する
04 EnvironmentObject
05 Environment
 Environmentの使い方
 allowsTighteningプロパティ
 calendarとlocalプロパティ
 colorSchemeプロパティ
 defaultMinListHeaderHeightプロパティ
 defaultMinListRowHeightプロパティ
 editModeプロパティ
 fontプロパティ
 imageScaleプロパティ
 isEnabledプロパティ
 layoutDirectionプロパティ
 lineLimitプロパティ
 lineSpacingプロパティ
 managedObjectContextプロパティ
 minimumScaleFactorプロパティ
 presentationModeプロパティ
 timeZoneプロパティ
 undoManagerプロパティ
06 サンプルアプリ「Tapioca Milk Tea」のデータの保存方法を変える
 データを保存するためのクラスを用意する
 注文を追加する処理を記述する
 OrderRowViewの変更
 OrderDetailの変更
 OrderHistoryViewの変更

CHAPTER11 イベントとジェスチャ
01 SwiftUIでジェスチャを取得する
 シングルタップ時の処理
 ダブルタップ時の処理
 ロングタップ時の処理
 ジェスチャのカスタマイズ
 ドラッグ時の処理
 ビューをドラッグする
02 SwiftUIでライフサイクルイベントを処理する
 TextFieldの入力時、キーボードで文字を隠れないように制御する
03 サンプルアプリ「Tapioca Milk Tea」にキーボード制御を追加する
 注文画面のTextFieldにイベント処理を追加する
 注文詳細画面に画像タップのイベント処理を追加する

CHAPTER12 フレームワーク結合とビューの作成
01 UIKitでSwiftUIを使う
 SwiftUIをUIViewControllerに変換する
02 SwiftUIからUIKitを使う
 ダイアログ風のインタフェースを実装する
 SwiftUIでページコントロールを使う
 コーディネーターを使う
 SwiftUIでUINavigationViewを使う
03 サンプルアプリ「Tapioca Milk Tea」
 PageControlビューとPageViewControllerを組み合わせる
 画像に文字をオーバーレイ表示するビュー
 HomeViewに作成したPageViewを配置する
 店舗の場所をMapで表示する

CHAPTER13 SwiftUIからCoreDataを使う
01 SwiftUIでCoreDataを使う
 SwiftUIで使えるようにCore Dataを構成する
 AppDelegateとSceneDelegateクラスの修正
 SwiftUIからNSManagedObjectContextにアクセスする
 FetchRequestを使用してCore Dataからデータを取得する
02 サンプルアプリ「Tapioca Milk Tea」でCore Dataを使う
 新規データを保存する処理を用意する
 注文一覧画面を修正する
 詳細画面でデータの表示と更新処理を修正する
 注文一覧画面でデータをフェッチして表示する
 注文画面のデータの追加処理を修正する
 注文データがすぐに更新されるようにする
 その他の修正

CHAPTER14 Advanced SwiftUI
01 アプリのローカライズ対応
 SwiftUIでのローカライゼーションの手順
02 モディファイアを作成する
 基本的な作成方法
 ViewModifierでビューの構造を変更する
 ViewModifierで処理を追加する
03 その他のテクニック
 GeometryReaderでビューサイズを取得する
 コンテナに含むビューの最大数
 Textビューを連結する
04 サンプルアプリ「Tapioca Milk Tea」を日本語対応にする
 カスタムViewを正方形に保つ
 「Tapioca Milk Tea」を日本語対応する

終わりに

INDEX

書籍目次

Posted by shi-n