SlideShare a Scribd company logo
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 ??
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()`を使う
少し応用すると・・・
文字数のバリデーション
文字数が相応しくないときは
文字数カウントの色を変える
文字数カウンタの更新
ご静聴ありがとうございました!!

More Related Content

More from 佐藤 俊太郎

iOSオジサンは JSオジサンを これからも覗きにくる
iOSオジサンは JSオジサンを これからも覗きにくるiOSオジサンは JSオジサンを これからも覗きにくる
iOSオジサンは JSオジサンを これからも覗きにくる
佐藤 俊太郎
 
Source kittenについて
Source kittenについてSource kittenについて
Source kittenについて
佐藤 俊太郎
 
`redux`と`flux`を比べてみたときの個人的な感想
`redux`と`flux`を比べてみたときの個人的な感想`redux`と`flux`を比べてみたときの個人的な感想
`redux`と`flux`を比べてみたときの個人的な感想
佐藤 俊太郎
 
小さな会社(チーム)で クールなアプリをつくる方法 Gunosy UI Design Study #1
小さな会社(チーム)で クールなアプリをつくる方法 Gunosy UI Design Study #1小さな会社(チーム)で クールなアプリをつくる方法 Gunosy UI Design Study #1
小さな会社(チーム)で クールなアプリをつくる方法 Gunosy UI Design Study #1
佐藤 俊太郎
 
yidev 第18回勉強会 「業務でSwiftで3ヶ月開発してきたので一旦振り返り」
yidev 第18回勉強会 「業務でSwiftで3ヶ月開発してきたので一旦振り返り」yidev 第18回勉強会 「業務でSwiftで3ヶ月開発してきたので一旦振り返り」
yidev 第18回勉強会 「業務でSwiftで3ヶ月開発してきたので一旦振り返り」
佐藤 俊太郎
 
サーバサイドで動的にhtml生成していたりjQueryをガッツし使っている既存プロジェクトにAngularJSを部分的につっこんでみた @jscafe21
サーバサイドで動的にhtml生成していたりjQueryをガッツし使っている既存プロジェクトにAngularJSを部分的につっこんでみた @jscafe21サーバサイドで動的にhtml生成していたりjQueryをガッツし使っている既存プロジェクトにAngularJSを部分的につっこんでみた @jscafe21
サーバサイドで動的にhtml生成していたりjQueryをガッツし使っている既存プロジェクトにAngularJSを部分的につっこんでみた @jscafe21
佐藤 俊太郎
 
Createjsについて@jsCafe20
Createjsについて@jsCafe20Createjsについて@jsCafe20
Createjsについて@jsCafe20佐藤 俊太郎
 
flasherがはじめてiOS開発をしてみて
flasherがはじめてiOS開発をしてみてflasherがはじめてiOS開発をしてみて
flasherがはじめてiOS開発をしてみて佐藤 俊太郎
 

More from 佐藤 俊太郎 (9)

iOSオジサンは JSオジサンを これからも覗きにくる
iOSオジサンは JSオジサンを これからも覗きにくるiOSオジサンは JSオジサンを これからも覗きにくる
iOSオジサンは JSオジサンを これからも覗きにくる
 
Source kittenについて
Source kittenについてSource kittenについて
Source kittenについて
 
`redux`と`flux`を比べてみたときの個人的な感想
`redux`と`flux`を比べてみたときの個人的な感想`redux`と`flux`を比べてみたときの個人的な感想
`redux`と`flux`を比べてみたときの個人的な感想
 
小さな会社(チーム)で クールなアプリをつくる方法 Gunosy UI Design Study #1
小さな会社(チーム)で クールなアプリをつくる方法 Gunosy UI Design Study #1小さな会社(チーム)で クールなアプリをつくる方法 Gunosy UI Design Study #1
小さな会社(チーム)で クールなアプリをつくる方法 Gunosy UI Design Study #1
 
yidev 第18回勉強会 「業務でSwiftで3ヶ月開発してきたので一旦振り返り」
yidev 第18回勉強会 「業務でSwiftで3ヶ月開発してきたので一旦振り返り」yidev 第18回勉強会 「業務でSwiftで3ヶ月開発してきたので一旦振り返り」
yidev 第18回勉強会 「業務でSwiftで3ヶ月開発してきたので一旦振り返り」
 
サーバサイドで動的にhtml生成していたりjQueryをガッツし使っている既存プロジェクトにAngularJSを部分的につっこんでみた @jscafe21
サーバサイドで動的にhtml生成していたりjQueryをガッツし使っている既存プロジェクトにAngularJSを部分的につっこんでみた @jscafe21サーバサイドで動的にhtml生成していたりjQueryをガッツし使っている既存プロジェクトにAngularJSを部分的につっこんでみた @jscafe21
サーバサイドで動的にhtml生成していたりjQueryをガッツし使っている既存プロジェクトにAngularJSを部分的につっこんでみた @jscafe21
 
Createjsについて@jsCafe20
Createjsについて@jsCafe20Createjsについて@jsCafe20
Createjsについて@jsCafe20
 
flasherがはじめてiOS開発をしてみて
flasherがはじめてiOS開発をしてみてflasherがはじめてiOS開発をしてみて
flasherがはじめてiOS開発をしてみて
 
Introduction for cocos2d
Introduction for cocos2dIntroduction for cocos2d
Introduction for cocos2d
 

Recently uploaded

CO2排出量見える化・削減・報告クラウド「アスエネ」サービス紹介_Saleshub.pdf
CO2排出量見える化・削減・報告クラウド「アスエネ」サービス紹介_Saleshub.pdfCO2排出量見える化・削減・報告クラウド「アスエネ」サービス紹介_Saleshub.pdf
CO2排出量見える化・削減・報告クラウド「アスエネ」サービス紹介_Saleshub.pdf
yamamotominami
 
NIST Cybersecurity Framework 2.0の変更点整理をしよう
NIST Cybersecurity Framework 2.0の変更点整理をしようNIST Cybersecurity Framework 2.0の変更点整理をしよう
NIST Cybersecurity Framework 2.0の変更点整理をしよう
You&I
 
FIWARE Orion Context Broker コンテキスト情報管理 (Orion 4.0.0対応)
FIWARE Orion Context Broker コンテキスト情報管理 (Orion 4.0.0対応)FIWARE Orion Context Broker コンテキスト情報管理 (Orion 4.0.0対応)
FIWARE Orion Context Broker コンテキスト情報管理 (Orion 4.0.0対応)
fisuda
 
Grokking Simplicity探訪
Grokking Simplicity探訪Grokking Simplicity探訪
Grokking Simplicity探訪
Yoshitaka Kawashima
 
アジャイルの30年(Tree Decades of Agileというブログ記事に関する要約)
アジャイルの30年(Tree Decades of Agileというブログ記事に関する要約)アジャイルの30年(Tree Decades of Agileというブログ記事に関する要約)
アジャイルの30年(Tree Decades of Agileというブログ記事に関する要約)
You&I
 
受発注バスターズ説明資料  株式会社batton Saleshub掲載用.pdf
受発注バスターズ説明資料  株式会社batton Saleshub掲載用.pdf受発注バスターズ説明資料  株式会社batton Saleshub掲載用.pdf
受発注バスターズ説明資料  株式会社batton Saleshub掲載用.pdf
ooishi1
 

Recently uploaded (6)

CO2排出量見える化・削減・報告クラウド「アスエネ」サービス紹介_Saleshub.pdf
CO2排出量見える化・削減・報告クラウド「アスエネ」サービス紹介_Saleshub.pdfCO2排出量見える化・削減・報告クラウド「アスエネ」サービス紹介_Saleshub.pdf
CO2排出量見える化・削減・報告クラウド「アスエネ」サービス紹介_Saleshub.pdf
 
NIST Cybersecurity Framework 2.0の変更点整理をしよう
NIST Cybersecurity Framework 2.0の変更点整理をしようNIST Cybersecurity Framework 2.0の変更点整理をしよう
NIST Cybersecurity Framework 2.0の変更点整理をしよう
 
FIWARE Orion Context Broker コンテキスト情報管理 (Orion 4.0.0対応)
FIWARE Orion Context Broker コンテキスト情報管理 (Orion 4.0.0対応)FIWARE Orion Context Broker コンテキスト情報管理 (Orion 4.0.0対応)
FIWARE Orion Context Broker コンテキスト情報管理 (Orion 4.0.0対応)
 
Grokking Simplicity探訪
Grokking Simplicity探訪Grokking Simplicity探訪
Grokking Simplicity探訪
 
アジャイルの30年(Tree Decades of Agileというブログ記事に関する要約)
アジャイルの30年(Tree Decades of Agileというブログ記事に関する要約)アジャイルの30年(Tree Decades of Agileというブログ記事に関する要約)
アジャイルの30年(Tree Decades of Agileというブログ記事に関する要約)
 
受発注バスターズ説明資料  株式会社batton Saleshub掲載用.pdf
受発注バスターズ説明資料  株式会社batton Saleshub掲載用.pdf受発注バスターズ説明資料  株式会社batton Saleshub掲載用.pdf
受発注バスターズ説明資料  株式会社batton Saleshub掲載用.pdf
 

Bond の v4 について