Slide 1

Slide 1 text

Unburdened ViewControllers Triangle CocoaHeads - Aug 2012 Jay Thrash :: [email protected] :: @jaythrash Saturday, January 18, 14

Slide 2

Slide 2 text

In the Beginning.. View Controller View Model Model View Saturday, January 18, 14

Slide 3

Slide 3 text

Quickly becomes... Saturday, January 18, 14

Slide 4

Slide 4 text

Quickly becomes... SOAP REST Core Data Saturday, January 18, 14

Slide 5

Slide 5 text

Beginning of the End ViewController View Model Model View SOAP REST Core Data Saturday, January 18, 14

Slide 6

Slide 6 text

Saturday, January 18, 14

Slide 7

Slide 7 text

Open a Store Saturday, January 18, 14

Slide 8

Slide 8 text

iOS Programming Big Nerd Ranch Guide Saturday, January 18, 14

Slide 9

Slide 9 text

Store-Controllers CMMotionManager CLLocationManager Saturday, January 18, 14

Slide 10

Slide 10 text

Model View Controller Store Saturday, January 18, 14

Slide 11

Slide 11 text

MVC(S) Controller Model External Data Store View Controller Model View Saturday, January 18, 14

Slide 12

Slide 12 text

Store Interface #import @class CHItem; @interface CHItemStore : NSObject { NSMutableArray *items; } // Access the singleton Store + (CHItemStore *)store; // Access Store contents - (NSArray *)allItems; - (void)addItem:(CHItem *)item; - (void)removeItem:(CHItem *)item; // Persist Store contents - (BOOL)save:(NSError *)err; @end Saturday, January 18, 14

Slide 13

Slide 13 text

Store Responsibilities • Model Objects from Data Sources • Handles Loading & Saving of Model Objects • Encapsulates Caching and Lazy Fetching Saturday, January 18, 14

Slide 14

Slide 14 text

Before & After Store Controller Fetches Models Controls Flow Persists Models Get, Update, Insert using Store Encapsulates Saving Requests Saving Caches Data Not concerned with data caching Saturday, January 18, 14

Slide 15

Slide 15 text

Extra Credit • Asynchronous Data Requests • Memory Management • Caching • Lazy Loading Saturday, January 18, 14

Slide 16

Slide 16 text

Change Your View Saturday, January 18, 14

Slide 17

Slide 17 text

Third Wheel Controller View Model View External Data Store Model Saturday, January 18, 14

Slide 18

Slide 18 text

Frictionless Controller View Model View External Data Store Model Saturday, January 18, 14

Slide 19

Slide 19 text

Benefits • Reusable Views - Just add a Model • ViewController as Conductor • Interface with Store • Handle User’s Input Saturday, January 18, 14

Slide 20

Slide 20 text

Name Author URL iOS Programming Joe Conway and Aaron Hillegass http://www.bignerdranch.com Ubuntu Font Family Canonical, Ltd. http://font.ubuntu.com/ Unburdened ViewControllers Jay Thrash :: [email protected] :: @jaythrash Resources & Attributions Saturday, January 18, 14