Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
SwiftBondReactiveKit.pdf
Search
thedevme
July 21, 2016
Technology
1
12k
SwiftBondReactiveKit.pdf
Presentation given at Realm about why I enjoy using ReactiveKit formerly known as SwiftBond.
thedevme
July 21, 2016
Tweet
Share
More Decks by thedevme
See All by thedevme
Developing Your Kaizen Plan by Craig Clayton
thedevme
0
140
Other Decks in Technology
See All in Technology
Frontier Agents (Kiro autonomous agent / AWS Security Agent / AWS DevOps Agent) の紹介
msysh
3
170
GSIが複数キー対応したことで、俺達はいったい何が嬉しいのか?
smt7174
3
150
生成AI時代にこそ求められるSRE / SRE for Gen AI era
ymotongpoo
5
3.1k
Contract One Engineering Unit 紹介資料
sansan33
PRO
0
13k
AI駆動開発を事業のコアに置く
tasukuonizawa
1
180
CDKで始めるTypeScript開発のススメ
tsukuboshi
1
390
StrandsとNeptuneを使ってナレッジグラフを構築する
yakumo
1
110
超初心者からでも大丈夫!オープンソース半導体の楽しみ方〜今こそ!オレオレチップをつくろう〜
keropiyo
0
110
Agile Leadership Summit Keynote 2026
m_seki
1
610
仕様書駆動AI開発の実践: Issue→Skill→PRテンプレで 再現性を作る
knishioka
2
640
小さく始めるBCP ― 多プロダクト環境で始める最初の一歩
kekke_n
1
410
Tebiki Engineering Team Deck
tebiki
0
24k
Featured
See All Featured
AI Search: Where Are We & What Can We Do About It?
aleyda
0
6.9k
Optimising Largest Contentful Paint
csswizardry
37
3.6k
Impact Scores and Hybrid Strategies: The future of link building
tamaranovitovic
0
200
Connecting the Dots Between Site Speed, User Experience & Your Business [WebExpo 2025]
tammyeverts
11
830
Improving Core Web Vitals using Speculation Rules API
sergeychernyshev
21
1.4k
Navigating the moral maze — ethical principles for Al-driven product design
skipperchong
2
240
Digital Ethics as a Driver of Design Innovation
axbom
PRO
1
180
Max Prin - Stacking Signals: How International SEO Comes Together (And Falls Apart)
techseoconnect
PRO
0
84
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
31
3.1k
ラッコキーワード サービス紹介資料
rakko
1
2.3M
Design in an AI World
tapps
0
140
We Are The Robots
honzajavorek
0
160
Transcript
@thedevme SWIFT BOND My name is Bond @thedevme Craig Clayton
None
None
What is SwiftBond?
Why I use SwiftBond? ReactiveKit?
None
None
None
UILabel
@IBOutlet var lblAway: UILabel! var awayScore = Property<String>(“0”) awayScore.bindTo(lblAway) UILabel
@IBOutlet var lblAway: UILabel! var awayScore = Property<String>(“0”) awayScore.bindTo(lblAway) UILabel
@IBOutlet var lblAway: UILabel! var awayScore = Property<String>(“0”) awayScore.bindTo(lblAway) UILabel
UIButton
btnReset.rTap.observeNext { [weak self] _ in guard let weakSelf =
self else { return } weakSelf.homeScoreValue = 0 weakSelf.awayScoreValue = 0 weakSelf.awayScore.value = "0" weakSelf.homeScore.value = "0" }.disposeIn(rBag) UIButton
btnReset.rTap.observeNext { [weak self] _ in guard let weakSelf =
self else { return } weakSelf.homeScoreValue = 0 weakSelf.awayScoreValue = 0 weakSelf.awayScore.value = "0" weakSelf.homeScore.value = "0" }.disposeIn(rBag) UIButton
btnReset.rTap.observeNext { [weak self] _ in guard let weakSelf =
self else { return } weakSelf.homeScoreValue = 0 weakSelf.awayScoreValue = 0 weakSelf.awayScore.value = "0" weakSelf.homeScore.value = "0" }.disposeIn(rBag) UIButton
UIBarButtonItem
barBtnCamera.rTap.observeNext { [weak self] _ in guard let weakSelf =
self else { return } weakSelf.lblDisplay.rText.value = "Camera Tapped” }.disposeIn(rBag) UIBarButtonItem
barBtnCamera.rTap.observeNext { [weak self] _ in guard let weakSelf =
self else { return } weakSelf.lblDisplay.rText.value = "Camera Tapped” }.disposeIn(rBag) UIBarButtonItem
barBtnCamera.rTap.observeNext { [weak self] _ in guard let weakSelf =
self else { return } weakSelf.lblDisplay.rText.value = "Camera Tapped” }.disposeIn(rBag) UIBarButtonItem
UISegmentedControl
segmentControl.rSelectedSegmentIndex.skip(1).observeNext { … in guard let weakSelf = self else
{ return } if value == 0 { weakSelf.lblDisplay.rText.value = "Players Segment selected" } else { weakSelf.lblDisplay.rText.value = "Coaches Segment selected" } }.disposeIn(rBag) UISegmentedControl
segmentControl.rSelectedSegmentIndex.skip(1).observeNext { … in guard let weakSelf = self else
{ return } if value == 0 { weakSelf.lblDisplay.rText.value = "Players Segment selected" } else { weakSelf.lblDisplay.rText.value = "Coaches Segment selected" } }.disposeIn(rBag) UISegmentedControl
segmentControl.rSelectedSegmentIndex.skip(1).observeNext { … in guard let weakSelf = self else
{ return } if value == 0 { weakSelf.lblDisplay.rText.value = "Players Segment selected" } else { weakSelf.lblDisplay.rText.value = "Coaches Segment selected" } }.disposeIn(rBag) UISegmentedControl
UISwitch
switchReactive.rOn.skip(1).observeNext { [weak self] value in guard let weakSelf =
self else { return } weakSelf.lblDisplay.rText.value = “\(value)" }.disposeIn(rBag) UISwitch
switchReactive.rOn.skip(1).observeNext { [weak self] value in guard let weakSelf =
self else { return } weakSelf.lblDisplay.rText.value = “\(value)" }.disposeIn(rBag) UISwitch
switchReactive.rOn.skip(1).observeNext { [weak self] value in guard let weakSelf =
self else { return } weakSelf.lblDisplay.rText.value = “\(value)" }.disposeIn(rBag) UISwitch
None
tableView.rDataSource.forwardTo = self data.bindTo(tableView) { [weak self] indexPath, dataSource, collectionView
in guard let weakSelf = self else { return UITableViewCell() } let cell = weakSelf.tableView.dequeueReusableCellWithIdentifier (weakSelf.textCellIdentifier, forIndexPath: indexPath) let row = indexPath.row cell.textLabel?.text = weakSelf.data[row] return cell } UITableView
tableView.rDataSource.forwardTo = self data.bindTo(tableView) { [weak self] indexPath, dataSource, collectionView
in guard let weakSelf = self else { return UITableViewCell() } let cell = weakSelf.tableView.dequeueReusableCellWithIdentifier (weakSelf.textCellIdentifier, forIndexPath: indexPath) let row = indexPath.row cell.textLabel?.text = weakSelf.data[row] return cell } UITableView
tableView.rDataSource.forwardTo = self data.bindTo(tableView) { [weak self] indexPath, dataSource, collectionView
in guard let weakSelf = self else { return UITableViewCell() } let cell = weakSelf.tableView.dequeueReusableCellWithIdentifier (weakSelf.textCellIdentifier, forIndexPath: indexPath) let row = indexPath.row cell.textLabel?.text = weakSelf.data[row] return cell } UITableView
tableView.rDataSource.forwardTo = self data.bindTo(tableView) { [weak self] indexPath, dataSource, collectionView
in guard let weakSelf = self else { return UITableViewCell() } let cell = weakSelf.tableView.dequeueReusableCellWithIdentifier (weakSelf.textCellIdentifier, forIndexPath: indexPath) let row = indexPath.row cell.textLabel?.text = weakSelf.data[row] return cell } UITableView
MMMM …
None
None
None
None
None
QUESTIONS?