MVC na iOS - For-Mobile 2/2013

Preview:

DESCRIPTION

Slidy z mé prezentace na téma "MVC na iOS - Možný pohled na modely s načítáním dat do UITableView na pozadí pomocí bloků", která proběhla na For-Mobile iOS v říjnu 2013 v prostorách InovaJet na Dejvické. Více o události For-Mobile: http://srazy.info/for-mobile/3153 #forMobileCZ

Citation preview

MVC na iOS

Tomáš Jukin@Inza

www.for-mobile.cz

@forMobileCZ #forMobileCZ

www.srazy.info/for-mobile

Únor 2013 - iOS

www.iknow.eu/cvut/

imagination idea innovation

Novinky

Prostor pro vás ;)

MVC na iOS

Tomáš Jukin@Inza

MVC na iOSMVC = Model-View-Controller

ale v iOS...

MVC = Massive ViewController

MVC na iOSnejčastěji v praxi:

MVC = Asynchronní načítání dat z internetu do UITableView

MVC na iOSnejčastěji v praxi:

MVC = Asynchronní načítání dat z internetu do UITableView

MVC na iOSnejčastěji v praxi:

MVC = Asynchronní načítání dat z internetu do UITableView pomocí bloků

Byla jednou jedna tabulka...

load data

Byla jednou jedna tabulka...

array

load data

Byla jednou jedna tabulka...

array

load data

Byla jednou jedna tabulka...

array

load data anim. update

Byla jednou jedna tabulka...

array

cache

load data anim. update

Byla jednou jedna tabulka...

array

cache

při update mažu cache...

load data anim. update

Byla jednou jedna tabulka...

controller switch

array

cache

při update mažu cache...

load data anim. update

Byla jednou jedna tabulka...

controller switch

load data anim. update

array

cache

Byla jednou jedna tabulka...

controller switch

array

cache

load data anim. update

na pozadí

Byla jednou jedna tabulka...

load data anim. update

update cache

loadcache

Byla jednou jedna tabulka...

load data anim. update

V C M

Byla jednou jedna tabulka...

load data anim. update

V C MUserItem

...

A co API?

A co API?

programátor

A co API?

A co API?

UITableView iOS API

A co API?

A co API?

???

A co API?

MVC

+

c blocks

Jak na MC?

view

controller

model

ownsload data

Jak na MC?

view

controller

model

ownsload data

app delegate

refresh

vylez z metra

Jak na MC?

view

controller

model

ownsload data

app delegate

na pozadí

Jak na MC?

view

controller

model

ownsload data

iOS kill

zpět

Jak na MC?

view

controller

model

ownsload data

iOS kill

zpět

???

Jak na MC?

view

controller

model

ownsload data

app delegate

kill

zpět

model manager

proxymodel

#pragma mark - Setup Models- (void)setupModelsConfiguration { DEFINE_BLOCK_SELF; self.modelConfigurationRecipe = ^(JMTableViewModel *model, NSString *modelIdentifier) { NSString *defaultModelIdentifier = [blockSelf modelIdentifier]; if ([modelIdentifier isEqualToString:defaultModelIdentifier]) { #pragma mark - Cell Recipe // Cell Configuration (how to pass data from cellModel to cell) model.cellConfigurationRecipe = ^(UITableViewCell *c, JMTableViewCellModel *cM, NSIndexPath *iP) { // ... }; #pragma mark - Preload recipe model.preloadRecipe = ^(NSMutableArray *cache) { /* ... */ }; #pragma mark - Load recipe model.loadRecipe = ^(NSMutableArray *cache, NSArray *loadedObjects) { /* ... */ }; if ([model isKindOfClass:[JMRESTTableViewModel class]]) { JMRESTTableViewModel *restModel = ((JMRESTTableViewModel *)model); __block JMRESTTableViewModel *blockRestModel = restModel; #pragma mark - Parse recipe restModel.parseRecipe = ^(NSMutableArray *cache, id parsedJSONDataObject) { // ... // ...and pass it to loadRecipe block blockRestModel.loadRecipe(cache, section); }; } } else { NSLog(@"Error: ..."); } };}

Next

Next ?Onscreen vs. Offscreen rendering v iOS

KVC, KVO a Cocoa Bindings

Document Oriented Programing v Cocoa

Advanced Cora Data

Recommended