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

Unburdened ViewControllers

Unburdened ViewControllers

Originally presented at Triangle CocoaHeads on August 23, 2012

When creating large-scale iOS apps, it's very easy to fall into the trap of creating overly complex ViewControllers. This talk described a couple of strategies for delegating that complexity and so that your ViewControllers can focus on their original purpose of coordinating the flow of the application.

Jay Thrash

August 23, 2012
Tweet

More Decks by Jay Thrash

Other Decks in Programming

Transcript

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

    REST Core Data Saturday, January 18, 14
  2. 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 Saturday, January 18, 14
  3. Store Responsibilities • Model Objects from Data Sources • Handles

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

    Caching • Lazy Loading Saturday, January 18, 14
  6. Benefits • Reusable Views - Just add a Model •

    ViewController as Conductor • Interface with Store • Handle User’s Input Saturday, January 18, 14
  7. 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