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