MVVM on iOS
17
MVVM + iOS Carlos Vinícius Real @cviniciusreal
-
Upload
carlos -
Category
Technology
-
view
81 -
download
0
Transcript of MVVM on iOS
![Page 1: MVVM on iOS](https://reader031.fdocuments.us/reader031/viewer/2022021502/58729f061a28ab07208b5577/html5/thumbnails/1.jpg)
MVVM + iOS
Carlos Vinícius Real @cviniciusreal
![Page 2: MVVM on iOS](https://reader031.fdocuments.us/reader031/viewer/2022021502/58729f061a28ab07208b5577/html5/thumbnails/2.jpg)
MVC
![Page 3: MVVM on iOS](https://reader031.fdocuments.us/reader031/viewer/2022021502/58729f061a28ab07208b5577/html5/thumbnails/3.jpg)
Apple’s MVC
![Page 4: MVVM on iOS](https://reader031.fdocuments.us/reader031/viewer/2022021502/58729f061a28ab07208b5577/html5/thumbnails/4.jpg)
Massive View Controllers
![Page 5: MVVM on iOS](https://reader031.fdocuments.us/reader031/viewer/2022021502/58729f061a28ab07208b5577/html5/thumbnails/5.jpg)
![Page 6: MVVM on iOS](https://reader031.fdocuments.us/reader031/viewer/2022021502/58729f061a28ab07208b5577/html5/thumbnails/6.jpg)
MVVM
![Page 7: MVVM on iOS](https://reader031.fdocuments.us/reader031/viewer/2022021502/58729f061a28ab07208b5577/html5/thumbnails/7.jpg)
MVVM
• Easy to test
• Flexible
• Test coverage
• “Easy" to implement
![Page 8: MVVM on iOS](https://reader031.fdocuments.us/reader031/viewer/2022021502/58729f061a28ab07208b5577/html5/thumbnails/8.jpg)
Binding
• Protocols
• KVO
• Third-party libraries
![Page 9: MVVM on iOS](https://reader031.fdocuments.us/reader031/viewer/2022021502/58729f061a28ab07208b5577/html5/thumbnails/9.jpg)
MVVM Sample
• Protocols
• RxSwift
![Page 10: MVVM on iOS](https://reader031.fdocuments.us/reader031/viewer/2022021502/58729f061a28ab07208b5577/html5/thumbnails/10.jpg)
Unit tests
![Page 11: MVVM on iOS](https://reader031.fdocuments.us/reader031/viewer/2022021502/58729f061a28ab07208b5577/html5/thumbnails/11.jpg)
Code
![Page 12: MVVM on iOS](https://reader031.fdocuments.us/reader031/viewer/2022021502/58729f061a28ab07208b5577/html5/thumbnails/12.jpg)
RxSwift
• Reactive Programming
• Unit tests
![Page 13: MVVM on iOS](https://reader031.fdocuments.us/reader031/viewer/2022021502/58729f061a28ab07208b5577/html5/thumbnails/13.jpg)
and now? How should I start?
![Page 14: MVVM on iOS](https://reader031.fdocuments.us/reader031/viewer/2022021502/58729f061a28ab07208b5577/html5/thumbnails/14.jpg)
![Page 15: MVVM on iOS](https://reader031.fdocuments.us/reader031/viewer/2022021502/58729f061a28ab07208b5577/html5/thumbnails/15.jpg)
Libraries
• RxSwift
• ReactiveCocoa
• SwiftBond
![Page 16: MVVM on iOS](https://reader031.fdocuments.us/reader031/viewer/2022021502/58729f061a28ab07208b5577/html5/thumbnails/16.jpg)
References• https://realm.io/news/doios-natasha-murashev-
protocol-oriented-mvvm/
• https://medium.com/ios-os-x-development/ios-architecture-patterns-ecba4c38de52#.16m6lp4ep
• http://www.pangers.com/blog/2016/3/1/unit-testing-with-rxswift
![Page 17: MVVM on iOS](https://reader031.fdocuments.us/reader031/viewer/2022021502/58729f061a28ab07208b5577/html5/thumbnails/17.jpg)
Thank you!
@cviniciusreal