RSS

태그 보관물: nytimes

테이블 뷰에 네트워크 요청을 붙여보자

들어가며

UITableViewController 만큼이나 사랑받는 UI가 없을겁니다. 많은 정보를 가볍게 보여 주는 놀라운 UI이지요. 테이블 뷰에 data source에 해당되는 NSArray형의 모델의 내용을 cellForRowIndexPath에서 구현해주는 것이 일반적입니다.

 

해결하고자 한 문제

그런데, 이 모델을 채워넣는 방식이 로컬의 자료가 아닌 원격의 서버를 통해서 데이터를 가져오는 경우라면, 소위말하는 (open) API를 통해서 JSON이나 XML 형태의 데이터를 http 프로토콜로 넘겨받는 패턴입니다.

이런 패턴을 “Online Data source UITableViewController Pattern” 이라고 정의 해봤습니다.

 

구현 방법

이런 패턴을 구현하기 위해서 저는 UITableViewController의 category를 만들었습니다.

@interface UITableViewController (NSURLConnection) <ApiProtocol>

– (void) requestWithURL:(NSURL*) url;

@end

requestWithURL 메소드를 통해서 특정 API를 요청하게 되고 그 결과를 NSURLConnection으로 받아옵니다.

받아온 data를 JSON Serialization으로 NSDictionary나 NSArray형으로 리턴되도록 만든 예제입니다.

github를 통해 다운 받으면 iOS 5용 프로젝트가 나옵니다. 실행시켜보면 뉴욕타임즈의 베스트셀러 API를 요청하고 그 결과값을 JSON으로 받아 테이블 뷰에 그려주는 단순한 앱이 실행됩니다.

실행화면 스크린샷입니다.

다운로드

주의! 소스코드에 포함된 NYTimes API키는 테스트 용도로만 사용해주세요. 감사합니다.

 
댓글 남기기

게시자: 켬 2011년 12월 22일 in iOS개발, OpenAPI

 

태그: ,