mvvm is like born fraction

32
MVVM IS LIKE FRACTURE TECH TALK TOKYO VOL.5 10/5

Upload: ken-haneda

Post on 09-Jan-2017

600 views

Category:

Engineering


0 download

TRANSCRIPT

Page 1: Mvvm is like born fraction

MVVM IS LIKE FRACTURETECH TALK TOKYO VOL.5 10/5

Page 2: Mvvm is like born fraction
Page 3: Mvvm is like born fraction

HAVE YOU RECENTLY BEEN FRACTURE?

Page 4: Mvvm is like born fraction

I HAD A FRACTURE BEFORE RELEASE MY PROJECT.

Page 5: Mvvm is like born fraction

MVVM≒

Page 6: Mvvm is like born fraction

TODAY, I’D LIKE TO TALK ABOUT MVVM.

Page 7: Mvvm is like born fraction

INTRODUCTION

KENTARO HANEDA (27) @JUMBOS5▸ Job

▸ RareJob.Consumer Dept. Mobile Developer

▸ Job History

▸ Retty 👉 Yahoo!JAPAN(ヤフオク)👉 RareJob

▸ Work/Interest

▸ Go/iOS/Kotlin/Python/Marketing

Page 8: Mvvm is like born fraction

PORTFOLIO

DEV.

「レアジョブ日常英会話アプリ」Swift2.3/Universal/1month

InShadeBackend (RoR/MySQL/PhantomJS)Swift2.0Android (Kotlin/RxJava)

released by adriablue.

lanskipWeek end commit.Backend (Azure/Golang/Revel)

Page 9: Mvvm is like born fraction

WHAT’S MVVM?

Page 10: Mvvm is like born fraction

RAREJOB APP ARCHITECTURE

My App has many state.

Page 11: Mvvm is like born fraction

RAREJOB APP ARCHITECTURE

View View Model Model

Binding Update

Fetch

View ViewController Model

Update

ActionAction

Update

MVVM?

or

MVC?

Page 12: Mvvm is like born fraction

RAREJOB APP ARCHITECTURE

View View Model Model

Binding Update

Fetch

View ViewController Model

Update

ActionAction

Update

????????????????

Page 13: Mvvm is like born fraction

RAREJOB APP ARCHITECTURE

View View Model Model

Binding Update

Fetch

????????????????

Page 14: Mvvm is like born fraction

STEP

FRACTURE

1. Slip Human.

2. Born has damage

3. Human to “Fracture”

Page 15: Mvvm is like born fraction

STEP

MVVM

1. View get action.

2. Change value.

3. Change View and State.

View View Model Model

Binding Update

Fetch

Page 16: Mvvm is like born fraction

STEP

View View Model Model

Binding Update

Fetch

class ArmView{ var vm:ArmViewModel var skin:Skin var hand:Hand func slip()}

class ArmViewModel{ var state:ArmStatus var born:BornModel …}

class BornModel{ var count:Int var damage:Float …}

Page 17: Mvvm is like born fraction

View View Model Model

Binding Update

Fetch

class ArmView{ var vm:ArmViewModel var skin:Skin var hand:Hand func slip()}

class ArmViewModel{ var state:ArmStatus var born:BornModel …}

class BornModel{ var count:Int var damage:Float …}Call slip()

change viewmodel property “born”

STEP

Page 18: Mvvm is like born fraction

View View Model Model

Binding Update

Fetch

class ArmView{ var vm:ArmViewModel var skin:Skin var hand:Hand func slip()}

class ArmViewModel{ var state:ArmStatus var born:BornModel …}

class BornModel{ var count:Int var damage:Float …}

Change values, and change “state”

STEP

Page 19: Mvvm is like born fraction

View View Model Model

Binding Update

Fetch

class ArmView{ var vm:ArmViewModel var skin:Skin var hand:Hand func slip()}

class ArmViewModel{ var state:ArmStatus var born:BornModel …}

class BornModel{ var count:Int var damage:Float …}

Change “value”, then change “state” then change “view”

STEP

Page 20: Mvvm is like born fraction

View View Model Model

Binding Update

Fetch

STEP

MVVM is …

🙅 born broken then state to Fracture , next view to Fracture.

🙆 born broken then state to Fracture then view to Fracture. ≒ BINDING

Page 21: Mvvm is like born fraction

HOW TO USE MVVM?

Page 22: Mvvm is like born fraction

RAREJOB APP ARCHITECTURE

How my app to mvvm?

Page 23: Mvvm is like born fraction

ReserveView

ReserveViewModel :StateView

Model

TeacherDataStore

TeacherModel

RxSwift

ViewController ViewModel Repository Model

APIKIT

MVVM

RAREJOB APP ARCHITECTURE

Page 24: Mvvm is like born fraction

ReserveView

ReserveViewModel :StateView

Model

TeacherDataStore

TeacherModel

RxSwift

ViewController ViewModel Repository Model

APIKITRxSwift can Binding value to view. So be able to Create View Behavior Declaratively.

But this library is a little heavy, need to long build time.

MVVM

RAREJOB APP ARCHITECTURE

Page 25: Mvvm is like born fraction

ReserveView

ReserveViewModel :StateView

Model

TeacherDataStore

TeacherModel

RxSwift

ViewController ViewModel Repository Model

APIKITThis layer can provide interface, even if ViewModel is not understand need to use Cache or API.

MVVM

RAREJOB APP ARCHITECTURE

Page 26: Mvvm is like born fraction

ReserveView

ReserveViewModel :StateView

Model

TeacherDataStore

TeacherModel

RxSwift

ViewController ViewModel Repository Model

APIKITModel layer is tend to be complex. But this OSS can code simply.

MVVM

RAREJOB APP ARCHITECTURE

Page 27: Mvvm is like born fraction

ReserveView

ReserveViewModel :StateView

Model

TeacherDataStore

TeacherModel

RxSwift

ViewController ViewModel Repository Model

APIKITModel layer is tend to be complex. But us this OSS can code simply.

MVVM

RAREJOB APP ARCHITECTURE

Model layer is tend to be complex. But us this OSS can code simply.Model layer is tend to be complex. But us this OSS can code simply.Each layer is loose coupling. so each component is useful!

Page 28: Mvvm is like born fraction

~ After Release ~

OK, RELEASE GOOD….

I WANT TO UPDATE AND TESTING MORE!! BUT ONLY HAVE 1 BUILD DEVICE…

IOS ENGINEER, IT’S ME ONLY…

_人人人人人人人人人人人_

> HELP ME!Someone!<

‾Y^Y^Y^Y^Y^Y^Y^Y^Y‾

OK,

ADDITIONAL

Page 29: Mvvm is like born fraction

bitrise

ADDITIONAL

Page 30: Mvvm is like born fraction

・What’s Good point?

- Free plan is substantial.

- Setting is simply.

- Can provide TestFairy, and Upload to iTunesConnect Simply using by fastlane.

- Can connect easily Vender Service

- also use android.

ADDITIONAL

Page 31: Mvvm is like born fraction

ENDING

CONCLUSION

▸ MVVM can explain using by Fracture.

▸ bitrise is so good.

Page 32: Mvvm is like born fraction

Please do not keep me alone.We now hiring Designer and Engineer. :)

Please keep healthy….

Thank you.