Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Presentation with Coordinators
Search
Yusuke Kawanabe
January 10, 2018
Technology
4
810
Presentation with Coordinators
Yusuke Kawanabe
January 10, 2018
Tweet
Share
More Decks by Yusuke Kawanabe
See All by Yusuke Kawanabe
Gunosy for Apple Watchができるまで
ykawanabe
6
830
Other Decks in Technology
See All in Technology
united airlines ™®️ USA Contact Numbers: Complete 2025 Support Guide
flyunitedhelp
1
440
SEQUENCE object comparison - db tech showcase 2025 LT2
nori_shinoda
0
190
Rethinking Incident Response: Context-Aware AI in Practice
rrreeeyyy
1
130
MobileActOsaka_250704.pdf
akaitadaaki
0
170
VS CodeとGitHub Copilotで爆速開発!アップデートの波に乗るおさらい会 / Rapid Development with VS Code and GitHub Copilot: Catch the Latest Wave
yamachu
2
190
60以上のプロダクトを持つ組織における開発者体験向上への取り組み - チームAPIとBackstageで構築する組織の可視化基盤 - / sre next 2025 Efforts to Improve Developer Experience in an Organization with Over 60 Products
vtryo
2
500
CDK Toolkit Libraryにおけるテストの考え方
smt7174
0
150
IPA&AWSダブル全冠が明かす、人生を変えた勉強法のすべて
iwamot
PRO
2
200
衛星運用をソフトウェアエンジニアに依頼したときにできあがるもの
sankichi92
1
170
American airlines ®️ USA Contact Numbers: Complete 2025 Support Guide
airhelpsupport
0
390
[ JAWS-UG千葉支部 x 彩の国埼玉支部 ]ムダ遣い卒業!FinOpsで始めるAWSコスト最適化の第一歩
sh_fk2
2
140
オフィスビルを監視しよう:フィジカル×デジタルにまたがるSLI/SLO設計と運用の難しさ / Monitoring Office Buildings: The Challenge of Physical-Digital SLI/SLO Design & Operation
bitkey
1
130
Featured
See All Featured
Building Applications with DynamoDB
mza
95
6.5k
The World Runs on Bad Software
bkeepers
PRO
69
11k
Done Done
chrislema
184
16k
Mobile First: as difficult as doing things right
swwweet
223
9.7k
Practical Orchestrator
shlominoach
189
11k
Designing for humans not robots
tammielis
253
25k
How to train your dragon (web standard)
notwaldorf
96
6.1k
Connecting the Dots Between Site Speed, User Experience & Your Business [WebExpo 2025]
tammyeverts
6
310
Making Projects Easy
brettharned
116
6.3k
Thoughts on Productivity
jonyablonski
69
4.7k
Learning to Love Humans: Emotional Interface Design
aarron
273
40k
The Art of Programming - Codeland 2020
erikaheidi
54
13k
Transcript
Presentation with Coordinators Yusuke Kawanabe (@ykawanabe)
2 Yusuke Kawanabe (@ykawanabe) • San FranciscoͰConnected Food SensorͷΞϓϦΛ։ൃ •
ʮiOS 11 ProgrammingʯͰୈ8ষ ʮUIKitͷΨΠυϥΠϯ ͷมߋͱAutoLayoutͷ৽ػೳɺΞοϓσʔτʯΛ୲ • ʮΑ͘Θ͔ΔAuto Layoutʯஶऀ • 2017͔ΒτϥΠΞεϩϯΛ͡ΊϋʔϑΞΠΞϯϚϯʹ Lead iOS Engineer at Nima
3 Nima • ੈքॳͷϙʔλϒϧάϧςϯηϯαʔٴͼ ϐʔφοπηϯαʔʹΑͬͯɺ৯ʹ҆৺ Λಧ͚͍ͯΔ • CES 2016ͷTechCrunch Hardware
Battlefieldʹͯ༏উ • CES 2018ʹͯϐʔφοπηϯαʔΛൃද
4 ΞϓϦ։ൃ͍͠
5 •ྫ͑ɺϑϦϚΞϓϦʹͯɺ ϩάΠϯը໘ΛɺΞϓϦىಈ ͔࣌Βબޙʹมߋ͢Δ A/BςετΛ͍ͨ͠ͳͲɻ UIશվम •ݟͨͷϦχϡʔΞϧɻ࠷ऴ తʹΞϓϦΛ࠶ߏங͢Δඞ ཁʹഭΒΕΔ͜ͱ͕ଟ͍ •ྫ͑MVVMΛ࠾༻ͨ͠
߹ʹɺView ModelʹϏδωε ϩδοΫ͕ूத͠ͳView Modelͱͳͬͯ͠·͏ͳͲɻ Ϣʔβʔϑϩʔมߋ ࠶ར༻ੑͷ͞ Ή͔͠ࠔͬͨ͜ͱ
6 ॊೈੑɺݎ࿚ੑɺ࠶ར༻ੑ Λߟ͑ΞϓϦΛ࠶ߏங͓ͨ͠
7 NimaͰʁ
8 NimaΞϓϦͰͰ͖Δ͜ͱ
9 NimaΞϓϦઃܭ֓ཁ Coordinator Scene View Controller View Model Context Interactor
Model Model Presentation Use Case Business Logic Use Case View
10 NimaΞϓϦઃܭ֓ཁ Coordinator Scene View Controller View Model Context Interactor
Model Model Presentation Use Case Business Logic Use Case View
11 NimaΞϓϦઃܭ֓ཁ Coordinator Scene View Controller View Model Context Interactor
Model Model View • Use caseୡΛཧ͢ΔΫϥε • ྫʣϢʔβʔϨετϥϯҰཡΛऔಘͰ͖Δ Presentation Use Case Business Logic Use Case
12 NimaΞϓϦઃܭ֓ཁ Coordinator Scene View Controller View Model Context Interactor
Model Model Presentation Use Case Business Logic Use Case View
Presentation Use Case Business Logic Use Case 13 NimaΞϓϦઃܭ֓ཁ Coordinator
Scene View Controller View Model Context Interactor Model Model View • MVVMͰͷView Modelͱಉ༷ͷׂ • දࣔʹඞཁͳঢ়ଶͷอ࣋ͱɺView Controller͔Βͷೖྗཧ • ͍ࣺͯ • MVVMͰͷView Controllerͱಉ༷ͷׂ • ViewͱView ModelΛܨ͙ͷΈ • View ControllerՄೳͳݶΓΞϗʹ • ͍ࣺͯ
14 NimaΞϓϦઃܭ֓ཁ Coordinator Scene View Controller View Model Context Interactor
Model Model View • ϓϨθϯςʔγϣϯϢʔεέʔεΛཧ͢Δ • e.g. ϢʔβʔొϑϩʔɺϨετϥϯݕࡧϑ ϩʔͳͲ Presentation Use Case Business Logic Use Case
15 Coordinator App Coordinator Coordinator Navigation Coordinator Scene Coordinator
16 Scene Coordinators and Scenes Scene Scene Coordinator •͋Δϑϩʔͷ֤ϏϡʔΛఆ͍ٛͯ͠ΔɻView ModelΛड͚औΓView
ControllerΛฦ͢ɻ •͋ΔϑϩʔΛఆ͍ٛͯ͠Δɻ֤View ModelΛ ࢹ࣍͠ͷSceneΛදࣔ͢Δɻ •͋Δϑϩʔʹ͓͚Δঢ়ଶΛอ࣋͢Δ •View Controller͕φϏήʔγϣϯʹؔ͢ΔࣝΛ ࣋ͨͳ͍ welcome signup Name signup Email signup Password
signup Password 17 Navigation Coordinator welcome signup Name signup Email
Welcome Scene Coordinator Restaurant Scene Coordinator Review Scene Coordinator •Scene CoordinatorୡΛཧ͠ɺΞϓϦͰͷը໘ભҠΛཧ͢Δɻ •্هͷΑ͏ͳΠϯλʔϑΣʔεΛ࣋ͪɺCoordinatorͷදࣔॱংΛཧ͢Δɻ •ϑϩʔͷೖΕସ͕͑༰қ
18 App Coordinator ىಈ Welcome Scene Coordinator Restaurant Scene Coordinator
•ΞϓϦىಈ࣌ͷը໘ఏڙΛཧ͢ΔɻͦͷͨΊɺKey WindowΛࢀর͠ɺಛఆͷϑϩʔΛ։࢝͢Δ •ىಈ࣌ͷॲཧΛɺApp Delegateʹॻ͔ͳͯ͘͢Ή ϩάΠϯࡁΈ ະϩάΠϯ Key window Λऔಘ Loading Scene Coordinator
19 Ͳ͏ղܾ͞Ε͔ͨ
20 •֤CoordinatorʹͯඞཁʹԠ ͯ͡ॱংΛมߋ͢ΔͷΈ UIશվम •View Controller͕Viewɺ View ModelͱͷଓΛ୲͢ ΔͷΈʹͳΔͷͰɺ෭࡞༻͕ ࠷খʹɻViewٴͼɺView
ControllerΛஔ͖͑ΔͷΈͰ ରԠՄೳɻ •ϓϨθϯςʔγϣϯͱϏδ ωεϩδοΫ͕໌֬ʹ͚Β Ε͍ͯΔͨΊɺϏδωεϩ δοΫ࠶ར༻ੑ͕ߴ͘ͳ Δɻ Ϣʔβʔϑϩʔมߋ ࠶ར༻ੑͷ͞ ΞϓϦ։ൃͰΑ͋͘ΔࠔΔ͜ͱ
21 ·ͱΊ
22 • NimaͷΞϓϦΛ࠶ߏஙͨ͠ • ΞϓϦ։ൃ͍͠ • ιϑτΣΞΞʔΩςΫνϟʔͷબʹΑΓૣ͍։ൃΛอͪͭͭɺॊ ೈੑɺݎ࿚ੑɺ࠶ར༻ੑͷߴ͍ίʔυΛҡ࣋͘͢͠ͳΔ • ʹͳΓ͗͢ͳ͍Α͏ʹɺ։ൃΛ͠ͳ͕ΒɺඞཁʹԠͯ͡ઃܭͨ͠
• ։ൃମ੍ΞϓϦͷཁ݅ʹ͋Θͤͯ࠷దղมΘΔ ·ͱΊ