RestKit Revisited

27
Restkit Revisited RESTing beyond the samples Axel Roest • @axello zondag, 22 september 2013

description

Cocoaheads presentation I gave at TouchWonders in Utrecht, the Netherlands on April 16, 2013

Transcript of RestKit Revisited

Page 1: RestKit Revisited

Restkit Revisited RESTing beyond the samples

Axel Roest • @axello

zondag, 22 september 2013

Page 2: RestKit Revisited

self

zondag, 22 september 2013

Page 3: RestKit Revisited

self

zondag, 22 september 2013

Page 4: RestKit Revisited

WHY?

zondag, 22 september 2013

Page 5: RestKit Revisited

WHY?

communicating with backend

zondag, 22 september 2013

Page 6: RestKit Revisited

WHY?

communicating with backend

but JSON is easy!

zondag, 22 september 2013

Page 7: RestKit Revisited

WHY?

communicating with backend

but JSON is easy![NSJSONSer

ialization  JSONObjec

tWithData:responseDa

ta]

zondag, 22 september 2013

Page 8: RestKit Revisited

WHY?

communicating with backend

but JSON is easy!

error checking

zondag, 22 september 2013

Page 9: RestKit Revisited

WHY?

communicating with backend

but JSON is easy!

error checking

easy mapping to CoreData

zondag, 22 september 2013

Page 10: RestKit Revisited

WHY?

communicating with backend

but JSON is easy!

error checking

easy mapping to CoreData

zondag, 22 september 2013

Page 11: RestKit Revisited

WHY?

communicating with backend

but JSON is easy!

error checking

easy mapping to CoreData

xml & json agnostic

zondag, 22 september 2013

Page 12: RestKit Revisited

Why this talk?

started with RestKit 0.10 last year

RestKit in the real world

Examples sucked

zondag, 22 september 2013

Page 13: RestKit Revisited

Typical Example

simple JSON feed of one type

load objects from feed

zondag, 22 september 2013

Page 14: RestKit Revisited

Example setup

Create:

Custom Class

RKObjectManager (singleton)

RKObjectMapping

Fetch objects

zondag, 22 september 2013

Page 15: RestKit Revisited

Real-World

multiple different json feeds

post multiple compound json objects

different responses (data, error)

restkit 0.10 objectmanager couldn’t cope

zondag, 22 september 2013

Page 16: RestKit Revisited

Solution 0.10

use separate

RKObjectLoader

RKObjectMappingProvider

zondag, 22 september 2013

Page 17: RestKit Revisited

RestKit 0.20

based on AFNetworking framework

cleaner object mapping

more blocks, less delegates

zondag, 22 september 2013

Page 18: RestKit Revisited

Flow 0.20

based on NSOperation:

RKObjectRequestOperation

RKResponseMapperOperation

RKObjectMappingOperation

zondag, 22 september 2013

Page 19: RestKit Revisited

Flow setupAFHTTPClient

RKObjectManager (singleton)

RKObjectMapping(s)

(RKRelationshipMapping)

RKResponseDescriptor

[[RKObjectManager sharedManager] getObjectsAtPath]

zondag, 22 september 2013

Page 20: RestKit Revisited

Two Basic Flowstoplevel based

add response to RKObjectManager

fetch objects

fine-grained

add response to RKObjectRequest

RKObjectRequestOperation

zondag, 22 september 2013

Page 21: RestKit Revisited

Demo

zondag, 22 september 2013

Page 22: RestKit Revisited

Demo

Converting from RestKit 0.10 to 0.20 is a lot of work

zondag, 22 september 2013

Page 23: RestKit Revisited

Demo

Converting from RestKit 0.10 to 0.20 is a lot of work

RKGisthttps://github.com/RestKit/RKGist/

zondag, 22 september 2013

Page 24: RestKit Revisited

Gist Lister

https://api.github.com/gists/public

zondag, 22 september 2013

Page 25: RestKit Revisited

Gist Lister

https://api.github.com/gists/public

zondag, 22 september 2013

Page 26: RestKit Revisited

Code

zondag, 22 september 2013