Mvvm is like born fraction
-
Upload
ken-haneda -
Category
Engineering
-
view
600 -
download
0
Transcript of Mvvm is like born fraction
MVVM IS LIKE FRACTURETECH TALK TOKYO VOL.5 10/5
HAVE YOU RECENTLY BEEN FRACTURE?
I HAD A FRACTURE BEFORE RELEASE MY PROJECT.
MVVM≒
TODAY, I’D LIKE TO TALK ABOUT MVVM.
INTRODUCTION
KENTARO HANEDA (27) @JUMBOS5▸ Job
▸ RareJob.Consumer Dept. Mobile Developer
▸ Job History
▸ Retty 👉 Yahoo!JAPAN(ヤフオク)👉 RareJob
▸ Work/Interest
▸ Go/iOS/Kotlin/Python/Marketing
PORTFOLIO
DEV.
「レアジョブ日常英会話アプリ」Swift2.3/Universal/1month
InShadeBackend (RoR/MySQL/PhantomJS)Swift2.0Android (Kotlin/RxJava)
released by adriablue.
lanskipWeek end commit.Backend (Azure/Golang/Revel)
WHAT’S MVVM?
RAREJOB APP ARCHITECTURE
My App has many state.
RAREJOB APP ARCHITECTURE
View View Model Model
Binding Update
Fetch
View ViewController Model
Update
ActionAction
Update
MVVM?
or
MVC?
RAREJOB APP ARCHITECTURE
View View Model Model
Binding Update
Fetch
View ViewController Model
Update
ActionAction
Update
????????????????
RAREJOB APP ARCHITECTURE
View View Model Model
Binding Update
Fetch
????????????????
STEP
FRACTURE
1. Slip Human.
2. Born has damage
3. Human to “Fracture”
STEP
MVVM
1. View get action.
2. Change value.
3. Change View and State.
View View Model Model
Binding Update
Fetch
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 …}
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
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
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
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
HOW TO USE MVVM?
RAREJOB APP ARCHITECTURE
How my app to mvvm?
ReserveView
ReserveViewModel :StateView
Model
TeacherDataStore
TeacherModel
RxSwift
ViewController ViewModel Repository Model
APIKIT
MVVM
RAREJOB APP ARCHITECTURE
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
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
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
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!
~ 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
bitrise
ADDITIONAL
・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
ENDING
CONCLUSION
▸ MVVM can explain using by Fracture.
▸ bitrise is so good.
Please do not keep me alone.We now hiring Designer and Engineer. :)
Please keep healthy….
Thank you.