BETA

Introducing SwiftUI: 視聴記録

投稿日:2019-09-02
最終更新:2019-09-02

9:00
・modifier も cmd + l のリストから選べて、UIパーツの上にドラッグドロップして適用できる。たしかにこれは驚く

NavigationButton

List の各セルに付与される、遷移を実行するボタン

List(rooms) { room in  
    NavigationButton(destination: Text(room.name)) {  
        ...  
    }  
}  

17:24
「SwiftUIのビューは軽い。コード(ビュー)を積極的にリファクタリングしてください」

20:40

@State private var zoomed = false  

// body の中  
Image(room.imageName)  
    .aspectRation(contentMode: zoomed ? .fill : .fit)  

@State 変数が body の中で使われているとき、
変数の値に変化があれば、変更を感知し、新しいビュー描画処理を走らせてくれる

21:00: Where is Truth?

  • 状態変数(state variable)
  • モデル(plain property)

「この違いは重要だと考えている」

従来のUIフレームワーク(UIKitな)は、状態変数を区別できなかった。SwiftUIはできる。
「状態変数」と「モデル」は、アプリのための「Source of Truth」を構成する。

【 Source of Truth | Derived Data】

プロパティは、この2つに分けられる。

zoomed の状態変数は Source of Truth。ContentModeプロパティはそこから導かれる( = Derived Data ってことか)

・ビューの状態管理

特定の順番で手続き(処理)をする = 暗黙に依存関係が紛れ込んでしまいがち

26:13 Source of Truth を更新し、そこからUIを編みだすべき

・プレビューだけで、エミュで行ってたことの多くができちゃう。ビルドすることなく。
これが時間省略を生むことを期待しよう。使い方をマスターしよう。

感想

【 Source of Truth | Derived Data】の違いの峻別 ...重要そう。

次の Data Flow Through SwiftUI もそうだったけど、全部そうなんだけど、
後半に難しいトピックがきて、それがすべからく駆け足だから、難易度が急激に上がるw
1回じゃ無理だったので、自分でコード書いて、ここに戻ってくる...を繰り返そう。

技術ブログをはじめよう Qrunch(クランチ)は、プログラマの技術アプトプットに特化したブログサービスです
駆け出しエンジニアからエキスパートまで全ての方々のアウトプットを歓迎しております!
or 外部アカウントで 登録 / ログイン する
クランチについてもっと詳しく

この記事が掲載されているブログ

備忘録ほどの価値もない走り書き

よく一緒に読まれる記事

0件のコメント

ブログ開設 or ログイン してコメントを送ってみよう
目次をみる
技術ブログをはじめよう Qrunch(クランチ)は、プログラマの技術アプトプットに特化したブログサービスです
or 外部アカウントではじめる
10秒で技術ブログが作れます!