책을 한참 읽다보면, So What ? 이라고 나도 모르게 외칠때가 있습니다. 어떤이는 맨땅에 해딩(?) 과 구글검색을 해가며 배우기도 하고, 어떤이는 책을 일독한 후 거기에서 얻은 지식을 바탕으로 개발에 들어갑니다. 개인적으로 제가 선호하는 방식은, 책을 어느정도까지 탐독해서 기본개념과 개발 아치텍쳐를 익히고, 중고급 부분은 필요할때 선택으로 습득하는 방법을 선택합니다.
맥북을 지른지 이제 1개월정도가 되어가기도 하고, "시작하세요. 아이폰3 프로그래밍" 책도 기본적인 UI 구성까지 읽은후, 과감하게 책을 덮고 실제 코딩에 들어갔습니다.
우선 범용적으로 사용되는 UI 를 따르기로 했습니다. 탭바가 기본컨트롤러가 되고, 각 컨트롤은 네비게이션바를 가지는 UI 를 구상해 적용하려고 하니 막막해 넋놓고 있다가 구글 검색을 해서 아래 동영상을 얻고 UI 작업에 들어갔습니다.
* Building an iPhone App Combining Tab Bar, Navigation and Tab http://www.youtube.com/watch?v=LBnPfAtswgw
이 동영상은 TabBar 와 Navigation Bar 를 이용해서 기본 틀을 갖추도록 STEP BY STEP 으로 진행돼서, 직접 코드를 쳐보고 따라할수 있어 유용한것 같습니다. 그리고, XCODE 사용법에 익숙한 사용자라면 금방 따라할 수 있고 설명또한 간단해서 좋은 예제인것 같습니다.
이렇게 UI 를 갖추게 되면, 이제는 XML 데이터를 호출하는 부분을 해결해야 하는데요. 이 것 또한 구글검색으로 해결하였습니다. 아이폰에서 XML 파싱은 SAX 방식을 따르고 있는것으로 보입니다.
* 델리 키포스님의 iPhone, XML 처리 예제 – NSXMLParser 이용하기 http://kiipos.delimount.net/1084* Build a Simple Rss reader for Iphone http://theappleblog.com/2008/08/04/tutorial-build-a-simple-rss-reader-for-iphone/
델리 키포스님의 XML 예제는 모델 객체를 생성해서 파싱결과를 리턴받습니다. 반면, RSS Reader 예제는 SDK에서 기본으로 지원하는 NSMutableDictionary (Map) 를 이용해서 비교적 간단한것이 장점입니다. 이를 제외하면 두소스는 거의 동일하다고 할수 있습니다.
실제 소스의 구조를 파악하기에 Simple RSS Reader 예제가 좋은것 같습니다. 블로그 마지막부분의 소스를 다운 받을수 있으니 프레임워크만 현재 버전에 맞게 다시 추가한후 실행시켜보면 많을 도움이 될것 같습니다.
이렇게 하면, 기본적인 탭바 + 네이게이션바 베이스에 XML 데이터를 읽어와 보여주는 간단한 TableView 가 완성이 됩니다. 이제 할일은 TableViewCell 을 입맛에 맞게 변경하는 작업이 필요합니다. 가령 각 텍스트의 길이에 따라 셀의 크기를 변경시킨다거나, 이미지와 텍스트를 적절하게 배치하는 작업이 필요합니다.
* UITableViewCell Dynamic Height http://www.cimgf.com/2009/09/23/uitableviewcell-dynamic-height/
또 필요한 부분이 있죠. Setting 값을 저장하거나, SQLITE 를 사용해서 데이터를 저장하는 부분인데요. 이 부분은 아직 작업이 들어가지 않아서 자료를 찾아보진 않았습니다. 좋은 자료 있으면 댓글 부탁드립니다.
아이폰 앱 개발을 하려고 하는데, 막막하시다고 느끼시는 분들에게 조금이나마 도움이 되었으면 좋겠습니다.
좋은 자료를 공개해주시면 고수님들에게 항상 감사드립니다.