Slide 1

Slide 1 text

Application Coordinatorを利用した画面遷移 potatotips #38 Mar/22/2017 Takahiro Hiasa connpass: thiasa1 Twitter: @takahia

Slide 2

Slide 2 text

Who • 楽天株式会社2012年度新卒 • iOSエンジニアとサーバーサイドエンジニア を隔年ごとに行き来してます • 担当してきたサービス (楽天オークション、ラクマ) • C2Cサービスが大好き!! • お酒好き • 最近の悩みは... 2 無類のビールと 日本酒好き❤

Slide 3

Slide 3 text

Who • 楽天株式会社2012年度新卒 • iOSエンジニアとサーバーサイドエンジニア を隔年ごとに行き来してます • 担当してきたサービス (楽天オークション、ラクマ) • C2Cサービスが大好き!! • お酒好き • 最近の悩みは...毎年の健康診断でだんだ んと尿酸値が増えていっていること 3 無類のビールと 日本酒好き❤

Slide 4

Slide 4 text

4 駐車場スペースシェアリングサービス のラクパをリリースしました!

Slide 5

Slide 5 text

5 今日はラクパで採用した アーキテクチャの一部を紹介します!

Slide 6

Slide 6 text

ラクパのアーキテクチャの3本柱 6 Clean Architecture Application Coordinator Factory Pattern

Slide 7

Slide 7 text

今日はここだけ! 7 Clean Architecture Application Coordinator Factory Pattern

Slide 8

Slide 8 text

Application Coordinatorとは? • 画面遷移をコーディネートするもの • VCが遷移先を知る必要がないという点では VIPERのwireframeと同じスタンス • storyboardの画面遷移部分をコードに切り出 したものと考えてもらうとイメージしやすい 8

Slide 9

Slide 9 text

9 ラクパのPresentation Layerの構成の概要 Application Coordinator Transition Protocol ViewController Presenter ContorollersFactory Presenter Protocol

Slide 10

Slide 10 text

10 画面遷移の実装 Application Coordinator Transition Protocol ViewController Presenter ContorollersFactory Presenter Protocol

Slide 11

Slide 11 text

Transition Protocol 11

Slide 12

Slide 12 text

ViewController 12

Slide 13

Slide 13 text

Application Coordinator 13

Slide 14

Slide 14 text

Coordinatorを連結することも 14

Slide 15

Slide 15 text

Application Coordinatorのメリット • 画面遷移が集約されているため、Coordinatorを見るだけで、 画面遷移を理解することができる • 同じ画面で経路によって画面遷移が異なる場合、VCが遷移 元を気にする必要があったが、Application Coordinatorを利 用すると、その必要がなくなる。 • 一連の画面遷移をCoordinatorでまとめることで、画面遷移の 再利用化がしやすい • VCの修正をすることなしに、ダミーのVCと切り替えることがで きる 15

Slide 16

Slide 16 text

今後の課題 deeplinkによる画面遷移のハンドリングを Application Coordinatorでどう実現するか。 16

Slide 17

Slide 17 text

Sample Code https://github.com/takahia1988/ApplicationCoordinatorSample 17

Slide 18

Slide 18 text

楽天は優秀なアプリエンジニアを募集してます! 18 http://corp.rakuten.co.jp/careers/engineering/