Bond の v4 について
2015/10/30
@Swiftオープンソースライブラリ研究会
自己紹介
@ushisantoasobu
iOSやったりAndroidやったりjsやったり
週末フットサルやったり
Bondとは??
Swift製データバインディングライブラリ
http://qiita.com/ushisantoasobu/items/54a3ff86722693da6498
http://qiita.com/susieyy/items/2af5321b287b8d2f49f6
Bond v4 ??
v4 = Swift 2 に対応したもの
Bond v4 ??
これまでのものからAPIが大きく変更入っている
Bond v4 ??
このタイミングで過去記事みるときは注意
http://qiita.com/ushisantoasobu/items/42e07cef818dcddeefc4
Dynamic => Observable に
prefixが dynHoge から bnd_hoge に
->> よりも bindTo() に
Bond v4 ??
変更点の例いくつか
趣味でつくってるiOSアプリにて採用してる
実際に使ってみる
`someData`の`name`プロパティを `hogeTextField`の`text`プロパティにバインドする
実際に使ってみる
`someData`の`name`プロパティを変更すると `hogeTextField`のテキストの表示が反映される
ソート処理
スキ処理
リフレッシュ(引っ張って更新)
削除(セルの長押し)新規作成
ソート処理
スキ処理
リフレッシュ(引っ張って更新)
削除(セルの長押し)
モデルの更新(非同期処理含む)がガンガンされるなか ビューの表示を同期するのが手間
ソート処理
スキ処理
リフレッシュ(引っ張って更新)
削除(セルの長押し)
バインドしておけば あとはモデルを正しく更新さえすればOK
ソート処理
スキ処理
リフレッシュ(引っ張って更新)
削除(セルの長押し)
ビューとモデルが分離できてスッキリする
実際に使ってみる
モデルのプロパティに`Observable`をつけてあげる (`Mappable`は`ObjectMapper`なのでここでは関係ない)
実際に使ってみる
`bnd_xxxxx`はそれぞれのUIKitのextensionとして Bondで設定されているもの
実際に使ってみる
双方向バインディングは`bidirectionalBindTo()`を使う
文字数のバリデーション
文字数が相応しくないときは 文字数カウントの色を変える
文字数カウンタの更新