KeypathはSwift 4で追加された機能です。素晴らしい機能を持っていますが、時折使い所を見つけるのが難しく感じます。しかし、Keypathを理解して正しく使えた時、ジェネリクスやプロトコルによるさらなる抽象化を実装できます。ただし、これを行えるようにするには、Keypathのパターンをいつ適用するかの直感的な理解が役に立ちます。このトークでは、まず、存在するさまざまな種類のKeypathについて説明し、次に実際の例を通して、それらが自分のプロジェクトでどのように活用できるかを紹介します。
このトークはSwiftのKeypathの紹介です
ReadWriteプロパティにつかえる。コンポーザブルというのはあとで。
何を学んでいただくのか
いろんな例を見ていきます。
Settingがあります。ディスプレイネーム、スコアなども見せていく、それからパスコード
何が難しいのか、
まずは導入
新しいプレーヤーを作ります、マリオさん
ルイージに変えるということを伝えられる
変数は動かしたり格納したりできる
ネスティングもできます
Keypathは様々なものになりうる
readonryには書き込めない
writableKeyPathは書き込める
PartialKeyPathはルートだけあるもの
型消去したものになる
汎用性が高い
AnyKeypathもある
全く違うものを入れられる
もとに戻すこともできる
次のステップ
Keypathだけが提供している機能です。
まとめることができる
事例
データ構造がそれぞれ違う、ネスト型がある
抽象化して表示して編集するやり方がほしい。
これに加えてメタ情報がある
Protocolをいれる
設定のイテレーション
ネストされているのもほしい
これも反復してイテレーションしなければならない
最後に、再帰的にする
ディスプレイをしたい、編集をしたい
値をプロバイダーの中で変えていくこともできる。すべてのセッティングの中でこれを変えてディスプレイして
抽象的な形でできる
何が出来たのでしょう
例を紹介します
どの型を消去するのかを考える
2.タイプをすぐに戻せる
3.そして、Hashableに準拠する。Dictionaryの中でKeyとして使える
Typeが一致していなくてもちゃんと返してくれる
役立つライブラリがある
クエリをかけたいときキーパスを使えば安全にコンパイルされる
複数プロパティでソートできる
プロトコルで難しかった抽象化が可能になります。
ここでブログの紹介
Podcastも2週間に1回ぐらいやっています
ハンブルクでSNSの会社をやっています。仕事したい方、こんなにきれいなところですよ
ありがとうございました。