Slide 1

Slide 1 text

Yoichi Tagaya ReactorKit Meetup Japan June 28, 2018 Architecture and ReactorKit

Slide 2

Slide 2 text

About Yoichi Tagaya • Original author of Swinject • Dependency Injection framework for iOS/Swift • iOS Engineer / Engineering manager at Mercari !ZPJDIJUHZ

Slide 3

Slide 3 text

https://www.ibm.com/developerworks/rational/library/feb06/eeles/

Slide 4

Slide 4 text

2nd at Google

Slide 5

Slide 5 text

Many Definitions of Software Architecture Definition by IEEE 1471 Architecture is the fundamental organization of a system embodied in its components, their relationships to each other, and to the environment, and the principles guiding its design and evolution. https://www.ibm.com/developerworks/rational/library/feb06/eeles/

Slide 6

Slide 6 text

No content

Slide 7

Slide 7 text

Peter Eeles, the Article Author, Says • Defines structure • Defines behavior • Focuses on significant elements • Influences team structure • Embodies decisions based on rationale • Balances stakeholder needs • Is influenced by its environment • May conform to an architectural style https://www.ibm.com/developerworks/rational/library/feb06/eeles/ An architecture

Slide 8

Slide 8 text

An Architecture Balances Stakeholder Needs Customers Share Holders Government Engineers PMs Designers Stakeholders of architects CS Security Team QA CTO VPoE Society Partners

Slide 9

Slide 9 text

An Architecture is Influenced by its Environment More
 DAU Stock price Compliance More engineers More new features New design Environment of a company Swift/ Reactive x years old codebase 100k+ lines of code Test automation Industrial organization More
 partners

Slide 10

Slide 10 text

Different Approach for Different Stakeholder/Environment Stakeholders Environment Environment Stakeholders Different approach Present Future

Slide 11

Slide 11 text

An Architecture May Conform to an Architectural Style https://github.com/ReactorKit/ReactorKit • MVC (Model/View/Controller) • MVVM (Model/View/ViewModel) • VIPER (View/Interactor/Presenter/Entity/Router) • iOS Clean Architecture • Flux (Unidirectional data flow for state handling) iOS Architectures

Slide 12

Slide 12 text

Ruby on Rails https://rubyonrails.org/ • MVC framework for web applications • Simple pattern to follow • Rapid application development

Slide 13

Slide 13 text

ReactorKit: Flux on rails with RxSwift Present Stakeholders Environment Future Stakeholders Environment = https://github.com/ReactorKit/ReactorKit Great pattern to follow to create the future of your app rapidly!

Slide 14

Slide 14 text

ReactorKit: iOS Development on Rails