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
210
安心安全な開発にむけて/matching-dev-meetup-5
corin8823
0
480
Bad practice for tax hike handling
corin8823
0
640
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
Reticulum, le réseau cypherpunk dont vous avez besoin !
rlifchitz
0
130
2026 Apache Flink Community Checkpoint
rmetzger
0
220
【Oracle AI SPOTLIGHT ウェビナー】【特別開催:日本語で解説!】Oracle AI World 2026 最新情報フィードバック
oracle4engineer
PRO
1
130
Bots in Kiro Crew (One point of contact for ongoing work) | Kiro: Zero to Hero 12
inariku
PRO
1
120
これからのデータエンジニアの役割について考える / Rethinking the Role of Data Engineers in the AI Era
okiyuki99
0
350
Kiro 入門 (1 つのエージェントを、どの画面からでも) | 目指せ Kiro マスター 01
inariku
PRO
6
1.5k
アラートを見直していたら営業組織への理解にちょっとだけ繋がった話
z63d
0
170
顧客合意を取りながら進めるAWSコスト削減の実践
optim
0
160
Steering と Hook (チームの決まりを守らせる) | 目指せ Kiro マスター 06
inariku
PRO
2
100
プロダクションコードにおける encoding/json から encoding/json/v2 へのスムーズな移行
sansantech
PRO
1
320
Sizing, Benchmarking and Performance Tuning Apache Flink Clusters
rmetzger
0
150
llm-d に入門してみた / Try out llm-d
kota2and3kan
0
110
Featured
See All Featured
The untapped power of vector embeddings
frankvandijk
2
2k
How to audit for AI Accessibility on your Front & Back End
davetheseo
0
630
Stewardship and Sustainability of Urban and Community Forests
pwiseman
0
590
Impact Scores and Hybrid Strategies: The future of link building
tamaranovitovic
0
480
Leading Effective Engineering Teams in the AI Era
addyosmani
9
2.9k
Kristin Tynski - Automating Marketing Tasks With AI
techseoconnect
PRO
0
590
Design of three-dimensional binary manipulators for pick-and-place task avoiding obstacles (IECON2024)
konakalab
0
660
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
123
22k
Bioeconomy Workshop: Dr. Julius Ecuru, Opportunities for a Bioeconomy in West Africa
akademiya2063
PRO
1
450
Designing Dashboards & Data Visualisations in Web Apps
destraynor
232
55k
XXLCSS - How to scale CSS and keep your sanity
sugarenia
250
1.3M
The Anti-SEO Checklist Checklist. Pubcon Cyber Week
ryanjones
0
290
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