Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Unburdened ViewControllers by Jay Thrash

Unburdened ViewControllers by Jay Thrash

Jay discusses an alternative to MVC that can help in creating less cluttered view controllers from CocoaHeads August in Raleigh

Triangle Cocoa

August 23, 2012

More Decks by Triangle Cocoa

Other Decks in Programming


  1. Unburdened ViewControllers Triangle CocoaHeads - Aug 2012 Jay Thrash ::

    [email protected] :: @jaythrash
  2. In the Beginning.. View Controller View Model Model View

  3. Quickly becomes...

  4. Quickly becomes... SOAP REST Core Data

  5. Beginning of the End ViewController View Model Model View SOAP

    REST Core Data
  6. None
  7. Open a Store

  8. iOS Programming Big Nerd Ranch Guide

  9. Store-Controllers CMMotionManager CLLocationManager

  10. Model View Controller Store

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

  12. Store Interface #import <Foundation/Foundation.h> @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
  13. Store Responsibilities • Model Objects from Data Sources • Handles

    Loading & Saving of Model Objects • Encapsulates Caching and Lazy Fetching
  14. 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
  15. Extra Credit • Asynchronous Data Requests • Memory Management •

    Caching • Lazy Loading
  16. Change Your View

  17. Third Wheel Controller View Model View External Data Store Model

  18. Frictionless Controller View Model View External Data Store Model

  19. Benefits • Reusable Views - Just add a Model •

    ViewController as Conductor • Interface with Store • Handle User’s Input
  20. 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