Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Speaker Deck
PRO
Sign in
Sign up for free
The Power of ReSwift !!
shunsuke sato
May 09, 2016
Programming
1
480
The Power of ReSwift !!
Research ReSwift with creating demo app.
shunsuke sato
May 09, 2016
Tweet
Share
More Decks by shunsuke sato
See All by shunsuke sato
ANDPAD iOS開発の生態系と課題 - 最近取り組み始めた「マルチモジュール化」について
ushisantoasobu
1
540
Summary of Diagnose unreliable code with test repetitions
ushisantoasobu
1
570
実践!「みてね」における自動生成活用例
ushisantoasobu
5
3k
5 Tips when test fails randomly
ushisantoasobu
2
1.8k
Better Way for Test Data Generation??
ushisantoasobu
1
1.4k
iOS/Androidのサブスクリプション実装における違いをざっと振り返る
ushisantoasobu
2
1.1k
24時間でMacアプリを作ってスベってきた話
ushisantoasobu
0
1.8k
Redirectable in App?
ushisantoasobu
2
730
iOSのClean Architecture テンプレ自動生成を支える技術 / generating CA's templates
ushisantoasobu
0
210
Other Decks in Programming
See All in Programming
Update from the Elixir team - 2022
whatyouhide
0
200
Airflow1=>Airflow2へのupgrade 事例紹介
reizist
0
120
WindowsコンテナDojo:第2回 Windowsコンテナアプリのビルド、公開、デプロイ
oniak3ibm
PRO
0
150
機能横断型チームにおける技術改善
takeshiakutsu
3
510
How useEvent would change our applications
koba04
1
1.8k
GraphQL+KMM開発でわかったこと / What we learned from GraphQL+KMM development
kubode
0
130
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
3
610
httputil.ReverseProxy でもリトライがしたい
toga4
0
130
Jakarta EE 10 is Coming Your Way
ivargrimstad
0
3.3k
プログラミングを勉強したいと言われたら
yuba_4
0
430
Kotlin KSP - Intro
taehwandev
1
510
mrubyを1300円のボードで動かそう
yuuu
0
190
Featured
See All Featured
Build The Right Thing And Hit Your Dates
maggiecrowley
19
1.2k
How to Ace a Technical Interview
jacobian
265
21k
Gamification - CAS2011
davidbonilla
75
3.9k
Fontdeck: Realign not Redesign
paulrobertlloyd
73
4.1k
The Pragmatic Product Professional
lauravandoore
19
2.9k
Building Better People: How to give real-time feedback that sticks.
wjessup
343
17k
VelocityConf: Rendering Performance Case Studies
addyosmani
316
22k
Scaling GitHub
holman
451
140k
What's in a price? How to price your products and services
michaelherold
229
9.3k
Product Roadmaps are Hard
iamctodd
34
6.1k
The MySQL Ecosystem @ GitHub 2015
samlambert
238
11k
Navigating Team Friction
lara
175
11k
Transcript
The Power of ReSwift !! ZJEFWୈճษڧձ
ࣗݾհ w !VTIJTBOUPBTPCV w גࣜձࣾϑϯβॴଐ w J04"OESPJE+BWB4DSJQU w ϑοταϧίʔώʔ
֓ཁ 3F4XJGUΛ࣮ϓϩμΫτʹ࠾༻ͨ͠ͱ͖ʹΠέΔͷ͔ ͦͷௐࠪใࠂΈ͍ͨͳײ͡
ൃද͢Δʹ͋ͨͬͯͬͨ͜ͱ w ͦΕͬΆ͍σϞΞϓϦΛͭ͘Δ w ʮૉʯͷͭ͘ΓͰͭ͘Δ w 3F4XJGUͰϦϓϨΠε͢Δ w 3F4XJGUͷύϫʔͱ͔Λײ͡Δ
ΞδΣϯμ w 3F4XJGU֓ཁ w ͭͬͨ͘σϞΞϓϦέʔγϣϯͷ؆୯ͳհ w 3F4XJGUΛ༻͍ͨΞϓϦέʔγϣϯͷ࡞Γํ w 3F4XJGUͷΤίγεςϜ w
ʢࣗͷײͨ͡ʣ3F4XJGUΛͬͯΈͯͷࢥ͏͜ͱ
ʲ൵ใʳҎԼͷࢿྉಡΜͩ΄͏͕ྑ͍ͱࢥΘΕΔ w IUUQOJOKJOLVOIBUFOBCMPHDPNFOUSZ w IUUQTTQFBLFSEFDLDPNOJOKJOLVOSFBDUJWFTXJGUNFFUVQ
w IUUQTHJUIVCDPN3F4XJGU3F4XJGU w 3F4XJGU3FEVYͷ4XJGU൛ 3F4XJGU֓ཁ
3FEVYͱʁʁ w 3FEVY'MVY࣮ͷ͏ͪͷ̍ͭ w 'MVYσʔλϑϩʔʹؔ͢ΔʮΞʔΩςΫνϟʯ w 3FBDU+48FCΞϓϦέʔγϣϯͷʮϏϡʔʯϥΠϒϥϦ
3FEVYͱʁʁ ʢ˞͜ͷਤ3F4XJGUͷϖʔδΑΓʣ
3FEVYͱʁʁ w ొਓ"DUJPO4UPSF3FEVDFS w 6OJEJSFDUJPOBMEBUBqPX w 4JOHMF4UBUF5SFF ʢ˞͜ͷਤ3F4XJGUͷϖʔδΑΓʣ
ొਓ"DUJPO4UPSF3FEVDFS w "DUJPO w 4UPSFʢ˞ਤ͔ΒΘ͔ΓͮΒ͍͚Ͳɺ͜Ε͚ͩγϯάϧτϯʂʂʣ w 3FEVDFS ʢ˞͜ͷਤ3F4XJGUͷϖʔδΑΓʣ
6OJEJSFDUJPOBMEBUBqPX
7JFX͕4UPSFʢ4UBUFʣΛߋ৽ͨ͠Γ͠ͳ͍ 6OJEJSFDUJPOBMEBUBqPX No!!!
ΞϓϦέʔγϣϯͷঢ়ଶ̍ͭͷ4UBUFʹू͞ΕΔ 4JOHMF4UBUF5SFF
ʢཧʣ3F4XJGUͱʁʁ ΞϓϦέʔγϣϯͷʮঢ়ଶʯʹ੍ΛͨΒ͢ϑϨʔϜϫʔΫͰɺ w σʔλϑϩʔ͕୯Ұํ w ΞϓϦέʔγϣϯͷঢ়ଶ͕̍Օॴʹू͞ΕΔ ͱ͍͏ಛΛͭ
ͭͬͨ͘σϞΞϓϦέʔγϣϯͷ؆୯ͳհ w ͦΕͳΓͷنʢ7JFX$POUSPMMFSͷʣ w 5BCMF7JFXΈ͍ͨͳϦετදࣔ w ൚༻తͳ7JFX w ϑΥʔϜΆ͍ͷ w
QVTI7JFX$POUSPMMFSQSFTFOU7JFX$POUSPMMFS w ௨৴ॲཧʢࠓճμϛʔ͚ͩͲʣ w ΞϥʔτɺϩʔσΟϯά
αϯϓϧΞϓϦʹ͍ͭͯ
αϯϓϧΞϓϦʹ͍ͭͯ w 3F4XJGU͕ͲΜͳͷ͔ΛΔʹ͜ΕͰ͍͍ w 3F4XJGUͷΤίγεςϜʢ3F4XJGU3PVUFS3FDPSEFSʣΛΔ ͷ͜ΕͰ͍͍ w ͦΕͳΓͷنʹͳͬͨͱ͖ͷ3F4XJGUͷάουύλʔϯͩͱ͔ ʮπϥϛʯͱ͔Θ͔Βͳͦ͏
3F4XJGUΛ༻͍ͨΞϓϦέʔγϣϯͷ࡞Γํ
σʔλϑϩʔΛҰ௨ΓΈͯΈΔ w 4UBUFΛมߋ͍ͨ͠ w 4UBUF͕ͲͷΑ͏ʹมߋ͞ΕΔ͔ w 4UBUF͕Ϗϡʔʹө͞ΕΔ
σʔλϑϩʔΛҰ௨ΓΈͯΈΔ 4UBUFΛมߋ͍ͨ͠
σʔλϑϩʔΛҰ௨ΓΈͯΈΔ 4UBUF͕ͲͷΑ͏ʹมߋ͞ΕΔ͔
σʔλϑϩʔΛҰ௨ΓΈͯΈΔ 4UBUF͕Ϗϡʔʹө͞ΕΔ
σʔλϑϩʔΛҰ௨ΓΈͯΈΔ w 4UBUFΛมߋ͍ͨ͠ w 4UBUF͕ͲͷΑ͏ʹมߋ͞ΕΔ͔ w 4UBUF͕Ϗϡʔʹө͞ΕΔ
4UBUFΛมߋ͍ͨ͠
4UBUFΛมߋ͍ͨ͠ 4UPSF͕"DUJPOΛEJTQBUDI͢Δ
σʔλϑϩʔΛҰ௨ΓΈͯΈΔ w 4UBUFΛมߋ͍ͨ͠ w 4UBUF͕ͲͷΑ͏ʹมߋ͞ΕΔ͔ w 4UBUF͕Ϗϡʔʹө͞ΕΔ
4UBUF͕ͲͷΑ͏ʹมߋ͞ΕΔ͔
4UBUF͕ͲͷΑ͏ʹมߋ͞ΕΔ͔ 3FEVDFS͕ରԠ͢Δ"DUJPOຖʹ4UBUFΛߋ৽͢Δ
σʔλϑϩʔΛҰ௨ΓΈͯΈΔ w 4UBUFΛมߋ͍ͨ͠ w 4UBUF͕ͲͷΑ͏ʹมߋ͞ΕΔ͔ w 4UBUF͕Ϗϡʔʹө͞ΕΔ
4UBUF͕Ϗϡʔʹө͞ΕΔ
4UBUF͕Ϗϡʔʹө͞ΕΔ 4UPSF͕7JFX$POUSPMMFSΛTVCTDSJCF͢ΔɺϏϡʔͷߋ৽ϦΞΫςΟϒʹ
ͦΕͧΕͷొਓͷதΛΈ͍ͯ͘ w "DUJPO w 4UPSF w 3FEVDFS w 7JFX 7JFX$POUSPMMFS
"DUJPO
"DUJPO w 4UBUFมߋ࣌ʹૹΒΕΔͷ w ͨͩͷʮใʢσʔλʣʯ w ࣗͱͯ͠ͱ͘ʹͳʹ͠ͳ͍ʢʮۭʯͷϓϩτίϧͰ͋Δʣ
4UPSF
4UPSF w 4UPSFΞϓϦέʔγϣϯͷγϯάϧτϯ w 4UPSF͕"DUJPOΛEJTQBUDI͢Δ w 4UPSF͕อ͍࣋ͯ͠Δ4UBUF͕ΞϓϦέʔγϣϯͷঢ়ଶ
3FEVDFS
3FEVDFS w 3FEVDFS4UBUFΛͲͷΑ͏ʹߋ৽͢Δ͔ͷΈΛ୲͏ w 3FEVDFSͨͩͷ'VODUJPO w "DUJPOͷܕʹΑͬͯॲཧ͚
7JFX 7JFX$POUSPMMFS
7JFX 7JFX$POUSPMMFS 4UPSF4VCTDSJCFSϓϩτίϧΛDPOGPSN͢Δ
7JFX 7JFX$POUSPMMFS 4UPSF4VCTDSJCFSϓϩτίϧͰఆٛ͞Ε͍ͯΔOFX4UBUFϝιουΛ࣮͢Δ
7JFX 7JFX$POUSPMMFS OFX4UBUFϝιουʹɺ4UBUFʹରͯ͠7JFX͕ͲͷΑ͏ʹදࣔ͞ΕΔ͔Λએݴతʹॻ͘
7JFX 7JFX$POUSPMMFS 4UPSFͷTVCTDSJCFVOTVCTDSJCFͷॲཧΛॻ͘
7JFX 7JFX$POUSPMMFS 4UBUFΛߋ৽͍ͨ͠ͱ͖ɺͦΕʹରԠͨ͠"DUJPOΛEJTQBUDI͢Δ
7JFX 7JFX$POUSPMMFS 4UPSFͷ4UBUFΛ͍͡Βͳ͍ʂʂ No!!!
3F4XJGUͷΤίγεςϜ w 3F4XJGU3PVUFS w 3F4XJGU3FDPSEFS
3F4XJGU3PVUFS w 3F4XJGUͰΞϓϦέʔγϣϯͷঢ়ଶΛશͯཧ͍ͨ͠ w J04ʹ͓͚ΔʮϧʔςΟϯάʯ4UBUFͷ̍ͭ w ϝϦοτ3F4XJGU3FDPSEJOHͷͱ͜ΖͰ
3F4XJGU3PVUFSద༻֓ཁ ͜͜Ͱ͍ͩͿলུͯ͠EJTQBUDIͷॲཧͷΈʢଞʹઃఆ͕݁ߏखؒͩͬͨΓ͢Δʣ
3F4XJGU3PVUFSద༻֓ཁ ্ͷSPVUFͨͩͷจࣈྻͷྻ63-తͳѻ͍ʢzTPNFIPHFzʣɺ͍ͦͭΛ1BZMPBEʹ͢Δ
3F4XJGU3FDPSEFS w "DUJPOͷཤྺΛه w ͦΕͭ·Γɺͯ͢ͷ࣌Ͱͷ4UBUFΛ࠶ݱͰ͖Δͱ͍͏͜ͱ w λΠϜτϥϕϧʢ6OEP3FEPʣ w ։ൃ࣌ͷঢ়ଶ࠶ݱ w
"DUJPO4UBOEBSE"DUJPO$POWFSUJCMFʹϦϓϨΠε͢Δඞཁ༗ w 4FU3PVUF4QFDJpD%BUB͕བྷΉͱݱঢ়͍͠ʁʁ
w ΞϓϦέʔγϣϯͷঢ়ଶ͕̍Օॴʹू͞ΕΔʂʂ w 3F4XJGUͷ4UBUFͱͯ͠ѻ͑ͳ͍ʮঢ়ଶʯ͕͋Δ w ࠩߋ৽ w 4UBUFͷׂͷํ w ଞίʔυྔ͕૿͑ΔʢʣɺϦηοτॲཧ
3F4XJGU͞ΘͬͯΈͯײͨ͜͡ͱ·ͱΊ
ΞϓϦέʔγϣϯͷঢ়ଶ͕̍Օॴʹू͞ΕΔʂʂ ·ͣʢ͜Ε·Ͱ͓ͦΒ͘ଘࡏͨ͠Ͱ͋Ζ͏ʣ7JFX$POUSPMMFSͷঢ়ଶมҰͳ͘ͳΔ
ΞϓϦέʔγϣϯͷঢ়ଶ͕̍Օॴʹू͞ΕΔʂʂ 4UPSF͕ͯ͢Λ͍ͬͯΔɻ4UPSFʮਆʯ
3F4XJGUͷ4UBUFͱͯ͠ѻ͑ͳ͍ʮঢ়ଶʯ͕͋Δ w Ξχϝʔγϣϯ w 6*"MFSU$POUSPMMFS w ΩʔϘʔυͷදࣔඇදࣔ w αʔυύʔςΟͷϥΠϒϥϦʢྫ͑z471SPHSFTT)6%zʣ
3F4XJGUͷ4UBUFͱͯ͠ѻ͑ͳ͍ʮঢ়ଶʯ͕͋Δ w Ξχϝʔγϣϯ w 6*"MFSU$POUSPMMFS w ΩʔϘʔυͷදࣔඇදࣔ w αʔυύʔςΟͷϥΠϒϥϦʢྫ͑z471SPHSFTT)6%zʣ w
ࠓճͷσϞΞϓϦέʔγϣϯͰɺΧελϜΞϥʔτɺΧελϜϩʔσΟ ϯάΛͭͬͯ͘3F4XJGUΣΠʹͤͨ w ͱ͍͑ɺ6*"MFSU$POUSPMMFSͬͯΔՕॴ͋Δ͠ɺΩʔϘʔυͷॲ ཧͳͲɺ3F4XJGUΣΠʹΒͳ͍ͷ͕͋ͬͯɺؾ࣋ͪతʹগ͠ࣃ ͕Ώ͍͚ͩͰෆศͳ͜ͱͳ͍ͣ
ࠩߋ৽
ࠩߋ৽ ճEJTQBUDI͢Δͱ͍͏͜ͱ
ࠩߋ৽ ճඳըߋ৽͕Δ6*5BCMF7JFXͷSFMPBE%BUBΈ͍ͨͳίετߴͦ͏ͳͷϚζΠͷͰʁʁ
ࠩߋ৽ ճඳըߋ৽͕Δ6*5BCMF7JFXͷSFMPBE%BUBΈ͍ͨͳίετߴͦ͏ͳͷϚζΠͷͰʁʁ w ࠩߋ৽ͷ࣮͕ඞཁʁʁ w 3F4XJGUࣗ͜͜ΒΜʹ͍ͭͯಛʹݴٴͳ͠ͷͣ
4UBUFͷׂͷํ 4UBUFΛͲͷΑ͏ʹׂ͖͢ͳͷ͔ʁʁ
4UBUFͷׂͷํ w ͱΓ͋͑ͣࠓճ7JFX$POUSPMMFSຖͷ4UBUFΛͭͬͯ͘Έͨ w ҟͳΔ7JFX$POUSPMMFSͰಉ͡σʔλΛࢀর͍ͨ͠έʔεʁʁͱ͍͏ ͜ͱΛߟ͑Δͱଟ7JFX$POUSPMMFSͰ͚ͪΌμϝ 4UBUFΛͲͷΑ͏ʹׂ͖͢ͳͷ͔ʁʁ
ଞίʔυྔ͕૿͑ΔʢʣɺϦηοτॲཧ 4UBUFΛͲͷΑ͏ʹׂ͖͢ͳͷ͔ʁʁ
͝ਗ਼ௌ͋Γ͕ͱ͏͍͟͝·ͨ͠ʂʂ