아이폰어플개발정보2010. 6. 21. 18:30
[펌]iPhone 어플리케이션 개발을 위한 준비 - 4. 시작하기
iPhone 어플리케이션은 Xcode란 개발툴에서 코코아터치 프레임워크와 Objective-C 언어를 사용하여 개발합니다. 코코아 터치는 맥 OS X의 핵심 프레임워크인 코코아를 기본으로 아이폰/터치라는 모바일 기기의 특성에 맞추어진 iPhone 개발의 기본 API입니다.

그렇기 때문에 아이폰 어플리케이션 개발을 위해 기본적으로 알아야할 사항은 통합개발 환경인 Xcode와 인터페이스 빌더라는 툴의 사용법, Cocoa Touch 프레임워크, Objective-C 크게 세가지입니다. 이번에는 간단히 iPhone OS의 계층구조를 중심으로 iPhone 어플리케이션 제작을 위해 접근하는 방법에 대해서 알아 보겠습니다.

1. iPhone OS 계층 구조
아래의 그림은 애플에서 설명하는 아이폰 OS의 기술 계층입니다. 이에 대한 자세한 내용은 아이폰 개발자 센터iPhone OS Technology Overview란 문서에 잘 정리되어 있습니다.


가장 로우레벨의 Core OS부터 가장 상위단계인 코코아 터치까지의 계층구조입니다. 주로 하단은 API가 C로 제공되며 상위로 올라 오면서 Objective-C로 제공됩니다. 많이 사용되는 로우레벨의 API들은 상위단계에서 쉽고 편하게 사용할 수 있는 프레임워크로 제공됩니다. 간 계층의 간단한 설명은 아래와 같습니다.

1) Core OS
메모리/프로세서 관리, 파일 시스템, 네트워크, 각종 하드웨어 드라이버등, 운영체제 하단의 커널 레벨에서 제공하는 커널 API 입니다. 흔히 이야기하는 시스템 프로그래밍에 관련된 C를 기반으로 한 라이브러리를 제공합니다.

2) Core Services
Core Foundation, CFNetwork, SQLite, POSIX threads와 같은 파일입출력, 저수준 데이터 타입, 소켓등에 관련된 서비스입니다. Core OS 레벨에 비교적 쉽게 접근할 수 있는 API를 제공합며 대부분 C로된 프레임워크를 제공됩니다. 여기서 제공하는 많은 기능들은 상단 코코아터치의 Foundation Framework에서 Objective-C 프레임워크로 제공됩니다.

  • Core Foundation - 배열, 스트링, 날짜, URL, 로우레벨 데이터등 아이폰 어플리케이션을 위한 기본적인 C API를 제공합니다.
  • CFNetwork - BSD 소켓 및 HTTP, FTP 프로토콜등 네트워크에 쉽게 접근할 수 있는 API를 제공하는 프레임워크입니다.
  • Core Location - GPS, 주변검색등에 사용할 수 있는 사용자의 현재 위치(위도, 경도) 정보와 관련된 API를 제공하는 프레임워크입니다.
  • SQLite - 아이폰 어플리케이션에서 쉽게 사용할 수 있는 파일기반의 경량 데이터베이스 입니다. SQLite에 관련된 보다 자세한 내용은 이전 포스팅을 참조해 주세요.
  • XML - XML 파싱을 위한 libXML2 라이브러리를 제공합니다.

  • 이외에 보안, 주소록등에 관련된 서비스를 제공합니다.

    3) Media
    비디오, 오디오, 2D/3D 그래픽, 에니메이션을 구현할 수 있는 API를 제공합니다. Objective-C 또는 C로된 API를 제공합니다.

    • Quartz - OS X의 벡터를 기반으로 한 그래픽 엔진입니다. 선과 도형을 그리고 이미지, 비트맵, PDF를 출력하고 색상, 위치에 관련된 C로된 API를 Core Graphic 프레임워크를 통해 제공합니다.
    • Core Animation - 각종 에니메이션과 시각효과를 제공하는 Objective-C로된 프레임워크입니다.
    • OpenGL ES - 게임등과 같은 고성능의 2D/3D 그래픽 출력을 위한 OpenGL ES 1.1에 기반한 C 프레임워크입니다. OpenGL ES를 사용한 게임은 이를 지원하는 다양한 모바일 플랫폼에서의 포팅을 쉽게 할 수 있습니다. 자세한 내용은 공식 홈페이지를 참조하시기 바랍니다.
    • Core Audio - 마이크를 통해 녹음하고 음악파일을 출력하고 각종 음향효과를 제공하는 C로된 오디오 관련 프레임워크입니다.
    • OpenAL - OpenGL ES와 유사한 개념의 크로스 플랫폼을 지원하는 게임등을 위한 고성능 3D 오디오 라이브러리입니다. 자세한 내용은 공식 홈페이지를 참조 하시기 바랍니다.
    • 동영상 - mov, mp4, 3gp와 같은 각종 동영상 파일을 출력을 지원합니다. 이는 Objective-C를 기반으로 한 Media Player framework를 이용하여 손쉽게 접근할 수 있습니다.

    • 4) Cocoa Touch
      iPhone개발의 기본이 되는 계층으로 Objective-C를 기반으로 한 핵심적인 두개의 프레임워크를 가지고 있습니다. 사용자 인터페이스, 이벤트 처리등과 함께 위에서 언급한 로우레벨의 기술들을 보다 쉽게 사용할 수 있는 프레임워크를 제공합니다.

      • Foundation Framework - 배열, 스트링, 날짜 로우레벨 데이터등에 관련된 클래스를 제공하는 기본적인 프레임워크입니다. 위의 Core Foundation에서 제공하는 기본 API들의 Objective-C 레퍼 클래스를 제공합니다.
      • UIKit Framework -각종 컨트롤, 윈도우등의 UI, 이벤트 처리등 iPhone 어플리케이션의 사용자 인터페이스와 관련된 API를 제공하는 프레임워크입니다.


      • 2. Mac or iPhone
        Mac의 Cocoa와 iPhone의 Cocoa touch는 이름에서 부터 알 수 있듯이 매우 비슷합니다. 가장 큰 차이점은 역시 인터페이스에 관련된 부분으로 이와 관련하여 Mac에서는 AppKit이란 프레임워크를 iPhone에서는 UIKit이란 프레임워크를 제공합니다.

        Foundation Framework는 거의 유사하지만 아이폰의 특성상 제거 또는 변경된 부분이 있습니다. 아이폰은 코코아


출처 : http://blog.naver.com/PostView.nhn?blogId=minny0109&logNo=150044206980
Posted by 오늘마감

댓글을 달아 주세요

아이폰어플개발정보2010. 6. 21. 18:30
[펌]iPhone 어플리케이션 개발을 위한 준비 - 3. 관련 자료
3. 관련 자료

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


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

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

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


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

2.1) 사이트
* 국내
  • OSXDEV - 국내에서 가장 오랜 역사를 가진 OS X 개발 커뮤니티 입니다.
  • Korea iPhone Dev Group - 아이폰 개발 커뮤니티입니다.
  • 맥부기 아이폰 개발자 모임  - 네이버에 개설된 아이폰/맥 개발 까페입니다.

  • * 국외
    • 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로 등록해 놓으시면 유익하고 재미있는 포스팅들을 편하게 구독하실 수 있습니다.

      • Thecacao
      • PrEV
      • iPhone Developement
      • Cocoa Samurai
      • briksoftware's blog
      • Long Pointers
      • Chris Hanson
      • Safe from the losing fight
      • Cocoa with  Love
      • Borkware Miniblog
      • Call Me Fishmeal
      • furbo.org
      • Dave Dribin's Blog
      • Matt Legend Gemmell

      • 이외에 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에 맞추어


출처 : http://blog.naver.com/PostView.nhn?blogId=minny0109&logNo=150044206935
Posted by 오늘마감

댓글을 달아 주세요

아이폰어플개발정보2010. 6. 21. 18:30
[팜] iPhone 어플리케이션 개발을 위한 준비 - 2. 소프트웨어
2. 소프트웨어
아이폰 어플리케이션을 위해 준비해야될 소프트웨어는 Xcode와 iPhone SDK 입니다. 내용은 조금 길지만 요약하면 ADC 맴버쉽 프로그램에 가입 후에 Xcode와 iPhone SDK를 다운로드 받아 설치하시면 됩니다. 맴버쉽 프로그램 등록, 개발 툴 모두 무료입니다.

1) Xcode 와 iPhone SDK 설치
1.1) ADC 가입
Xcode와 iPhone SDK는 모두 무료로 제공됩니다. 하지만 다운로드 받기 위해서는 ADC (Apple Developer Connection) 멤버쉽 프로그램에 가입하셔야 됩니다. (Xcode는 설치CD에 포함되어 있지만, 최신버젼을 얻기 위해서는 다운로드 받아서 설치하시는 것을 권장합니다.)  ADC는 애플이 제공하는 개발에 관련된 각종 툴, 문서, 샘플코드등을 제공하는 서비스입니다. 현재는 아래와 같이 아이폰과 맥, 두개의 색션으로 분리되어 있습니다.


ADC 회원은 지원범위에 따른 여러 유료회원도 있지만, 무료인 온라인 회원으로 가입하셔도 개발툴과 관련 문서, 샘플코드를 사용할 수 있습니다. ADC회원가입과 Xcode, iPhone SDK 설치에 관한 자세한 내용은 Xcode 3 다운로드 및 설치란 포스팅을 참고 하시기 바랍니다.

1.2) Xcode
Xcode는 애플에서 제공하는 OS X에서 맥/아이폰 어플리케이션 개발을 위한 대표적인 개발툴입니다. GCC를 컴파일러로 사용하는 Xcode는 Objective-C, C/C++, Java, Ruby, Python등의 언어를 지원하며, GUI 어플리케이션뿐만 각종 커멘드라인 유틸리티, 프레임워크, 라이브러리, 드라이버등 맥과 아이폰에서 사용하는 다양한 실행 바이너리를 만들 수 있습니다.


* 인터페이스 빌더
Xcode는 맥과 아이폰의 GUI 디자인을 위한 툴로 인터페이스 빌더(IB)를 제공합니다. IB는 OS X 어플리케이션에서 사용하는 nib 파일을 생성해 줍니다. nib에 대한 자세한 설명은 nib 파일 둘러보기란 포스팅을 참조하시기 바랍니다.
 


1.3) 아이폰 시뮬레이터
Xcode 와 iPhone SDK를 설치하면 아이폰 시뮬레이터를 사용할 수 있습니다. 시뮬레이터는 아이폰이나 아이팟 터치가 없더라도, 맥에서 만든 어플리케이션을 실행할 수 있는 아이폰의 에뮬레이터 입니다. 마우스로 터치 UI를 시연해 볼 수 있으며, 회전도 가능합니다.



2) 아이폰 개발자 프로그램 가입
아이폰 어플리케이션을 개발 후에 배포 및 판매를 위해서는 반드시 아이폰 개발자 프로그램에 가입을 하셔야 됩니다. 스텐다드와 엔터프라이즈 두개의 프로그램이 있으며 각각 $99, $299의 비용이 들어 갑니다. (1년마다 같은 비용으로 자격을 연장하셔야 합니다) 차이점은 개발한 어플리케이션을 App 스토어에 등록을 하여 배포를 하는지 또는 직접 배포를 하는지의 여부입니다.


개발자 프로그램에 가입을 하시면 아이폰/아이팟 터치를 테스트 기기로 등록을 할 수 있습니다. Xcode를 이용해 이 등록된 기기로 어플리케이션을 업로드 하여, 실제로 동작을 테스트 해 볼 수 있습니다.

가입이 완료된 후에는 아이폰 개발자 프로그램 포탈에서 iPhone Developer Program Portal User Guide란 문서를 참조하시면, 추후 등록과정을 쉽게 진행하실 수 있습니다. 아이폰 개발자 프로그램 등록 완료란 포스팅에 등록에 관한 저의 간단한 후기가 있습니다.

* 아이폰 개발자 포럼
개발자 프로그램에 등록하시면 현제 베타로 운영중인 아이폰 개발자 포럼도 이용할 수 있습니다. 아이폰 개발자 포럼은 전세계 아이폰 개발자들의 커뮤니티로 주제별로 다양한 의견을 나누고 질문 또는 답변을 할 수 있습니다. 현재까지는 아이폰 개발과 관련되어 질문을 하고 궁굼한 내용을 검색을 하기에 가장 좋은 곳으로 생각이 됩니다.


아이폰 개발에 필요한 소프트웨어를 간단히 알아 보겠습니다. 다음 포스팅에서는 개발을 위해 필요한 정보, 자료등과 접근하는 방법에 대해서 알아 보겠습니다.


출처 : http://blog.naver.com/PostView.nhn?blogId=minny0109&logNo=150044206873
Posted by 오늘마감

댓글을 달아 주세요

아이폰어플개발정보2010. 6. 21. 18:30
[펌]iPhone 어플리케이션 개발을 위한 준비 - 1. 하드웨어

http://www.cocoadev.co.kr/200

애플의 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 어댑터를 구입하셔야 합니다.


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

      당연한 이야기지만 가장 무난한


출처 : http://blog.naver.com/PostView.nhn?blogId=minny0109&logNo=150044206889
Posted by 오늘마감

댓글을 달아 주세요

XCODE2010. 6. 21. 09:28
[펌] 1. Xcode3 첫 어플리케이션
출처 - http://www.cocoadev.co.kr/183



Xcode3 에서 간단한 코코아 UI 샘플을 만들어 보는 튜토리얼입니다. 아래와 같이 하나의 입력 창과 세개의 버튼을 가진 간단한 어플리케이션 입니다.

각각의 버튼들의 기능은 아래와 같습니다. 라벨의 이동시에는 animator를 이용해 간단한 효과를 주었습니다.

텍스트에 입력된 내용을 상단의 라벨에 출력합니다.

라벨이 원래 있던 좌측의 위치로 이동하도록 합니다.

라벨이 우측 끝으로 이동하도록 합니다.


1. 프로젝트 생성
Xcode를 실행하고 메뉴에서 File/New Project...를 클릭합니다. 좌측에서 Mac OS X/Application을 선택하고 Cocoa Application 템플릿을 선택한 후, Choose... 버튼을 클릭합니다. 

(iPhone SDK 설치되어 있지 않으면 좌측의 메뉴가 조금 다를 수도 있습니다)

프로젝트가 저장될 디렉토리를 선택한 후에 프로젝트명(Control1)을 입력하고 Save 버튼을 클릭합니다.



2. 인터페이스 빌더
1) 인터페이스 빌더 실행
좌측과 같이 Xcode의 Groups & Files/Resources의 MainMenu.xib를 더블클릭하여 인터페이스 빌더를 실행합니다.







2) 라이브러리 윈도우
인터페이스 빌더의 메뉴에서 Tools/Library를 클릭하거나 단축키(Shift+Command+L)를 이용하여 아래와 같은 라이브러리 윈도우를 오픈합니다. 이 윈도우 하단의 아이템중에서 필요한 각종 오브젝트나 컨트롤들을 원하는 위치에 드래그하여 사용할 수 있습니다.



3) 윈도우
라이브러리 윈도에서 아래와 같이 Label, Text Field, Push Button을 드래그 해서 윈도우에 아래와 같이 배치하고 윈도우 크기를 적당하게 조절합니다.


라이브러리 윈도우에서 각 컨트롤의 위치는 아래와 같습니다.

  • Label - Cocoa / Views & Cell / Input & Values
  • Text Field - Cocoa / Views & Cell / Input & Values
  • Puish Button - Cocoa / Views & Cell / Buttons


3. AppController
1) 소스파일 생성
다시 Xcode로 돌아와 Groups & Files에서 Classes를 우클릭을 하거나 단축키(Command+N)를 이용하여 파일생성 창을 오픈합니다.


Mac OS X/Cocoa에서 Objective-C class를 선택하고 Next 버튼을 클릭합니다.

파일명에 AppController.m을 입력하고 Finish 버튼을 클릭합니다.

좌측과 같이 AppController.h와 AppController.m 소스 파일이 Classes 아래에 생성되었습니다.

먼저 AppController.h를 클릭하여 소스를 변경합니다.


2) AppController.h
헤더 파일에서 아래에 푸른색으로 되어 있는 부분을 입력합니다.
#import <Cocoa/Cocoa.h>

@interface AppController : NSObject {
    IBOutlet NSTextField    *textLabel;
    IBOutlet NSTextField    *inputField;

    IBOutlet NSButton    *refreshButton;
    IBOutlet NSButton    *leftButton;
    IBOutlet NSButton    *rightButton;

    NSPoint    originalPoint;
}

- (IBAction)setLabel:(id)sender;
- (IBAction)moveLeft:(id)sender;
- (IBAction)moveRight:(id)sender;

@end

인터페이스 빌더에서 생성한 각각의 컨트롤들을 연결하기 위해 IBOutlet 변수와 버튼을 클릭했을 경우에 처리할 IBAction 메소드를 선언합니다.

3) AppController.m
 소스코드에서 아래에 푸른색으로 되어 있는 부분을 입력합니다.
#import "AppController.h"

@implementation AppController

- (void)awakeFromNib {

    // 버튼 이미지를 지정
    NSImage *buttonImage = [NSImage imageNamed:NSImageNameRefreshTemplate];
    [refreshButton setImage:buttonImage];

    buttonImage = [NSImage imageNamed:NSImageNameGoLeftTemplate];
    [leftButton setImage:buttonImage];

    buttonImage = [NSImage imageNamed:NSImageNameGoRightTemplate];
    [rightButton setImage:buttonImage];

    originalPoint = [textLabel frame].origin;
}

- (IBAction)setLabel:(id)sender {

    // 입력한 문자를 라벨에 지정하고 라벨의 크기를 문자열의 길이만큼 변경
    [textLabel setStringValue:[inputField stringValue]];   
    [textLabel sizeToFit];
}

- (IBAction)moveLeft:(id)sender {

    // 라벨을 초기 위치로 이동
    [[textLabel animator] setFrameOrigin:originalPoint];
}

- (IBAction)moveRight:(id)sender {
    CGFloat xPos;

    // 우측 모서리로 이동하도록 윈도우의 크기에서 라벨의 크기를 뺀 위치로 설정
    xPos = [[[NSApp mainWindow] contentView] bounds].size.width;
    xPos -= [textLabel frame].size.width;

    // 에니메이션과 함께 라벨의 위치 변경
    NSPoint targetPoint = NSMakePoint(xPos, originalPoint.y);
    [[textLabel animator] setFrameOrigin:targetPoint];
}

@end


4. 연결
다시 인터페이스 빌더로 돌아 가서 작업을 마무리 합니다

1) AppController 인스턴스 생성
라이브러리 윈도우에서 좌측과 같은 Object를 MainMenu.xib 윈도우로 드래그해서 가져다 놓습니다.

Object는 라이브러리 윈도우에서 Cocoa / Objects & Controllers / Controllers내에 있습니다.

아래와 같이 Object가 생성된 것을 확인하시고 Object가 선택된 상태에서 인터페이스 빌더의 Tools/Inspector 메뉴를 클릭하거나 단축키 (Shift + Command + I)를 이용하여 Inspector 창을 오픈합니다.

Inspector 창에서 좌측과 같이 6번째에 있는 App Controller Identity를 선택합니다. (단축키: Command + 6)

Class메뉴의 콤보박스를 클릭하고 Xcode에서 이전 단계에서 생성한 AppController를 선택합니다.


2) 연결
MainMenu.xib 창에서 App Controller를 선택한 상태에서 마우스 우클릭을 하면 아래와 같이 연결 창이 오픈됩니다.


연결창의 각 항목 좌측에 있는 원 모양의 영역에 마우스를 가져가면 우측과 같이 '+' 모양으로 변경됩니다. 이 상태에서 마우스로 '+'를 클릭한 후에 드래그 하여 각각의 해당 항목들에 연결합니다.

마우스를 클릭한 상태에서 파란색 선을 연결할 컨트롤로 가져가면 아래와 같이 컨트롤의 이름과 함께 선택되었을 때 마우스 클릭을 해제합니다.


이런 방식으로 Outlet과 Action을 각각의 컨트롤들과 연결합니다.

  • Outlets / inputField -> Text Field 
  • Outlets / textLabel -> Label
  • Outlets / refreshButton -> Button (첫번째)
  • Outlets / leftButton -> Button (두번째)
  • Outlets / rightButton -> Button (세번째)

  • Received Actions / setLabel -> 버튼 (첫번째)
  • Received Actions / moveLeft -> 버튼 (두번째)
  • Received Actions / moveRight -> 버튼 (세번째)

작업이 완료되면 아래와 같이 연결되었는지 확인합니다.

 
3) 빌드 및 테스트
이제 모든 작업이 완료되었습니다. 인터페이스 빌더와 Xcode에서 변경된 내용을 저장하고, Xcode에서 좌측의 툴바를 클릭하거나 단축키(command + R)를 이용하여 빌드하고 테스트 해 봅니다.


Xcode를 처음 해보시는 분들도 따라 하실 수 있게 최대한 자세하게 설명을 할려고 했습니다. 하지만 제 생각대로 처음 하시는 분들도 무리없이 하실 수 있을지는 잘 모르겠습니다.

잘 안되시는 분들은 아래의 프로젝트 파일을 다운로드 받아서 비교해 보시기 바랍니다.



출처 : http://blog.naver.com/PostView.nhn?blogId=seogi1004&logNo=110085700437
Posted by 오늘마감

댓글을 달아 주세요