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の会社をやっています。仕事したい方、こんなにきれいなところですよ

ありがとうございました。
