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
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
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
人間はどの意思決定を手放せるのか
kawasima
15
8k
Kiro Meetup #8 Kiro アップデート (2026/3/21〜2026/9/24)
katzueno
1
140
Oracle Cloud Network Path Analyzerを試してみた/I Tried Out Oracle Cloud Network Path Analyzer
masakiokuda
1
110
フルカイテン株式会社 エンジニア向け採用資料
fullkaiten
0
12k
AI時代、データエンジニアが一番おもろい
genshun9
0
680
なぜ「決定性」が 決定的に重要なのか? Durable Execution 基盤の数理的理解 #serverlessjp / ServerlessDays Tokyo 2026
ytaka23
3
1.2k
Azure Serverless 2026:Production-ready な AI エージェント基盤 / Azure Serverless 2026: Production-Ready AI Agent Platform
miyake
2
540
Minecraft JavaのMODをSwiftで作る
1mash0
0
200
CLIライブラリ開発を支える技術
htnabe
0
150
負債のメタファと2026年 / Debt Metaphor in Agentic Engineering Age 202609 Edition
twada
PRO
10
6k
「どのログを見ればいい?」 から始めた サーバーレス障害解析
y_waka1
1
120
AIエージェントを最高のパートナーに育てる方法|評価と判断軸を育てる5つのステップ
koichiaoki
1
160
Featured
See All Featured
AI in Enterprises - Java and Open Source to the Rescue
ivargrimstad
0
1.5k
sira's awesome portfolio website redesign presentation
elsirapls
0
420
HTML-Aware ERB: The Path to Reactive Rendering @ RubyCon 2026, Rimini, Italy
marcoroth
5
720
Applied NLP in the Age of Generative AI
inesmontani
PRO
4
2.5k
A brief & incomplete history of UX Design for the World Wide Web: 1989–2019
jct
2
510
Game over? The fight for quality and originality in the time of robots
wayneb77
1
290
How to audit for AI Accessibility on your Front & Back End
davetheseo
0
550
Tips & Tricks on How to Get Your First Job In Tech
honzajavorek
1
770
The AI Revolution Will Not Be Monopolized: How open-source beats economies of scale, even for LLMs
inesmontani
PRO
3
3.7k
Skip the Path - Find Your Career Trail
mkilby
1
240
Practical Orchestrator
shlominoach
192
12k
Chasing Engaging Ingredients in Design
codingconduct
0
320
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