Closed12

SwiftUIチュートリアルをやってみる

ピン留めされたアイテム
Kazuto YamadaKazuto Yamada

このスクラップについて

長らくSwiftを触っていなくて(3年くらい)色々思い出しながらSwiftUIを只今勉強中です。
Apple公式のSwiftUIのチュートリアルを進めながら、その中で覚えたことをここにメモしていきます。
https://developer.apple.com/tutorials/swiftui/

Kazuto YamadaKazuto Yamada

Section 1 : Create a Landmark Model

  • Landmarkというモデル構造体を作る
  • コレクションに入れるためにHashableプロトコルに準拠
  • JSONファイルからLandmark情報を反映させるためにCodableプロトコルに準拠
Kazuto YamadaKazuto Yamada

Section 2 : Create the Row View

  • LandmarkをListで行で表示するためのViewクラスを作る
  • クラス生成時にLandmarkを渡し、その情報を元に行を表示する

Kazuto YamadaKazuto Yamada

Section 3 : Customize the Row Preview

  • プレビューに2つのViewを表示する

    こんな感じで Group で 複数のViewを囲めば

    複数表示される。
Kazuto YamadaKazuto Yamada

Section 4 : Create the List of Landmarks

  • List に 複数のLandmarkを表示する
  • 以下のようにListで表示したいクラスを囲む

Kazuto YamadaKazuto Yamada

Section 5 : Make the List Dynamic

  • Landmarkの配列内の全てをListに動的追加する
  • List に動的に追加するには2つ方法あり
    • データとともに各要素を一意に識別するプロパティへのキーパスを渡すか
    • データ型をIdentifiableプロトコルに準拠させるか

Kazuto YamadaKazuto Yamada

Section 6 : Set Up Navigation Between List and Detail

  • List内のLandmarkから表示するDitail画面を作成する
  • LandmarkのListを表示するViewにNavigationViewを追加
  • NavigationViewのタイトルを表示
  • List にLandmarkを動的に追加する際にNavigationLinkを追加
    • リンク先のDitail画面を指定する
Kazuto YamadaKazuto Yamada

Section 7 : Pass Data into Child Views

  • Ditail画面に遷移時に Landmark情報を渡して内容を表示する
  • Ditail画面内に表示する子Viewを作成
    • Landmark画像View
    • LandmarkマップView
      • CLLocationCoordinate2D : 緯度経度値をもつ構造体
      • MKCoordinateSpan : 縮尺
      • MKCoordinateRegion : CLLocationCoordinate2D(経緯度)とMKCoordinateSpan(縮尺)を持った構造体
Kazuto YamadaKazuto Yamada

Section 8 : Generate Previews Dynamically

  • プレビュー画面を動的に生成する

デバイス名の配列をループする。

こんな感じで表示される。

Kazuto YamadaKazuto Yamada

Section 1 : Mark the User’s Favorite Landmarks

  • Listに表示したLandmarkを拡張して、お気に入りマーク表示させる


このスクラップは2021/01/19にクローズされました