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.5k
Other Decks in Technology
See All in Technology
⾮構造化データを価値に変える AI エージェント基盤とその組織
ivry_presentationmaterials
0
190
分析の民主化を支えるメタデータ整備の実践
kakehashi
PRO
4
1.4k
UniFi(ユニファイ)AIカメラの現場活用
ludicmind
1
440
WasmをRustにする
sansantech
PRO
0
250
脆弱性診断って、何をしているの? 〜弱点を見つけて、会社の改善につなげるまで〜
keeg
0
920
Code for Security プロジェクト紹介 2026年10月
yu23ki14
0
110
しろおびから始める!ログ活用の第一歩
shumei_ito
0
950
Railsで挑む大量データ永続化 〜600億件を永続化するための設計とボトルネックとの戦い〜
occhi
1
580
DWH の限界突破! AI エージェント向け爆速リアルタイムデータ基盤 ClickHouse
jozono
1
470
ストレスなくAIと付き合いたい!こんなときどうしてる?
namiki64
3
490
OptunaHub: ブラックボックス最適化のためのプラットフォーム
pfn
PRO
0
140
AI駆動開発の時代になったのでトヨタ生産方式から見直す
terurou
7
6k
Featured
See All Featured
B2B Lead Gen: Tactics, Traps & Triumph
marketingsoph
1
280
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
33
5.2k
Speed Design
sergeychernyshev
33
2.2k
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
234
18k
Dealing with People You Can't Stand - Big Design 2015
cassininazir
367
27k
Money Talks: Using Revenue to Get Sh*t Done
nikkihalliwell
0
520
Sharpening the Axe: The Primacy of Toolmaking
bcantrill
46
3k
Visualization
eitanlees
153
17k
Designing for Performance
lara
612
70k
What the history of the web can teach us about the future of AI
inesmontani
PRO
2
740
For a Future-Friendly Web
brad_frost
184
10k
Have SEOs Ruined the Internet? - User Awareness of SEO in 2025
akashhashmi
0
520
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