2016/02/26

関西モバイルアプリ研究会 #11でSwiftのLensについて発表しました

関西モバイルアプリ研究会 #11でSwiftのLensについて発表しました。

今回は大阪イノベーションハブで行われ、関モバでは始めての大阪開催となりました。

Lens自体については次のQiita記事が参考になります。

Lensy & Swift-IDL

OptionalArrayに対応して、Resultを返すLensをつくりました。

OptionalArrayにはそれぞれ、OptionalUnwrapLensArrayIndexLensを使います。

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 件のコメント:

コメントを投稿

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