snips mvc revisited by michael fester
TRANSCRIPT
![Page 1: Snips MVC revisited by Michael Fester](https://reader034.vdocuments.site/reader034/viewer/2022042607/55a686881a28ab31138b45fd/html5/thumbnails/1.jpg)
Michael Fester @michaelfester
:snips
MVC revisited
![Page 2: Snips MVC revisited by Michael Fester](https://reader034.vdocuments.site/reader034/viewer/2022042607/55a686881a28ab31138b45fd/html5/thumbnails/2.jpg)
![Page 3: Snips MVC revisited by Michael Fester](https://reader034.vdocuments.site/reader034/viewer/2022042607/55a686881a28ab31138b45fd/html5/thumbnails/3.jpg)
BAR
BANK WAITING TIME: 15 MIN
FOOD COURT RATING: 4/5
WAITING TIME: 2 MIN
METRO STATION LINE: 1, TRAFFIC: FLUID
NEXT PEAK: 17:45
TUESDAY, 14:25 CLOUDY, RAIN: 15%TEMPERATURE: 18°C
NATIONAL HOLIDAYCAR TRAFFIC FLUID, NO DANGER
CONSTRUCTION SITE NOISY, FREQUENT TRUCK STOPS
POLICE STATIONBUS STOP
LINES: 45, 72, 96, 108NEXT ARRIVAL: 4 MIN
![Page 4: Snips MVC revisited by Michael Fester](https://reader034.vdocuments.site/reader034/viewer/2022042607/55a686881a28ab31138b45fd/html5/thumbnails/4.jpg)
![Page 5: Snips MVC revisited by Michael Fester](https://reader034.vdocuments.site/reader034/viewer/2022042607/55a686881a28ab31138b45fd/html5/thumbnails/5.jpg)
![Page 6: Snips MVC revisited by Michael Fester](https://reader034.vdocuments.site/reader034/viewer/2022042607/55a686881a28ab31138b45fd/html5/thumbnails/6.jpg)
Going to work Before a meeting At lunch At a club
![Page 7: Snips MVC revisited by Michael Fester](https://reader034.vdocuments.site/reader034/viewer/2022042607/55a686881a28ab31138b45fd/html5/thumbnails/7.jpg)
Model-View-Controller (MVC)
![Page 8: Snips MVC revisited by Michael Fester](https://reader034.vdocuments.site/reader034/viewer/2022042607/55a686881a28ab31138b45fd/html5/thumbnails/8.jpg)
Model-View-ViewModel (MVVM)
![Page 9: Snips MVC revisited by Michael Fester](https://reader034.vdocuments.site/reader034/viewer/2022042607/55a686881a28ab31138b45fd/html5/thumbnails/9.jpg)
Tasks of the ViewModel
» Network logic » Updating models » Maintaining UI state » Formatting (numbers, strings, dates) » Responding to user input
![Page 10: Snips MVC revisited by Michael Fester](https://reader034.vdocuments.site/reader034/viewer/2022042607/55a686881a28ab31138b45fd/html5/thumbnails/10.jpg)
View models are testable View models are serialisable View models are portable
![Page 11: Snips MVC revisited by Michael Fester](https://reader034.vdocuments.site/reader034/viewer/2022042607/55a686881a28ab31138b45fd/html5/thumbnails/11.jpg)
HomeViewModel
![Page 12: Snips MVC revisited by Michael Fester](https://reader034.vdocuments.site/reader034/viewer/2022042607/55a686881a28ab31138b45fd/html5/thumbnails/12.jpg)
HomeViewController
![Page 13: Snips MVC revisited by Michael Fester](https://reader034.vdocuments.site/reader034/viewer/2022042607/55a686881a28ab31138b45fd/html5/thumbnails/13.jpg)
Loading state
![Page 14: Snips MVC revisited by Michael Fester](https://reader034.vdocuments.site/reader034/viewer/2022042607/55a686881a28ab31138b45fd/html5/thumbnails/14.jpg)
Form validation
![Page 15: Snips MVC revisited by Michael Fester](https://reader034.vdocuments.site/reader034/viewer/2022042607/55a686881a28ab31138b45fd/html5/thumbnails/15.jpg)
Unit testing signals
![Page 16: Snips MVC revisited by Michael Fester](https://reader034.vdocuments.site/reader034/viewer/2022042607/55a686881a28ab31138b45fd/html5/thumbnails/16.jpg)
ViewController revisited
» Layout » Animation » Transition » Rotation
![Page 17: Snips MVC revisited by Michael Fester](https://reader034.vdocuments.site/reader034/viewer/2022042607/55a686881a28ab31138b45fd/html5/thumbnails/17.jpg)
ViewModel
» Network logic » Updating models » Maintaining UI state » Formatting (numbers, strings, dates) » Responding to user input
![Page 18: Snips MVC revisited by Michael Fester](https://reader034.vdocuments.site/reader034/viewer/2022042607/55a686881a28ab31138b45fd/html5/thumbnails/18.jpg)
Data binding in ReactiveCocoa
» Consistency » Explicit » Functional » Stateless
![Page 19: Snips MVC revisited by Michael Fester](https://reader034.vdocuments.site/reader034/viewer/2022042607/55a686881a28ab31138b45fd/html5/thumbnails/19.jpg)
Come build delightful apps with us
www.snips.net
@snips