Slide 1

Slide 1 text

Unburdened ViewControllers Triangle CocoaHeads - Aug 2012 Jay Thrash :: jay.thrash@mac.com :: @jaythrash

Slide 2

Slide 2 text

In the Beginning.. View Controller View Model Model View

Slide 3

Slide 3 text

Quickly becomes...

Slide 4

Slide 4 text

Quickly becomes... SOAP REST Core Data

Slide 5

Slide 5 text

Beginning of the End ViewController View Model Model View SOAP REST Core Data

Slide 6

Slide 6 text

No content

Slide 7

Slide 7 text

Open a Store

Slide 8

Slide 8 text

iOS Programming Big Nerd Ranch Guide

Slide 9

Slide 9 text

Store-Controllers CMMotionManager CLLocationManager

Slide 10

Slide 10 text

Model View Controller Store

Slide 11

Slide 11 text

MVC(S) Controller Model External Data Store View Controller Model View

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

Slide 13

Slide 13 text

Store Responsibilities • Model Objects from Data Sources • Handles Loading & Saving of Model Objects • Encapsulates Caching and Lazy Fetching

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

Slide 15

Slide 15 text

Extra Credit • Asynchronous Data Requests • Memory Management • Caching • Lazy Loading

Slide 16

Slide 16 text

Change Your View

Slide 17

Slide 17 text

Third Wheel Controller View Model View External Data Store Model

Slide 18

Slide 18 text

Frictionless Controller View Model View External Data Store Model

Slide 19

Slide 19 text

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

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 :: jay.thrash@mac.com :: @jaythrash Resources & Attributions