Your SlideShare is downloading. ×
MVC na iOS - For-Mobile 2/2013
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×

Introducing the official SlideShare app

Stunning, full-screen experience for iPhone and Android

Text the download link to your phone

Standard text messaging rates apply

MVC na iOS - For-Mobile 2/2013

307
views

Published on

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 …

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

Published in: Technology

0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
307
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
1
Comments
0
Likes
1
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. MVC na iOSTomáš Jukin@Inza
  • 2. Únor 2013 - iOS
  • 3. Únor 2013 - iOSwww.srazy.info/for-mobile@forMobileCZ #forMobileCZ www.for-mobile.cz
  • 4. www.juicymo.cz
  • 5. imagination idea innovationwww.iknow.eu/cvut/
  • 6. www.inovacentrum.cvut.cz/inovajet
  • 7. www.facebook.com/dtvpraha7
  • 8. NovinkyProstor pro vás ;)
  • 9. MVC na iOSTomáš Jukin@Inza
  • 10. MVC na iOSMVC = Model-View-Controllerale v iOS...MVC= Massive ViewController
  • 11. MVC na iOSnejčastěji v praxi:MVC = Asynchronní načítání datz internetu do UITableView
  • 12. MVC na iOSnejčastěji v praxi:MVC = Asynchronní načítánídat z internetu do UITableView
  • 13. MVC na iOSnejčastěji v praxi:MVC = Asynchronní načítánídat z internetu do UITableViewpomocí bloků
  • 14. Byla jednou jedna tabulka...load data
  • 15. Byla jednou jedna tabulka... arrayload data
  • 16. Byla jednou jedna tabulka... arrayload data
  • 17. Byla jednou jedna tabulka... arrayload data anim. update
  • 18. Byla jednou jedna tabulka... cache arrayload data anim. update
  • 19. Byla jednou jedna tabulka... cache array při update mažu cache...load data anim. update
  • 20. Byla jednou jedna tabulka... cache array controller switch při update mažu cache...load data anim. update
  • 21. Byla jednou jedna tabulka... cache array controller switchload data anim. update
  • 22. Byla jednou jedna tabulka... cache array controller na pozadí switchload data anim. update
  • 23. Byla jednou jedna tabulka... update load cache cacheload data anim. update
  • 24. Byla jednou jedna tabulka... V C Mload data anim. update
  • 25. Byla jednou jedna tabulka... V C M User Item ...load data anim. update
  • 26. A co API?
  • 27. A co API? programátor
  • 28. A co API?
  • 29. A co API? UITableView iOS API
  • 30. A co API?
  • 31. A co API? ???
  • 32. A co API? c blocks + MVC
  • 33. Jak na MC? owns load data controller view model
  • 34. Jak na MC? owns load data app refresh delegate controller view modelvylez z metra
  • 35. Jak na MC? owns load data app delegate controller view model na pozadí
  • 36. Jak na MC? owns load data iOS kill controller view modelzpět
  • 37. Jak na MC? owns load data iOS kill controller view model ???zpět
  • 38. Jak na MC? model manager owns load data app delegate kill controller proxy view model modelzpět
  • 39. #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: ..."); } };}
  • 40. Next
  • 41. Next ?Onscreen vs. Offscreen rendering v iOSKVC, KVO a Cocoa BindingsDocument Oriented Programing v CocoaAdvanced Cora Data