関西モバイルアプリ研究会 #11でSwiftのLensについて発表しました。
今回は大阪イノベーションハブで行われ、関モバでは始めての大阪開催となりました。
Lens自体については次のQiita記事が参考になります。
Lensy & Swift-IDL
OptionalとArrayに対応して、Resultを返すLensをつくりました。
OptionalとArrayにはそれぞれ、OptionalUnwrapLensとArrayIndexLensを使います。
editor.compose(OptionalUnwrapLens<Person>()).compose(name).get(book) // OK("Sasaki")
authors.compose(ArrayIndexLens<Person>(at: 0)).compose(name).get(book) // OK("Yamada")
authors.compose(ArrayIndexLens<Person>(at: 1)).compose(composed).get(book) // OK("Yokohama")
authors.compose(ArrayIndexLens<Person>(at: 2)).compose(composed).get(book) // Error(ArrayIndexOutOfBounds)
また、Lensをフィールドの数だけ自分で用意するのはさすがにつらいので、自動生成するツールをつくりました。
swift-idlの自動生成にはHelperが含まれており、これは$でアクセスできます。
Helperを使うと、.記法での記述ができて補完も効くようになります
また、[]記法での配列の要素アクセスができるようになります。
ただし、Optionalのアンラップにはunwrapを利用します。これは、Swiftでは演算子!のオーバライドが禁止されているからです。
その他の利用方法については、それぞれのREADMEを参照してください。
雑感
会場の利用時間の都合もあって、発表者の抽選がありました。発表側の抽選が意味をなしたのも、関モバでは始めてのはず。 発表者を含む参加者が50人を超えたのも始めてで、いろいろ始めてづくしの回でした。



0 件のコメント:
コメントを投稿
注: コメントを投稿できるのは、このブログのメンバーだけです。