Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
Introduction Differ/differ
Search
corin8823
October 25, 2017
Technology
3.8k
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Introduction Differ/differ
corin8823
October 25, 2017
More Decks by corin8823
See All by corin8823
検証と資産化を形にするプロダクト組織へ/tapple_pmconf2024
corin8823
2
17k
経済学の知見を活かしたユーザに行動変容を促す仕掛け - タップルでの共同研究プロジェクトを例として
corin8823
1
170
新しい恋愛様式への挑戦/engineer_career_design_week
corin8823
0
200
安心安全な開発にむけて/matching-dev-meetup-5
corin8823
0
480
Bad practice for tax hike handling
corin8823
0
630
Practice of build and CI/CD at tapple/practice_of_build_at_tapple
corin8823
1
290
「タップル誕生」における開発の変化 / change_development
corin8823
1
480
明日から使えるViewControllerの Memory Leak検出/iOSDC-2018-Memory-Leak
corin8823
6
2.8k
マッチングアプリにつきまとう状態管理のつらさ/torte_state
corin8823
9
7.4k
Other Decks in Technology
See All in Technology
Amazon Quick on DesktopがIAM Identity Centerで動かない理由
yukiogawa
0
180
GoCon2026 - Open Source, Open World
sanposhiho
4
3.5k
synctest時代のhttptest Go 1.27で変わるHTTPサーバテストの裏側 / go conference2026 synctest and httptest
budougumi0617
1
2.8k
AIで仕事のやり方を変える
matsu7874
3
1.1k
山手線を徒歩で一周してわかった、 位置情報アプリは「足」が最強のデバッガー
hinakko
0
140
Screen Lens - 今見てる画面を翻訳する
komagata
0
270
事業課題から技術的負債に向き合う
sansantech
PRO
2
540
Tips for Building Useful Agent Skills
rstankov
0
110
コーディングエージェントでM5Stack系の開発を少し試した時の話 / M5 Japan Tour 2026 Autumn 東京
you
PRO
0
190
SREは、MCPとAutopilotをこう使え!
kazumax55
1
150
作品が生態系になった ─ Mini Tokyo 3D から世界へ
nagix
0
180
ASTを使って影響範囲を特定する
nealle
0
180
Featured
See All Featured
Designing Powerful Visuals for Engaging Learning
tmiket
1
540
WCS-LA-2024
lcolladotor
0
830
The Straight Up "How To Draw Better" Workshop
denniskardys
239
140k
Deep Space Network (abreviated)
tonyrice
0
300
Rebuilding a faster, lazier Slack
samanthasiow
85
9.6k
How To Stay Up To Date on Web Technology
chriscoyier
790
250k
The Myth of the Modular Monolith - Day 2 Keynote - Rails World 2024
eileencodes
28
3.6k
Embracing the Ebb and Flow
colly
88
5.2k
Marketing Yourself as an Engineer | Alaka | Gurzu
gurzu
0
300
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
49
3.6k
How GitHub (no longer) Works
holman
316
150k
Sam Torres - BigQuery for SEOs
techseoconnect
PRO
0
540
Transcript
INTRODUCTION DIFFER ߴڮ ༏հ @corin8823 2017.10.25 POTATOTIPS #44
ߴڮ ༏հ yusuke takahashi corin8823 @corin8823 ࣗݾհ
IUUQTGBDFCPPLHJUIVCJPqVYEPDTJOEFQUIPWFSWJFXIUNMDPOUFOU 'MVY
'MVYྫ final class TopViewController: UIViewController { @IBOutlet weak var tableView:
UITableView! private let store = TopStore() private let disposeBag = DisposeBag() override func viewDidLoad() { super.viewDidLoad() self.store.items .asObservable() .bind { [weak self] _ in self?.tableView.reloadData() } .disposed(by: self.disposeBag) } }
'MVYྫ final class TopViewController: UIViewController { @IBOutlet weak var tableView:
UITableView! private let store = TopStore() private let disposeBag = DisposeBag() override func viewDidLoad() { super.viewDidLoad() self.store.items .asObservable() .bind { [weak self] _ in self?.tableView.reloadData() } .disposed(by: self.disposeBag) } }
%FNP
w UBCMF7JFXΛSFMPBE%BUB͢Δ͚ͩ w Ξχϝʔγϣϯ͞Εͳ͍ ɾТɾʆ w ݅আ͚ͩͳͷʹSFMPBEͱ͔ɻɻɻ ɾТɾʆ
w 7JSUVBM%0.ͷࡶͳཧղ w EJ⒎Λऔಘ w QBUDI͢ΔBDUJPO w ࠷খͷίετͰঢ়ଶભҠΛදݱ 8FCϑϩϯτΤϯυͷ'MVY3FEVYͩͱ IUUQTRJJUBDPNNJ[DIJJUFNTECDEFGEF
w ී௨ͷ7JFXCJOE͢Δ͚ͩ ͔͠ͳ͍ w UBCMF7JFXDPMMFDUJPO7JFX·͍͠ w CFHJO6QEBUFTFOE6QEBUFT w JOEFY1BUIͷࢦఆ͕ඞཁɻɻɻ
w JOEFY1BUIΛ4UPSFʹ͑ͯɻɻɻ J04ͩͱ
UPOZBSOPME%J⒎FS IUUQTHJUIVCDPNUPOZBSOPME%J⒎FS
w XPLBMTLJ%J⒎TXJGU͕ͱͱ w 0 / . % w /ͱ.͕ྻͷ͞ɺ%͕ࠩ
w ྻͷҧ͍Λੜ w UBCMF7JFXͱ$PMMFDUJPO7JFXͷ&YUFOTJPO UPOZBSOPME%J⒎FS IUUQDPOTUFMMBUJPOIBUFOBCMPHDPNFOUSZ IUUQTHJUIVCDPNXPLBMTLJ%J⒎TXJGU
UPOZBSOPME%J⒎FS IUUQTHJUIVCDPNKqJOUFS%XJ⒎U w KqJOUFS%XJ⒎U͋Δ w UPOZBSOPME%J⒎1FSGPSNBODF4VJUF w BOJNBUF3PX$IBOHFT PME%BUBPME OFX%BUBOFX
w BOJNBUF3PX"OE4FDUJPO$IBOHFT PME%BUBPME OFX%BUBOFX IUUQTHJUIVCDPNUPOZBSOPME%J⒎1FSGPSNBODF4VJUF
%FNP
w ϥϯμϜͳจࣈྻΛྻʹ"EE w ͦͷதྻ͔ΒͭΛ%FMFUF %FNP IUUQTHJUIVCDPNDPSJO%J⒎FS%FNP
/PSNBM
%J⒎FS
'MVYXJUI%J⒎FS final class TopViewController: UIViewController { @IBOutlet weak var tableView:
UITableView! private let store = TopStore() private let disposeBag = DisposeBag() override func viewDidLoad() { super.viewDidLoad() self.store.items .asObservable() .scan([]) { [weak self] (old, new) -> [String] in self?.tableView.animateRowChanges( oldData: old, newData: new) return new }.bind { [weak self] _ in } .disposed(by: self.disposeBag) } }
·ͱΊ
ઃܭͱύϑΥʔϚϯεͷ ཱ͕͍͍྆ײ͡ʹ
5)"/,:06