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
830
4
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Presentation with Coordinators
Yusuke Kawanabe
January 10, 2018
More Decks by Yusuke Kawanabe
See All by Yusuke Kawanabe
Gunosy for Apple Watchができるまで
ykawanabe
6
840
Other Decks in Technology
See All in Technology
知見・人・API・DB・予算 ─ ナイナイ尽くしだった人事データ整備 with dbt、5年間の学び
ken6377
1
130
BPaaSで進むAIオペレーションの現在地 AI実装が効く領域とスケーラビリティの選定と実装
kentarofujii
0
250
なぜ人は自分のプロジェクトを 「なんちゃってアジャイル」と 自嘲するのか
kozotaira
0
230
きのこカンファレンス2026_肩書きを外したとき私は誰か
yamasatimi
1
120
ご挨拶「10周年を迎える共創ラボのこれまでとこれから」
iotcomjpadmin
0
170
「軸足」は 固定しなくていい - 熱量と強みで描く、しなやかなキャリアの形
kakehashi
PRO
1
320
製造現場での生成AIの活用、およびエージェントAIの実装のあり方、AVEVAの取り組み
iotcomjpadmin
0
210
時期が悪い!それでもRaspberry Piを買って遊んで活用するには / 20260627-osc26do-rpi-jikigawarui
akkiesoft
1
960
Baseline対応のDOMの型定義を作った
uhyo
2
560
Hatena Engineer Seminar 37 jj1uzh
jj1uzh
0
410
From Prompt Engineering to Loop Engineering
shibuiwilliam
1
320
“ID沼入口” - 基本とセキュリティから始める、考え続けるためのID管理技術勉強会 告知&イントロ
ritou
0
370
Featured
See All Featured
WCS-LA-2024
lcolladotor
0
670
Bash Introduction
62gerente
615
220k
Max Prin - Stacking Signals: How International SEO Comes Together (And Falls Apart)
techseoconnect
PRO
0
190
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
254
22k
Getting science done with accelerated Python computing platforms
jacobtomlinson
2
250
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
133
19k
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
35
2.5k
Side Projects
sachag
455
43k
Building Applications with DynamoDB
mza
96
7.1k
The Anti-SEO Checklist Checklist. Pubcon Cyber Week
ryanjones
0
180
Building Better People: How to give real-time feedback that sticks.
wjessup
370
20k
The B2B funnel & how to create a winning content strategy
katarinadahlin
PRO
1
410
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ͷΞϓϦΛ࠶ߏஙͨ͠ • ΞϓϦ։ൃ͍͠ • ιϑτΣΞΞʔΩςΫνϟʔͷબʹΑΓૣ͍։ൃΛอͪͭͭɺॊ ೈੑɺݎ࿚ੑɺ࠶ར༻ੑͷߴ͍ίʔυΛҡ࣋͘͢͠ͳΔ • ʹͳΓ͗͢ͳ͍Α͏ʹɺ։ൃΛ͠ͳ͕ΒɺඞཁʹԠͯ͡ઃܭͨ͠
• ։ൃମ੍ΞϓϦͷཁ݅ʹ͋Θͤͯ࠷దղมΘΔ ·ͱΊ