3. 관련 자료

* 한글 자료와 영어
아쉽게도 이곳에서 소개하는 대부분의 자료들은 영문으로 되어 있습니다. 아이폰과 관련되어 나온 번역서적은 아직까지는 한권도 없습니다. (준비하고 있다는 이야기는 들었습니다) OS X 코코아 프로그래밍에 관련된 내용인 코코아 프로그래밍이란 책이 유일하게 번역되어 나온 관련 서적입니다.


코코아 프로그래밍
카테고리 컴퓨터/IT
지은이 아론 힐리가스 (인사이트, 2007년)
상세보기

아직까지는 코코아 프로그래밍이 대중화 되지 않아 한글로된 자료가 적지만, 점점 많아질 것으로 보아집니다. 하지만 빠르고 다양한 자료를 얻기 위해서는 영문 자료를 보시는 수 밖에 없습니다. 저도 모자라는 영어로 괴롭지만 자꾸 보다보면서 조금씩 익숙해지고 있습니다. 저같이 영어 공부를 게을리 하신 분들은 따로 영어를 공부하실 필요 없이 영문자료로 공부를 하셔도 좋을 것 같습니다.

* ADC (Apple Developer Connection)
사실 맥/아이폰 프로그래밍에 관한 자료를 구하는 곳은 사실 딱 한 곳, ADC만 알고 있어도 됩니다. 이곳에는 애플에서 제공하는 OS X 개발과 관련된 다양한 문서와 자료, 동영상, 소스코드들이 있습니다. 자료가 방대하지만 이곳을 문지방이 닳도록 드나드시며 근본적인 자료들을 보시는 것이 늦어 보이지만 빠른 길입니다.


1) 관련 사이트
맥/아이폰 개발과 관련된 국내외 사이트들과 블로그들입니다. 국내 사이트들도 아직은 다른 일반적인 개발환경에 비해서 자료와 회원들이 많지는 않습니다. 하지만 비슷한 관심분야를 가진 분들과 교류를 할 수 있고, 궁금하신 점들을 올리고 다른 분들의 의견이나 해답을 들을 수 있습니다. 아무래도 같은 한국어로 이야기하는 것이 명확하고 친근할 것 같습니다.

2.1) 사이트
* 국내

* 국외
  • Apple Developer Connection - 애플에서 제공하는 개발자 지원 서비스입니다.
  • Apple Discutssions - Developer Forum - 애플에서 제공하는 개발자 포럼입니다.
  • iPhone Development Forum - 애플의 아이폰 개발자 포럼이며, 현재는 개발자 프로그램에 등록된 회원만 접근할 수 있습니다.
  • Cocoalab - Become An Xcode란 문서로 유명한 사이트이며 관련 강좌와 소스들을 제공합니다.
  • iPhone Development Centra - 아이폰 개발에 관련된 튜토리얼, 포럼을 제공합니다.
  • iPhoneWebDev - 아이폰용 웹사이트 개발에 관련된 예제, FAQ를 제공합니다.
  • Cocoabuilder.com - Cocoa와 Xcode에 관련된 메일링 리스트를 제공합니다.
  • Apps Amuck - 31개의 아이폰 튜토리얼과 샘플코드를 제공합니다.
  • Cocoa Dev Central - 코코아 튜토리얼과 관련 링크들을 제공합니다.
  • CS 193E - 스텐포드 대학에서 제공하는 코코아 프로그래밍 강좌입니다.
  • CS 193P - 스텐포드 대학에서 제공하는 아이폰 프로그래밍 강좌입니다.

2.2) 블로그

아래는 맥, 아이폰 개발 관련 블로그들입니다. RSS로 등록해 놓으시면 유익하고 재미있는 포스팅들을 편하게 구독하실 수 있습니다.


이외에 Xcode, Cocoa, 맥프로그래밍 관련 국내외 사이트란 포스팅도 참고하세요.

2) 관련 서적
다음은 Cocoa, Objective-C, 맥/아이폰 개발에 관련된 서적들입니다. '코코아 프로그래밍'을 제외하고는 모두 원서이므로 아마존과 같은 외국 사이트 또는 국내의 구매대행 서비스를 하는 온라인 쇼핑몰에서 구입을 하셔야 합니다.

맥에서의 개발이든 아이폰에서의 개발이든 공통적으로 Xcode/인터페이스빌더의 사용법과 Objective-C, 파운데이션 프레임워크에 관해서 알고 있어야 합니다. 그렇기 때문에 당장 시작을 할 수는 없지만, 초반에 기본을 익히는데는 맥 프로그래밍 서적을 보셔도 큰 상관은 없을 것 같습니다.


* 코코아 프로그래밍
- 가격: 22,000원
- 출판: 인사이트
- 역자: 박진형

위에서 언급했던 현재까지 유일한 번역서적입니다. 코코아 프로그래밍에 관한 기본적인 사항을 익히기에 아주 좋은 책이지만, Xcode 2.*를 중심으로 소개하고 있기 때문에, 초보자들이 보기에는 Xcode 3.*을 사용하면서 약간의 차이점 때문에 혼돈되는 부분이 있습니다.


* Cocoa Programming for Mac OS X
가격: $31.49
출판: Addison-Wesley Professional
저자: Aaron Hillegass

아론 힐리가스가 쓴 코코아 프로그래밍의 가장 대표적인 서적입니다. 아이폰이 아닌 맥 프로그래밍에 관한 내용이지만 Xcode, 인터페이스 사용법과 Objective-C등 기본적인 내용을 익히기에 좋은 책입니다. 


* Xcode 3 Unleashed
가격: $26.99
출판 Sams
저자: Fritz Anderson

Step into Xcode의 다음 버젼으로 이전과는 달리 깔끔한 디자인으로 Xcode 3에 맞추어 새로 발간된 책입니다. 위의 아론 책과 유사한 입문서적인데 툴 로서의 Xcode 3 사용법에 치중하였습니다. 칼라로 되어 있기 때문에 보기에 편하고 좋습니다.


* Programming in Objective-C 2.0
가격: $26.69
출판: Addison-Wesley Professional
저자: Stephen G. Kochan

Objective-C 언어에 대한 책입니다. 저는 1.0 버젼을 가지고 있어 정확히 내용은 어떻게 변경되었는지는 모르겠습니다. Objective-C에 대해 체계적으로 공부하기에 좋은 책이며, 책의 절반 가량은 코코아에서 사용하는 파운데이션 프레임워크에 관해 설명하고 있습니다.


* The iPhone Developer's Cookbook
가격: $27.62
출판: Addison-Wesley Professional
저자: Erica Sadun

저도 읽은 적은 없지만 아이폰에서의 개발을 따라 해 볼 수 있는 좋은 책이라고 들었습니다. 쿡북이란 제목처럼 실제로 사용할 수 있는 다양한 소스들을 참조하고 따라해 볼 수 있을 것 같습니다.

(이미지 출처:아마존)

지금은 원서도 많지는 않지만 앞으로는 아이폰 개발에 관련된 책들이 많이 나올 것으로 보입니다. 새로 나온 iPhone, Cocoa 관련 책과 저자들이란 포스팅에서 신간 혹은 새로 나올 관련서적을 확인하실 수 있습니다.

3) 관련 문서
ADC에서는 OS X 개발에 기본이되는 많은 문서들을 제공하고 있습니다. 또한 많은 문서들은 pdf 버젼으로 다운로드 받을 수 있습니다. 자주 참조하는 문서들은 pdf 문서로 다운로드를 받아 편하게 읽어 볼 수 있습니다.

3.1) Getting Started 문서
제목 그대로 애플에서 제공하는 맥/아이폰 개발을 처음 시작하는 입문자를 위한 문서들입니다. 이 문서들은 요점만 제공하기 때문에 내용이 짧아 부담없이 읽어 보실 수 있습니다.

* Mac
ADC의 Gettting Started with Apple Technologies 란 문서를 보시면 맥 OS X 개발을 위한 다양한 자료와 링크를 확인하실 수 있습니다. 또한 세부 항목별로 Getting Started with *와 같은 링크를 제공하기 때문에 관심있는 분야별로 보다 상세하게 확인하실 수 있습니다.

* iPhone
iPhone Dev Center에서는 시작 페이지에서 아래와 같은 문서의 링크를 제공합니다. 각 문서들은 로그인 후에 접근할 수 있습니다.


3.2) Objective-C

3.3) Xcode & Cocoa

  • What's New in Xcode - Xcode 3.0과 3.1에서 업그레이드된 사항들입니다.
  • Xcode Workspace Guide - 툴로서 Xcode 사용법에 관한 메뉴얼입니다.
  • Xcode Overview - Xcode에 대한 간단한 설명과 함께 관련내용에 대한 세부 링크를 제공합니다.
  • Become An Xcoder - 처음 코코아 프로그래밍을 시작하는 사람들을 위한 튜토리얼입니다.
  • Cocoa Fundamentals Guide - 코코아 프레임워크에 관련된 전반적인 내용을 제공합니다.
  • Cocoa Application Tutorial - 간단한 코코아 어플리케이션을 만들어 보는 상세한  튜토리얼을 제공합니다.
  • Foundation Framework Reference - 코코아 프로그래밍을 위한 NS로 시작되는 다양한 파운데이션 프레임워크의 클래스들에 대한 설명 과 기본적인 함수, 데이터타입과 상수들에 대한 문서입니다. Xcode의 도움말에서도 확인하실 수 있으며, 제공하는 클래스들을 둘러 보기에 좋은 문서입니다.
  • Application Kit Framework Reference - AppKit은 위의 파운데이션 프레임워크와 함께 코코아 프로그래밍의 핵심 프레임워크로, 사용자 인터페이스(UI)를 위한 프레임워크입니다. 코코아에서 제공하는 다양한 사용자 UI 클래스들을 볼 수 있는 문서입니다.

3.4) 아이폰
ADC에서 아이폰 개발과 관련된 문서들은 링크는 가능하지만, 로그인 하지 않으면 메인 페이지에서 접근할 수 없는 정책에 따라 링크는 제공하지 않습니다. 하지만 아이폰 관련문서는 많지 않기 때문에 iPhone Dev Center로 로그인 후에 쉽게 찾으실 수 있습니다.

애플의 iPhone DevCenter의 메인화면에서 우측하단을 보면 iPhone Reference Library 색션에서 Required Reading 항목을 보면 아래와 같은 세개의 문서가 있습니다. 애플에서도 권장하는 기본적인 문서인만큼 꼭 읽어 보시는 것이 좋습니다.



이상 맥/아이폰 개발을 위한 자료들과 관련 사이트들을 간단히 알아 보았습니다. 급하게 써내려가서 빠지거나 틀린 내용들이 많이 있을 것 같습니다. 이는 추후에 수정해 나가겠습니다.

다음에는 마지막으로 아이폰 프로그래밍을 시작하는 방법에 대해 주관적인 제 생각을 포스팅 해 보겠습니다.
* 관련링크
iPhone 어플리케이션 개발을 위한 준비 - 1. 하드웨어
iPhone 어플리케이션 개발을 위한 준비 - 2. 소프트웨어
iPhone 어플리케이션 개발을 위한 준비 - 3. 관련 자료
iPhone 어플리케이션 개발을 위한 준비 - 4. 시작하기

모든 댓글을 환영합니다. (욕설과 광고는 삭제합니다.)
  1. Favicon of http://wookay.egloos.com BlogIcon ㄴㅇㄱ 2008.11.14 16:58  댓글주소  수정/삭제  댓글쓰기

    고맙습니다 ^^

  2. Favicon of http://innolab.tistory.com BlogIcon 송치형 2008.11.14 21:22  댓글주소  수정/삭제  댓글쓰기

    감사히 보겠습니다. :)

  3. 달룟 2008.11.14 21:37  댓글주소  수정/삭제  댓글쓰기

    iPone 오타발견!

    저는 왜 오타만 눈에 보일까요?

  4. yuripapa 2008.11.14 21:46  댓글주소  수정/삭제  댓글쓰기

    유일하게 가진 인사이트에 책, XCode버전이 틀려서 인터페이스 빌드 따라하기 무지 힘들더군요...
    갠적으론 애플 문서는 방대해서 레퍼런스하고... 블로거나 까페 강의를 보는편 입니다.
    위쪽에 정리된 사이트와 블로그... 괜찮네요... =^^=

    • Favicon of https://www.cocoadev.co.kr BlogIcon cocoadev 2008.11.14 17:05 신고  댓글주소  수정/삭제

      그래도 애플 문서가 가장 근원적인 자료인 것 같습니다. 심심할 때 하나씩 잡고 이런 것도 있구나 하고 읽으면 재미있더라구요. 문제는 사용하지를 않으니 금새 잊게 되는... ^^;;

  5. 밝은샘 2008.11.18 05:58  댓글주소  수정/삭제  댓글쓰기

    좋은 글 감사합니다. 내공이 대단하신듯 ㅎㅎ

  6. mac.park 2009.01.11 11:26  댓글주소  수정/삭제  댓글쓰기

    유용한 글 잘 보겠습니다.^^

  7. Favicon of http://www.action-scripter.com BlogIcon 땡굴이 2009.01.11 12:49  댓글주소  수정/삭제  댓글쓰기

    좋은 정보 감사합니다. 알려주신 책 검색을 해 보니 국내 유일 번역서 개정판이 나왔더라고요. 많은 분들에게 희소식이 아닐까 생각됩니다.

    • Favicon of https://www.cocoadev.co.kr BlogIcon cocoadev 2009.01.13 10:28 신고  댓글주소  수정/삭제

      넵, 작년 말에 개정판이 나온것으로 알고 있습니다. 앞으로는 우리나라에서도 관련서적이 더 많이 나왔으면 좋겠습니다. :)

  8. Favicon of http://simpai.tistory.com BlogIcon 차챠 2009.05.08 12:37  댓글주소  수정/삭제  댓글쓰기

    좋은 정보 얻어가요. 감사합니다. ^^;

  9. Favicon of http://blog.naver.com/so1ine BlogIcon 소현 2010.02.15 22:31  댓글주소  수정/삭제  댓글쓰기

    마우스로 드래그하면서 이리도 부끄럽고 죄송한 맘이 들줄야... 쉽게 퍼가는 게 죄송하네요 ^^

    열심히 모은 자료 잘 보겠습니다

  10. 2012.04.28 04:32  댓글주소  수정/삭제  댓글쓰기

    비밀댓글입니다



애플의 App 스토어와 아이폰/아이팟 터치에 관심을 가지시는 분들이 많아지면서, 아이폰 개발을 어떻게 시작 하는지 궁금해 하시는 분들이 계셔서 이에 관해서 포스팅을 해볼려고 합니다. 개발에 관한 직접적이거나 기술적인 이야기 보다는 준비해야 할 것, 관련 사이트/서적등에 대해 간단히 써보겠습니다.

기존에 다른 플랫폼에서 개발경험이 있는 분들은 조금만 자료를 찾아 보시면 쉽게 적응을 할 수 있으시니, 이 글에서는 별다른 도움이나 흥미있는 내용이 없을 것입니다. 이 포스팅은 아래와 같은 분들을 대상으로 합니다.

  • 애플 제품을 사용해 본적이 없으신 분
  • 개발 경험이 없으신 분
  • 아이폰 개발을 시작하시려는 분
 
이번과 다음 포스팅에서는 아이폰 어플리케이션 개발을 위해서는 필요한 하드웨어와 소프트웨어에 대해서 알아 보겠습니다. 설명이 길지만 요점은 아래와 같습니다.
* 필수 사항
  • OS X 10.5* 설치된 Mac
  • ADC 회원 가입
  • Xcode
  • iPhone SDK

* 선택 사항
  • 아이팟 터치 (또는 아이폰)
  • 아이폰 개발자 프로그램 가입

1. 하드웨어
1)  Mac 컴퓨터
아이폰 어플리케이션은 Xcode 3( +  iPhone SDK)를 사용하여 개발합니다. Xcode 3.* 버젼과 iPhone SDK는 OS X 10.5(레오퍼드) 이상에서만 설치하고 사용하실 수 있습니다.

그렇기 때문에 레오퍼드가 설치되어 있는 하드웨어가 필요하고, 공식적으로는 애플에서 판매하는 맥을 구입하셔야 합니다. (해킨토시나 cygwin에서 툴체인을 사용하는 방법은 논외로 하겠습니다.) OS X 10.5 레오퍼드에 대해서는 애플의 개발자를 위한 Leopard 기술이란 문서를 참조하시기 바랍니다.

 
1.1) 사양 비교
한국 애플스토어에서 판매하는 맥의 종류와 가격은 아래와 같습니다. 아쉽게도 요즘 환율로 인하여 최근에 나온 맥들은 이전보다 사양에 비해 가격이 많이 상승했습니다.


제품의 사양 및 평가는 제 경험에 의한 지극히 주관적인 평가입니다. 절대적인 것이 아니니 참고만 하시기 바랍니다.

* 맥미니
맥미니 1.83GHz은 가장 저렴한 맥으로 69만원이며, 현재 판매되는 맥중에서 성능은 가장 낮습니다. 또한 맥미니는 디스플레이와 키보드/마우스가 포함되어 있지 않기 때문에, 추가로 구입을 하거나 미리 준비가 되어 있어야 합니다. 하지만

(저는 집에서 가장 사양이 낮은 맥 미니 1.83GHz를 사용하고 있지만, Xcode에서 아이폰 어플리케이션을 개발하고 시뮬레이터를 실행하는데 전혀 부족함을 느끼지 못했습니다. 하지만 리소르를 많이 사용하는 작업이나 고사양의 3D 게임과 같은경우에는 부족한 점이 느껴질 것 같습니다.)


*
iMac

iMac은 디스플레이와 키보드/마우스가 제품에 포함되어 있기 때문에, 추가비용이 거의 발생하지 않습니다. 가격대 성능비가 가장 우수한 맥입니다. 개인적으론 개발용으로 사용하기에는 iMac이 비용대비로 가장 적당하지 않나 생각됩니다. iMac은 외부 모니터도 사용가능하기 때문에, iMac 디스플레이까지 포함하여 듀얼 모니터로 사용할 수 있습니다. 하지만 별도의 Mini DVI to VGA 또는 Mini DVI to DVI 어댑터를 구입하셔야 합니다.


*
맥북/맥북 프로/맥북 에어

당연한 이야기지만 가장 무난한 것은 맥북, 이동성 위주로 선택하면 에어, 성능 위주로 선택하면 맥북 프로입니다. 컴퓨터를 들고 다녀야 할 일이 없다면 개발이나 다른 용도로도 iMac이 더 나은 것 같습니다. 하지만 맥이 2대가 아니면서 집이외에 사무실/학교 등에서도 맥이 필요할 시에는 가장 좋은 선택으로 생각됩니다.

(저는 사무실에서 이전 세대의 2.4GB 흰색 맥북을 사용하고 있습니다. 구입시에 새로나온 iMac이 듀얼 모니터를 지원하는 것을 모르고, 이동할 일은 없지만 단순히 듀얼로 사용할려고 맥북을 구입했습니다. 제가 게임을 안해서 그런지 개발, 업무 및 일반적인 메인 컴퓨터로 사용시에도 사양이 떨어 진다는 생각은 전혀 들지 않았습니다.)


*
맥 프로

사용은 못 해보았지만 당연히 좋을 것 같습니다. 최저사양의 본체 가격만 315만원이며 맥 프로답게 강력하게 사용할려면 메모리와 하드 용량을 더 추가하면 기하급수적으로 비싸집니다. 능력이 되시는 분들은 당연히 맥 프로가 좋습니다.

(제게 있어서는 꿈의 하드웨어이고 다음 세대 iMac이 나오면 맥북에서 갈아 탈려고 합니다. 그리고 3년 정도 더 사용하다 맥 프로를 써보는 것이 야심찬(?) 저의 계획입니다.)


사양이 좋고 속도가 빠르면 빠를 수록 좋지만 가격을 감안하여 용도, 사용 장소, 휴대 여부등을 고려하여 결정하시면 될 것 같습니다. 위에도 언급하였지만 가장 사양이 낮은 맥미니도 아이폰 어플리케이션 개발을 위해선 무리가 없는 사양으로 생각됩니다.

1.2) 할인 혜택
* 교육 할인
대학생 또는 대학생 자녀를 둔 학부모와 유치원/초/중/고/대학교에 근무하는 교직원들은 교육할인 혜택으로 보다 저렴하게 맥을 구입할 수 있습니다.

* 구제품 할인
애플의 할인 스토어에서 구제품을 구입하는 방법도 있습니다. 애플인증 구제품은 반품제품을 애플에서 다시 수리, 교체하여 테스트 후에 판매하는 제품입니다. 거의(?) 새제품을 할인된 가격에 구입할 수 있습니다. 하지만 재고가 많지 않아 등록되자 마자 빠르게 팔리기 때문에 항상 확인을 해야 합니다.

* 중고 직거래
kmug와 같은 관련 커뮤니티 사이트들의 장터를 이용해 직접 중고 맥을 구입할 수 있습니다. OS X 10.5가 설치되어 있거나 설치가 가능하며 인텔 프로세스를 사용한 맥으로 구입하시면 됩니다.


2) 아이팟 터치
아이폰 어플리케이션은 아이폰과 아이팟 터치에서 실행됩니다. 아쉽게도 아이폰은 현재 우리나라에서 판매되지 않기때문에, 외국에서 따로 구입하지 않는다면 아이팟 터치가 거의 유일한 선택입니다.

아이팟 터치는 현재 2세대 제품이 판매되고 있습니다. 1세대와의 기능상 차이점은 아래와 같습니다. Xcode의 시뮬레이터가 있기 때문에 개발시에 아이팟 터치가 반드시 있어야 하는 것은 아닙니다. 배포를 생각하지 않고 있고 터치가 필요하지 않다면 시뮬레이터로도 개발은 가능합니다.

  • 스피커 내장
  • Nike+ 내장
  • 배터리 사용시간 증가
  • 음량 조절 버튼 추가

아이팟 터치는 저장 용량에 따라 8GB, 16GB, 32GB로 판매되고 있으며, 각각의 가격은 아래와 같습니다.

* 8GB - 280,000원
* 16GB - 370,000원
* 32GB - 489,000원

터치는 위의 용량에서 시스템이 1GB정도를 사용하고 있습니다. 역시 용량이 많을 수록 좋겠지만 사용계획과 가격에 따라 적당한 용량을 선택하시면 됩니다. 저는 8GB이며 몇개의 동영상, 노래 30여곡, 어플리케이션, pdf파일, 그림 파일등을 넣고 다니는데 현재 1GB 정도사용하고 있으며 6GB가 사용가능한 용량으로 남아 있습니다.

아이폰 개발시 필요한 하드웨어에 대해서 간단히 둘러 보았습니다. 다음 포스팅에서는 필요한 소프트웨어와 ADC 멤버 프로그램과 아이폰 개발자 프로그램에 대해서 알아 보겠습니다.
 * 관련링크
iPhone 어플리케이션 개발을 위한 준비 - 1. 하드웨어
iPhone 어플리케이션 개발을 위한 준비 - 2. 소프트웨어
iPhone 어플리케이션 개발을 위한 준비 - 3. 관련 자료
iPhone 어플리케이션 개발을 위한 준비 - 4. 시작하기

모든 댓글을 환영합니다. (욕설과 광고는 삭제합니다.)
  1. 달룟 2008.11.12 19:26  댓글주소  수정/삭제  댓글쓰기

    맥미니가 183GHz!! 맥프로 안사셔도 되겠는데요 ^^

    아이팟 터치는 16기가가 가격대 성능비가 우수한 것 같아요. 저도 8기가이상은 안 필요할 것 같지만...

    맥 개발할 때, 넓은 모니터 꼭 있어야 할 것 같아요. 다른 툴들과는 달리 작은 창들이 너무 많은 Xcode니까요.

    • Favicon of https://www.cocoadev.co.kr BlogIcon cocoadev 2008.11.12 19:44 신고  댓글주소  수정/삭제

      ^^;; 죄송합니다. 제 바램을 적었네요.

      저는 음악, 사진, 동영상 같은 것을 많이 넣지 않으니 8기가로도 충분한 것 같습니다. 많이 넣으시는 분들은 모자랄 것 같고요.

      Xcode는 보통 인터페이스빌더랑 같이쓰니 듀얼 모니터로 써야 편한 것 같습니다.

      오타지적 감사 합니다. :)

  2. 달룟 2008.11.12 19:27  댓글주소  수정/삭제  댓글쓰기

    시뮬레이터로 개발하는 것과 터치에서 개발하는 것 중, 어느 것이 더 시간을 더 아낄 수 있나요?

    • Favicon of https://www.cocoadev.co.kr BlogIcon cocoadev 2008.11.12 19:46 신고  댓글주소  수정/삭제

      저 같으면 제약이 없다면 최대한 시뮬레이터에서 개발하다가 터치에서는 테스트만 해볼 것 같습니다. 아무래도 한 하드웨어에서 개발하는 것이 더 빠르지 않을까요?

  3. yuripapa 2008.11.13 02:11  댓글주소  수정/삭제  댓글쓰기

    Mac Pro까지는 전혀 필요없을꺼 같습니다.
    그리고 맥 프로 설명부분 하퍼타운은 시퓨 하나당 쿼드코어니깐 옥타코어라고 쓰는게 더 나을꺼 같지않으세요???

    저는 맥북 1세대 CoreDuo 2GHz, 2GB RAM, 250GB HDD에 Dell 2407모니터 붙여서 씁니다.
    아이폰 개발환경으론 느리다는 생각은 한 번도 안해봤습니다. 요즘 나오는 맥 사양이면 엄청 빠를겁니다.
    아이팟 터치는 1세대 8기가 쓰는데요... 운영자님과 마찬가지로 별루 넣는게 없어서 반 이상이 남았습니다.
    개발자 프로그램 등록을 안해서 터치로 옮기지는 못하고 걍 에뮬만 돌리는 정돕니다.

    • Favicon of https://www.cocoadev.co.kr BlogIcon cocoadev 2008.11.13 09:40 신고  댓글주소  수정/삭제

      맥프로까지 필요는 없지만 돈만 많다면 맥프로+애플 시네마 듀얼이면 눈이 즐거울 것 같습니다. 우리나이가 되면 속도도 별로 신경 안쓰고, 아이팟도 용량이 남아돌죠. ^^;;

  4. 2009.06.11 17:09  댓글주소  수정/삭제  댓글쓰기

    비밀댓글입니다

  5. flyloo4 2010.09.07 02:06  댓글주소  수정/삭제  댓글쓰기

    학교에서 발표자료를 만들고 있는데 참고해서 만들어도 될까요?

  6. 2011.11.03 11:36  댓글주소  수정/삭제  댓글쓰기

    비밀댓글입니다



간단하게 아이폰용 바이오리듬 어플리케이션을 만들어 보겠습니다. 저도 처음 아이폰 SDK를 사용하여 만들어 보았기 때문에, 과정을 가능한 상세하게 설명할려고 합니다. 바이오리듬은 이전에 데쉬보드 위젯에서의 방식을 사용 하였습니다. 역시나 제대로 된 방법인지는 잘 모르겠습니다.




1. 프로젝트 생성
Xcode를 실행하여 파일 메뉴에서 New Project를 클릭합니다. iPhone OS의 Application 항목에서 가장 마지막에 있는 'Window-Based Application'을 선택한 후 Choose... 버튼을 클릭합니다.

프로젝트명을 'iBio'로 입력하고 Save 버튼을 클릭합니다.


2. iBioView
1) 클래스생성
바이오리듬을 막대그래프 형식으로 보여줄 View 클래스를 만들어 보겠습니다. 메뉴에서 파일/New File...(또는 단축키: ⌘+N)을 클릭합니다. IPhone OS/Cocoa Touch Classes를 클릭하고 아래와 같이 UIView subclass를 선택한 다음 Next 버튼을 클릭합니다.


다음 창에서 아래와 같이 File Name에 iBioView.m을 입력한 후에 Finish 버튼을 클릭합니다.

2) iBioView.h
iBioView.h 파일에 아래와 같이 내용을 추가 합니다.
#import <UIKit/UIKit.h>

#define MAX_DATATYPE        3

@interface iBioView : UIView {
   double bioData[MAX_DATATYPE];
}

- (void)showBioData: (double)days;
- (int)getBioDataAt: (int)index;

@end

MAX_DATATYPE은 바이오리듬 항목을 의미하며, 신체/지성/감성 등 3개의 항목을 가지고 있습니다. bioData에는 각 항목별로 오늘의 바이오리듬 값이 저장됩니다.

3) iBioView.m
iBioView.m 파일에 아래와 같이 내용을 추가 합니다. 설명은 소스내의 간단한 주석으로 대신하겠습니다.
#import "iBioView.h"

@implementation iBioView

- (id)initWithFrame:(CGRect)frame {
   if (self = [super initWithFrame:frame]) {
          /* 바이오리듬 값을 0으로 초기화 */

           for (int i = 0; i < MAX_DATATYPE; i++) {
               bioData[i] = 0.0;

       }
   }
   return self;
}

- (void)drawRect:(CGRect)rect {
    CGContextRef context = UIGraphicsGetCurrentContext();
   
   /* 세개의 바이오리듬 값 막대 출력 */
    for (int i = 0; i < MAX_DATATYPE; i++) {
        CGContextBeginPath(context);
        CGContextSetLineWidth(context, 15.0);
       
        int y = 34 + (i * 40);
      
       /* 바이오리듬 값이 0보다 작으면 붉은 색으로 크면 파란색으로 표시 */
        if (bioData[i] > 0)
            CGContextSetRGBStrokeColor(context, 0.0, 0.0, 1.0, 1.0);
        else
            CGContextSetRGBStrokeColor(context, 1.0, 0.0, 0.0, 1.0);
      
       /* 선을 그린다 */
        CGContextMoveToPoint(context, 200, y);
        CGContextAddLineToPoint(context, 200 + (bioData[i] * 80/100) , y);
       
        CGContextStrokePath(context);
    }
}

- (void)dealloc {
   [super dealloc];
}

- (void)showBioData: (double)days {
    static const double s_values[MAX_DATATYPE] = {
        23.0, 28.0, 33.0
    };
   
   /* 각 바이오리듬 설정 */
    for (int i = 0; i < MAX_DATATYPE; i++) {
        bioData[i] = sin((days/s_values[i]) * 2 * 3.14195) * 100;
    }
   
   /* 변경된 값으로 view가 다시 그려지도록 한다 */
    [self setNeedsDisplay];
   
}

- (int)getBioDataAt: (int)index {
    return (int)bioData[index];
}

4) 프레임 워크 추가
CGContextBeginPath와 같이 코어그래픽스 프레임워크의 모듈을 사용하기 위해 해당 프레임워크를 추가해야 합니다. 아래와 같이 Xcode 좌측의 Frameworks에서 마우스를 우클릭하여 Add/Existing Frameworks... 메뉴를 선택합니다.


선택창이 열리면 /Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS2.0.sdk/System/Library/Frameworks  디렉토리에서 /CoreGraphics.framework를 선택합니다.

* 확인
완료되면 좌측과 같이 CoreGraphics.framework가 추가되어 있는 것을 확인할 수 있습니다.




3. iBioAppDelegate 변경
1) iBioAppDelegate.h
iBioAppDelegate.h 파일에 아래의 내용을 추가합니다. 추가된 항목은 인터페이스 빌더에서 각각의 오브젝트와 액션으로 연결됩니다.

#import <UIKit/UIKit.h>

@class iBioViewController;
@class iBioView;

@interface iBioAppDelegate : NSObject <UIApplicationDelegate> {
   IBOutlet UIWindow *window;

    IBOutlet iBioView *view;
    IBOutlet UIDatePicker *datePicker;
   
    IBOutlet UITextField *text_1;
    IBOutlet UITextField *text_2;
    IBOutlet UITextField *text_3;
}

@property (nonatomic, retain) UIWindow *window;

- (IBAction) viewButtonClicked:(id)sender;

@end


2) iBioAppDelegate.m
iBioAppDelegate.m 파일에 아래의 내용을 추가합니다.
#import "iBioAppDelegate.h"
#import "iBioView.h"

@implementation iBioAppDelegate

@synthesize window;

- (void)applicationDidFinishLaunching:(UIApplication *)application {   
   
    // Override point for customization after app launch   
    [window makeKeyAndVisible];
}


- (void)dealloc {
    [window release];
    [super dealloc];
}

/* 사용자가 보기 버튼을 클릭시에 메시지를 받는 메소드 */
- (IBAction)viewButtonClicked:(id)sender {
    /* 사용자가 DatePicker에서 입력한 생일과 현재 날짜로 부터 차이를 구함 */
    NSTimeInterval ti = [[datePicker date] timeIntervalSinceNow];
    double days = ceil(fabs(ti) / (24 * 60 * 60));
   
   /* view에서 days를 기준으로 바이오리듬을 구하고 출력되도록 한다 */
    [view showBioData: days];
   
   /* 각 텍스트필드에 새로 계산된 바이오리듬 값으로 설정 */ 
    [text_1 setText: [NSString stringWithFormat: @"%d", [view getBioDataAt:0]]];
    [text_2 setText: [NSString stringWithFormat: @"%d", [view getBioDataAt:1]]];
    [text_3 setText: [NSString stringWithFormat: @"%d", [view getBioDataAt:2]]];
}

@end

* 인터페이스 빌더 오픈
변경된 모든 파일들을 저장하고 좌측과 같이 MainWindow.xib를 더블클릭하여 인터페이스 빌더를 실행합니다.



4. 사용자 인터페이스 생성
1) DatePicker
* Library 윈도우
사용자가 생일을 입력할 수 있도록 DatePicker를 설정합니다.


위와 같이 라이브러리 윈도우의 Cocoa Touch Plugin/Data Views에서 Date Picker를 클릭한 후에 드래그 하여 윈도우에 가져다 놓습니다. 아래가 윈도우에 위치한 모습니다.


* 속성 변경
위의 윈도우에서 DatePicker가 선택된 상태에서 속성창에서 좌측과 같이 설정합니다.

속성창이 안보이면 선택된 상태에서  단축키(⌘+1)를 이용합니다.










2) ToolBar
다시 라이브러리 윈도우의 Windows, Views & Bars 항목에서 좌측과 같은 Toolbar 아이콘을 드래그 하여 윈도우의 하단에 아래와 같이 배치합니다.



* 타이틀 변경
툴바의 Item 버튼을 더플클릭하면 좌측과 같이 입력 가능한 상태로 변경됩니다. '보기'라고 입력합니다.



3) 안내문구
다시 라이브러리 윈도우의 Inputs & Values 항목에서 Label을 윈도우의 DatePicker 위로 드래그 해서 놓습니다.


* 속성 변경
좌측과 같이 속성창에서 Text에  "생일을 선택한 후 보기를 클릭하세요" 라고 입력합니다.

하단의 Layout에서 정렬을 중앙 정렬로 놓습니다.






* 확인
현재까지 윈도우의 모습은 아래와 같습니다.
사용자 삽입 이미지


4) View
다시 라이브러리 윈도우의 Windows, Views & Bars 항목에서 좌측과 같은 View 아이콘을 드래그 하여 크기를 조절하여 윈도우의 상단에 아래와 같이 배치합니다.
* 배경 색상 변경
속성창의 Background의 색상선택 버튼을 클릭하여 좌측과 같이 검정색으로 설정합니다.








* 클래스 변경
Class에 Xcode에서 만들어 두었던 iBioView를 선택합니다.





5) 제목, 텍스트 필드
* 제목 라벨
라이브러리 윈도우에서 Label을 세번 드래그 해서 좌측과 같이 배치합니다. 

라벨을 더블클릭하여 입력모드가 되면 각각 '신체:', '감성:', '지성:'으로 입력합니다.










* 텍스트 필드
라이브러리 윈도우에서 좌측과 같은 TextFiled도 똑같이 세번 드래그 해서 이전에 배치한 라벨의 옆에 아래와 같이 배치합니다.



* 속성 변경
⌘를 누른 상태에서 마우스로 클릭하여 좌측과 같이 세개의 텍스트 필드를 선택합니다. ⌘+1로 속성창을 엽니다.







사용자로 부터 입력에 반응하지 않기 위해 'User Interaction Eanbled'를 체크를 해제합니다.



5. 연결
MainWindow.xib 윈도우에서 I Bio App Delegate를 마우스로 우클릭합니다. 아래와 같이 iBioAppDelegate.h에서 생성해 놓은 Outlet들과 'viewButtonCliecked' Action이 있습니다. 이제 실제 오브젝트들과 연결해 보겠습니다.


1) Date Picker 연결
dataPicker 우측의 원 모양의 아이콘을 클릭하면 좌측과 같이 +로 모양이 변경됩니다. 이 상태에서 마우스 버튼을 클릭한 채로 아래와 같이 윈도우의 DatePicker에 드래그해서 놓습니다.


* 확인
완료되면 좌측과 같이 연결된 오브젝트가 표시되며, 우측의 원 모양 아이콘이 on으로 표시되어 연결되어 있슴을 알려 줍니다. x 모양의 아이콘을 클릭하면 연결이 해제됩니다.

2) TextFiled 연결
위와 같은 방법으로 아래와 같이 TextField를 text_1, text_2, text3과 위에서 부터 순서대로 연결합니다.

3) View 연결
같은 방법으로 아래와 같이 view도 연결합니다.

4) viewButtonClicked 메소드 연결
사용자가 보기 버튼을 클릭하면 viewButtonClicked가 실행되도록 위와 같은 방법으로 viewButtonClicked를 툴바의 보기 버튼과 연결합니다.

5) 연결 확인

좌측과 같이 모든 항목들이 정확하게 연결이 되어 있는 것을 확인합니다.

이제 모두 완료되었습니다. 저장 후에 빌드를 한후 실행하여 동작을 확인해 봅니다.









이상 간단하게 첫 아이폰 어플리케이션을 만들어 보았습니다. DatePicker도 동작과 설정이 조금 이상한 것 같고, 처음 갑작스레 만들어 본 것이라 맞는 방법인지 의심스럽습니다. 혹시 잘못된 부분이 있으면 댓글로 알려 주시면 감사하겠습니다.

기본 UI들이 멋있어서 맞출려면 디자인이나 이미지에 신경을 써야 할 것 같습니다. 나중에 조금 더 알아본 후에 월별로 출력하도록 수정하고 몇가지 변경해 본 후에 다시 한번 올려 보겠습니다.
모든 댓글을 환영합니다. (욕설과 광고는 삭제합니다.)
  1. 달룟 2008.09.04 19:24  댓글주소  수정/삭제  댓글쓰기

    와! 멋진데요! 저도 해 볼께요.(가능할까?ㅋ)

  2. Favicon of http://me2day.net/wookay BlogIcon ㄴㅇㄱ 2008.09.04 20:05  댓글주소  수정/삭제  댓글쓰기

    고맙습니다~~~

  3. 달룟 2008.09.04 20:42  댓글주소  수정/삭제  댓글쓰기

    "4) 프레임 워크 추가"할 때 이런 게 뜨는데 정상인가요?

    http://screencast.com/t/8RfrobvM

  4. 달룟 2008.09.04 21:13  댓글주소  수정/삭제  댓글쓰기

    똑같지는 않지만, 거의 같게 만들었습니다.

  5. 함지 2008.09.05 16:08  댓글주소  수정/삭제  댓글쓰기

    브라보 ! 멋지네요. 역시 개발이력(짬빱?!)이 되시는 분들 진도 나가시는게 대단하네요. 달력 돌아가는게 예술입니다 !

    • Favicon of https://www.cocoadev.co.kr BlogIcon cocoadev 2008.09.05 18:28 신고  댓글주소  수정/삭제

      날짜 선택하는 게 하도 커서 뭐가 있어 보이는데, 진도 나간 건 별로 없습니다. ^^;;

      아이폰 개발은 별로 관심이 없었는데, 말씀하신 달력의 예술적인 움직임에 반해서 한번 사용해 보았습니다. :)

  6. Favicon of http://rococo.tistory.com BlogIcon B군 2008.09.09 00:11  댓글주소  수정/삭제  댓글쓰기

    차근차근 잘 설명을 해주셔서 따라하기가 넘 쉬웠어요^-^

    • Favicon of https://www.cocoadev.co.kr BlogIcon cocoadev 2008.09.09 11:54 신고  댓글주소  수정/삭제

      감사합니다. 두번째 버젼은 만들어 놓고 포스팅할 엄두를 못내고 있어는데, B군님의 댓글에 힘을 내서 오늘 점심먹고 시작해 보아야 겠네요. ^^

  7. 함지 2008.09.09 14:29  댓글주소  수정/삭제  댓글쓰기

    이제 사인웨이브가 한,, 일주일, 열흘, 한달치가 색깔별로 떠주면 완전한 App 하나 완성인가요 !? 안그래도 오늘 머니타임즈인가에 KTF의 iPhone 계약건이 나왔던데 론칭기념으로 하나 날려주세요 !

    • Favicon of https://www.cocoadev.co.kr BlogIcon cocoadev 2008.09.09 16:24 신고  댓글주소  수정/삭제

      한달 단위로 보여 주며 하단에 일별로 상세하게 볼 수 있도록 하였습니다. 곧 올리겠습니다.

      기쁜 소식이 나왔네요. 알려 주셔서 감사합니다. ^^

  8. felix 2008.11.03 19:38  댓글주소  수정/삭제  댓글쓰기

    맥북 지르고 ㅋㅋ SDK 깔아 본후 ㅋ

    바로 시작해서 따라 해봤습니다. ㅋ

    중간중간에 에러 나고 잘 안되는 부분이 있긴 했는데

    이제 잘됩니다. ^^;; ㅋ 이제 Toolchain은 그만해야 겠습니다. ^^ ㅋㅋ

  9. skna 2008.11.07 14:53  댓글주소  수정/삭제  댓글쓰기

    결국 자기 디바이스에 올리려면 developer 로 등록해야 되나요?

  10. Favicon of https://cre8ive.tistory.com BlogIcon cre8ive 2008.11.09 02:01 신고  댓글주소  수정/삭제  댓글쓰기

    정말 유익하게, 즐겁게 보면서 따라했습니다.
    조금이나마 Cocoa Touch 에 대한 감을 잡는데 큰 도움이 되었습니다.

    감사합니다 ^^

    IDP 신청화면을 들어갔더니 접수번호알려주고
    기다리라는 화면이 나오네요. 얼마나걸릴지
    빨리 iPod Touch 에 심어보고 싶네요 ^^

    • Favicon of https://www.cocoadev.co.kr BlogIcon cocoadev 2008.11.09 16:13 신고  댓글주소  수정/삭제

      보통 2~3일만에 되는 분들도 있고 몇주 걸리는 분들도 있는 것 같습니다. 정확히 어떤 이유에서인지는 잘 모르겠네요.

      빨리 처리되시기를 바랍니다. 좋은 말씀 감사합니다. :)

  11. 버들피리 2009.03.29 13:24  댓글주소  수정/삭제  댓글쓰기

    최근 SDK에서는 delegate 하는 부분이 바뀌었나 보네요. Connections Inspector 에 있네요. 우클릭이라는 글을 보면 당황하게 되네요. 맥마우스는 버튼이 하나인데.. 어디를 말하는 건지.. 제가 맥초보라 어제 샀거든요. ^^; 하여튼 유용하게 잘 보고 있습니다.

    • Favicon of https://www.cocoadev.co.kr BlogIcon cocoadev 2009.03.29 15:19 신고  댓글주소  수정/삭제

      아주 오래전 것이 아니라면 근래의 마이티 마우스는 투버튼을 지원을 하고 있습니다. 오른쪽 클릭을 해서 확인해 보세요. 아마 될 것 입니다. 만약 안되신다면 Ctrl + 마우스 클릭하시면 되고요. :)

  12. ssnmovie 2009.06.08 00:14  댓글주소  수정/삭제  댓글쓰기

    제가 원래 프로그램을 다루던 사람이 아니고요... 그래픽쪽 일을 하는 사람인데요...
    무작정 배워보고싶어 맥북 지르고...
    무료가입해서... Xcode 깔고... 해보고있는데요...
    좀 막막하네요..ㅜㅜ
    혹시 어떤식으로 공부를 해야하는지... 조언좀 해주신다면??
    무작정 따라해보고... 그럼.. 될까요??
    왜 이렇게 되는지는 잘 이해가 안되는데...ㅜㅜ

    • Favicon of https://www.cocoadev.co.kr BlogIcon cocoadev 2009.06.08 13:33 신고  댓글주소  수정/삭제

      아이폰 개발이 어려울 것은 없지만 프로그래밍 경험이 없으신 분들은 좀 막연할 수 있습니다. 이는 비단 아이폰 개발뿐만 아니라 다른쪽 개발도 마찬가지일 것이고요.

      방향이 어느정도 잡히고 뭔가가 보이기 전까지는 무조건 많이 따라해보고 조금씩 바꿔보고, 관련서적과 자료를 보시는 방법밖에 없을 것 같습니다. 좀 거시기한 말씀이지만.. 왕도는 없는 것 같습니다.

      관련된 커뮤니티나 동호회에 가입하셔서 다른분들과 같이 공부도 하고 궁금한 점을 물어 보시고 하는 것도 좋은 방법일 것 같습니다.

      그럼 힘내시고 수고하세요. :)

  13. 무작정따라하기 2009.06.23 17:50  댓글주소  수정/삭제  댓글쓰기

    무작정 따라 해 보고 있는데, build and go 해 보니까.
    실행할때 아래와 같은 메세지가 나오네요.

    Process: iBio [410]
    Path: /Users/towbtowb/Library/Application Support/iPhone Simulator/User/Applications/E25EFC08-263C-431E-848C-B64E6D19BCB5/iBio.app/iBio
    Identifier: iBio
    Version: ??? (???)
    Code Type: X86 (Native)
    Parent Process: launchd [110]

    Date/Time: 2009-06-24 02:08:12.649 +0900
    OS Version: Mac OS X 10.5.6 (9G55)
    Report Version: 6

    Exception Type: EXC_BREAKPOINT (SIGTRAP)
    Exception Codes: 0x0000000000000002, 0x0000000000000000
    Crashed Thread: 0

    Dyld Error Message:
    Library not loaded: /System/Library/Frameworks/UIKit.framework/UIKit
    Referenced from: /Users/towbtowb/Library/Application Support/iPhone Simulator/User/Applications/E25EFC08-263C-431E-848C-B64E6D19BCB5/iBio.app/iBio
    Reason: image not found

    대충 보니까. Frameworks 에서... 라이브러리가 로드 안된거 같은데.

    왜 그런지.. 아시는지 초보라서 일단 무작정 따라 해 보고 있습니다.

    • Favicon of https://www.cocoadev.co.kr BlogIcon cocoadev 2009.06.24 16:47 신고  댓글주소  수정/삭제

      저도 정확한 원인은 모르겠습니다. UIKit은 /Developer 밑에서 찾아야 되는데 좀 이상하네요. iPhone SDK 문제인지, 프로젝트 설정이 잘 못된 것인지, 어플 자체의 오류인지 확실히 모르겠습니다.

      새 아이폰 프로젝트도 이러면 SDK를 다시 설치하셔야 할 것 같고요. 지금 프로젝트만 이러면 설정이나 코드/IB 설정에 문제가 있는 것 같으니 프로젝트를 새로 만드신 후 복사하시거나 소스코드와 IB 연결상태, 속성들을 체크해 보셔야 할 것 같습니다.

  14. Munggu 2009.06.30 11:32  댓글주소  수정/삭제  댓글쓰기

    감사합니다 이제 막 시작해볼까 하는데 많은 도움이 될 것 같네요

  15. jickson98 2012.02.12 17:48  댓글주소  수정/삭제  댓글쓰기

    좋은자료입니다. 긍데 너무 오래 지나서 버젼이 안맞는지 오류가 생깁니다.

    위치는 bioView.m 파일에

    if (self = [super initWithFrame:frame])


    [self setNeedsDisplay];

    이 두 부분에서요. xcode4.2를 쓰고 있는데 어떻게 수정해야할까요?