[출처] - http://www.cocoadev.co.kr/200




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는 거의 유사하지만 아이폰의 특성상 제거 또는 변경된 부분이 있습니다. 아이폰은 코코아 바인딩, Objective-C 2.0의 가비지 컬렉션, 애플스크립트, NSUndoManage등은 지원하지 않습니다.

개인적으론 시간이 충분하다면 맥에서 코코아 프로그래밍으로 시작한 후에 코코아 터치로 넘어가도 큰 어려움은 없을 것 같습니다.


3. C or Objective-C
대표적인 코코아 프로그래밍 서적인 Cocoa Programming for MAC OS X (번역본:코코아 프로그래밍)의 저자 아론 힐리가스는 그의 저서에서 아래와 같이 이야기 했습니다.

"C와 Java/C++같은 객체지향 언어를 알고 있다면 두시간이면 Objective-C를 마스터할 수 있다"

OOP와 프로그래밍 언어에 대한 개념만 있다면 Objective-C를 익히는 것은 쉽다라는 의미인 것 같습니다.

사실 어느 언어나 기본지식만 있으면 언어 자체를 익히는데는 그다지 어려움이 없습니다. 하지만 해당 플랫폼에 대한 지식과 핵심 라이브러리나 프레임워크를 배우는데 더욱 많은 시간을 소비해야 합니다. 아이폰도 Xcode, 인터페이스빌더의 사용법, OS X에서의 프로그래밍에대한 이해와 코코아 API를 배우는데 Objective-C 언어 자체를 배우는 것보다 더 많은 시간이 필요합니다.

1) C의 선행학습이 필요한가?
개발경험이 있으신 분들은 그동안의 경험을 바탕으로 어떻게 공부해야 할지 나름대로 방법이 있을 것입니다. 하지만 처음 시작하시는 분들은 Objective-C가 C를 기반으로 하고 있기 때문에, 반드시 C를 공부한 후에 Objective-C를 공부해야하는 지에 대해 질문을 하시는 분들이 있습니다.

이 부분은 아마 많은 분들이 차이가 있을 것 같습니다. 제 생각은 "반드시 필요하지는 않다" 입니다. Objective-C는 C에서 확장된 슈퍼셋이라고 하지만 Objective-C를 공부하기 위해 반드시 C를 먼저 공부해야 할 필요는 없을 것 같습니다.

C를 이해한 후에 Objective-C를 시작하는 것이 이론상으로도 맞고, 정상적인 방법일 것입니다. 하지만 대부분의 Objective-C 서적이나 메뉴얼에는 기본적인 문법에 대한 설명이 있고, 전문 C 서적보다는 범위가 작습니다. Objective-C를 사용할 수 있을 만큼 최소한의 문법만 알고 시작하는 것이 더 접근이 쉬울 것 같습니다.

아래는 iPhone 어플케이션의 샘플 소스중에 한부분입니다. 기존에 C/C++ 개발자들도 이런 Objective-C의 문법을 처음 보게되면, 이것이 C와 관련이 있고 C에서 확장되었다는 사실이 잘 이해가 가지 않을 것입니다.
 

처음 시작하시는 분이라면 차라리 이런 혼란을 피하고 코코아 어플리케이션을 바로 제작할 수 있는 Objective-C로 시작하는 것도 한 방법이라고 생각됩니다.

2) 접근방법
사실 가장 좋은 것은 아래와 같이 가장 로우레벨단계 부터 이해하고 올라 가는 것이 기초도 탄탄하고 가장 좋은 방법일 것입니다.

  1. 메모리/CPU등 컴퓨터 하드웨어에 대한 이해
  2. OS에 대한 이해
  3. 컴파일러에 대한 이해
  4. C언어
  5. 시스템 프로그래밍
  6. 자료구조/알고리즘
  7. Objective-C
  8. OOP, 디자인 패턴
  9. Cocoa API

위의 단계대로 차례로 지식과 실력을 쌓아서 접근하면 좋겠지만, 당장 아이폰 어플리케이션을 만들고 싶은데 지루하고 많은 시간을 필요로 합니다. 흥미를 잃지 않고 접근하는 방법은 위의 순서와 반대로 접근하는 것입니다.

Objective-C에 대한 메뉴얼을 대충(?) 한번 읽어 보고 바로 책, 웹사이트, 동영상등의 간단한 튜토리얼등을 따라해 보면서 실제 실행되는 모습을 보면 계속 흥미를 유지할 수 있습니다.

그후에 어느정도 감이 생기면 직접 만들고 싶은 어플리케이션을 목표로 잡습니다. 첫 목표는 과한 욕심은 버리고 간단하고 쉬운 어플리케이션 부터 시작합니다. 아무리 간단해도 따라해 보며 만들었던 것과는 달리 원하는 기능을 직접 구현하는 것은 매우 어렵습니다. 자료도 많이 찾아 보아야되고, 다른 샘플 소스에서 복사해 와야 하는 경우도 있고, 관련 커뮤니티를 통해 도움을 받을 수도 있습니다. 관련자료들은 이전의 iPhone 어플리케이션 개발을 위한 준비 - 3. 관련 자료 포스팅을 참고하시기 바랍니다.

우여곡절끝에 만들어 내면 부족한면이나 필요한 부분이 무엇인지 조금씩 보이게 될 것 입니다. 필요에 의해 공부를 하다보면 아마 위의 순서를 거슬러 올라 접근하게 되는 경우가 많을 것 같습니다. 그러면 차차 복잡하고 어려운 어플리케이션을 만들 수 있을 것입니다.

막상 처음 시작하게 되면 알아야 할 것은 많고 답답한 마음만 드실 것입니다. 하지만 안타깝게도 왕도는 없습니다. 흥미와 열정을 유지하면서 차근차근 해 나가다 보면 어느새 바라는 어플리케이션을 만들수 있는 날이 눈앞에 와있을 것 입니다.

간혹 주위에 개발경험이 전혀 없는 분들로 부터 "무엇부터 시작해야 아이폰 어플리케이션을 만들 수 있냐?"는 질문을 들으면서 이와 관련해서 간단히 포스팅을 해보아야 겠다고 생각했습니다.

정리는 해보았는데 역시 어렵네요. 제가 봐도 이상한 용어들만 난무하고 설명도 중구난방이고, 개발을 처음 하시는 분들이 보면 잘 이해가 안가실 것 같다는 생각이 듭니다.

* 관련링크
iPhone 어플리케이션 개발을 위한 준비 - 1. 하드웨어
iPhone 어플리케이션 개발을 위한 준비 - 2. 소프트웨어
iPhone 어플리케이션 개발을 위한 준비 - 3. 관련 자료
iPhone 어플리케이션 개발을 위한 준비 - 4. 시작하기

출처 : http://blog.naver.com/PostView.nhn?blogId=seogi1004&logNo=110085696098
Posted by 오늘마감
아이폰기본사용2010.07.01 18:07
아이폰 초보를 위한 숨겨진 팁 10선

아이폰에는 숨겨진 쉽고 편리한 기능들이 많다. 조금만 관심을 기울이면 알 수 있지만 의외로 모르는 경우가 많은 아이폰 초보들을 위한 사용 팁 10가지를 소개한다.

1. 화면 캡처
아이폰 상단의 ‘슬립’ 버튼과 전면 하단의 ‘홈’ 버튼을 동시에 누르면 아이폰 화면을 캡처할 수 있다. 캡처한 화면은 ‘사진-카메라롤’에 저장된다. 사용기를 작성하거나, 메일 등을 보낼 때 편리하게 활용할 수 있다.

2. 아이폰에도 홈(Home) 키가
인터넷을 검색거나 문서를 보다 보면 스크롤을 많이 하게 된다. 이때 화면 제일 윗부분으로 돌아가려면 시간이 표시되는 상단 부분을 한번 두드리면 된다. 데스크탑의 ‘Home’키와 같은 기능이다.

3. 이중 클릭을 활용하자
홈 버튼을 이중 클릭하면 초기 설정에서는 전화번호 즐겨찾기로 음악 재생중에는 iPod 기능으로 이동한다. 자신이 많이 쓰는 기능으로 이중 클릭 설정을 바꿀 수 있다. ‘설정­-일반­-홈’ 에서 ‘홈 단추 이중 클릭 시 이동 위치’를 검색, 카메라, iPod로 변경해보자.

4. 전화 수신음 차단
전화가 왔을 때 왼쪽 옆면의 볼륨 감소 버튼이나 슬립 버튼을 누르면 수신은 되지만 아이폰은 무음·무진동 상태가 된다. 슬립 버튼을 두번 누르면 수신이 거부되고 전화가 끊긴다. 회의를 하거나 받기 곤란한 전화가 왔을 때 이용해보자.

5. 계산기 틀린 숫자 지우기
계산기 숫자를 누르다가 틀리면 다 지우고 다시 작성하는가? 그럴 필요가 없다. 숫자가 쓰여있는 화면을 한 손가락으로 왼쪽이나 오른쪽으로 살짝 드래그하면 숫자가 하나씩 지워진다. 또 다른 팁으로 아이폰을 세로로 기울이면 전문가용 계산기가 된다.

6. 알람 스누즈 기능
아이폰은 알람 시계로서도 훌륭하다. 설정해 놓은 알람이 울릴 때 팝업 창의 ‘다시 알람’을 누르면 10분 후 스누즈 기능이 작동한다. 또 다른 팁! 아이폰은 진동으로 해 놓아도 알람 벨이 울린다.

7. 사이트 바로가기 만들기
인터넷 사이트 중 자신이 많이 방문하는 곳이 있다면 홈 화면에 바로가기 아이콘을 만들 수 있다. 사파리 하단의 ‘+’ 버튼을 누르면 ‘홈 화면에 추가’ 버튼이 보인다. 이 버튼을 누르고 사파리를 종료하면 바로 가가 아이콘이 생성된 것을 볼 수 있다.

8. 흔들어서 실행 취소
글자를 쓰다가 지우거나, 붙이기 등을 취소하고 싶을 때 아이폰을 살짝 흔들어 보자. 가장 최근의 동작이 취소된다.

9. 흔들어서 음악 랜덤 재생
음악 재생 중 아이폰을 흔들면 다른 노래가 임의 재생된다. 불편하다면 ‘설정―iPod’ 에서 ‘흔들어서 임의 재생 기능’을 꺼두면 된다.

10. 음성 인식
홈 버튼을 길게 누르고 있으면 음성으로 조절하기 기능이 작동한다. 전화를 걸거나 음악 재생 기능을 이용할 수 있다. 정확한 명령어를 숙지해 두면 운전 중이나 거리 이동 중에 편리하게 사용할 수 있다.

아이폰의 정말 기본적인 기능만 정리했군요.

아이폰 꽤 사용한 분들은 다 알만한 내용이지만 아이폰 처음 사용하는 분들에게는 도움이 될만한 내용일듯 합니다.

참고하세요.



출처 : http://blog.naver.com/PostView.nhn?blogId=jkw1120&logNo=60109319801
Posted by 오늘마감
아이폰개발을 위한 서적 리스트

Objective-C 오브젝티브 C (맥과 아이폰 애플리케이션 프로그래밍) / 한빛미디어 / 32,000 원
http://book.naver.com/bookdb/book_detail.nhn?bid=6047289

오브젝티브-C 2.0 Objective-C (아이폰과 맥 OS X 개발을 위한 Objective-C) / 비제이퍼블릭 / 25,000 원
http://book.naver.com/bookdb/book_detail.nhn?bid=6059495

프로그래밍 오브젝티브 C 2.0 (Programming in Objective C 2.0 2/E) / 인사이트 / 32,000 원
http://book.naver.com/bookdb/book_detail.nhn?bid=6061677

아이폰 프로그래밍 가이드 (Objective-C부터 네트워크까지) / 프리렉 / 28,000 원
http://book.naver.com/bookdb/book_detail.nhn?bid=6043481

예제로 시작하는 아이폰 개발 (The iPhone Developer's Cookbook: Building Applications with the iPhone SDK) / 에이콘출판 / 30,000 원
http://book.naver.com/bookdb/book_detail.nhn?bid=5438335

시작하세요 아이폰 프로그래밍: IPHONE SDK를 이용한 아이폰 개발 (위키북스 임베디드 & 모바일 시리즈 1) / 위키북스 / 35,000 원
http://book.naver.com/bookdb/book_detail.nhn?bid=6036908

시작하세요 아이폰 3 프로그래밍(위키북스 임베디드 모바일 시리즈 3) (iPhone SDK를 이용한 아이폰 개발) / 위키북스 / 36,000 원
http://book.naver.com/bookdb/book_detail.nhn?bid=6105179

터칭! 아이폰 SDK 3.0 / 인사이트 / 32,000 원
http://book.naver.com/bookdb/book_detail.nhn?bid=6054241

아이폰 & 아이팟 프로그래밍 iPhone & iPod Programming / 한빛미디어 / 25,000 원
http://book.naver.com/bookdb/book_detail.nhn?bid=6079773

코코아 프로그래밍(개정판) (COCOA PROGRAMMING FOR MAC OS X 3/E) / 인사이트 / 25,000 원
http://book.naver.com/bookdb/book_detail.nhn?bid=5266815

코어 애니메이션 (맥 OS X과 아이폰 개발을 위한,Core Animation for Mac OS X and the iPhone: Creating Compelling Dynamic User Interfaces) / 에이콘출판 / 25,000 원
http://book.naver.com/bookdb/book_detail.nhn?bid=6037769



출처 : http://blog.naver.com/PostView.nhn?blogId=santosa3&logNo=40103322807
Posted by 오늘마감
iPhone View Switching 을 위한 모달뷰(ModalView) 사용법
A 라는 뷰콘트롤러에서 B 라는 뷰콘트롤러의 뷰를 모달로 띄우고 싶을 때

방법1.
A 에서의 코드
- (IBAction)showModalview {
    ModalVWController *modalView = [[ModalVWController alloc] initWithNibName:nil bundle:nil];
    [self presentModalViewController:modalView animated:YES];

우후.. 쉽다.
닫을때는? 그건 B 에서 처리해줘야 한다. 이렇게
-(IBAction)closeView {
    [[self parentViewController] dismissModalViewControllerAnimated:YES];

음.. view 의 메서드를 이용하는 두번째 방법을 소개하면
방법2.
A에서의 코드
[[self view] addSubview:modalView.view];
그리고 닫을 때의 코드는
[[self view] removeFromSuperview];
이다.



출처 : http://blog.naver.com/PostView.nhn?blogId=suny4rang&logNo=50083064864
Posted by 오늘마감
초초초보자를 위한 cocos2d 관련사이트
저처럼 아무것도 모르시는 초초초초초초초초~ 초보자를 위해서 조금이나마 도움이 되시라고 적어봅니다.

http://monoclestudios.com/cocos2d_whitepaper.html

위의 사이트는 cocos2d를 한번도 사용해 보지 않으셨다면 한번 따라해보시길 권해드립니다.

영문으로 되어있지만 캡쳐화면과 같이 있어서 어렵지않을듯 합니다.
( 블로그에 번역해 놓으신분이 계시내여. 아래 주소 참조
   http://blog.naver.com/jedikim72/10042076138
)

http://lukehatcher.com/2009/04/coloring-sprites-with-cocos2d-iphone/

맨처음 적었던 사이트의 파트너쉽 사이트로 링크가 걸려있는곳 입니다.

Coloring Sprite 에 대해서 적어놓은거던데 맨처음 사이트꺼 SimpleGame 따라해보고 추가로 해보기 괜찮은듯 해서 적어봅니다.

http://permadi.com/blog/?p=275

위의 사이트는 cocos2d 를 이용해서 볼모양의 그림이 점프하는 애니메이션을 보여줍니다.

소스코드를 따라해보시거나 사이트에 있는 샘플파일을 받아서 실행해 보시기 바랍니다.

http://kwigbo.com/wp/

ABC123 등 coscos2d 로 만든 간단한게임 소스를 공개해 놓았습니다.
( 단 소스가 압축이 안되서 올려져 있어서 불편할지도 모르겠습니다만 도움이 되실분들도 있을것 같아서... )

마지막으로

http://www.cocos2d.org/doc/programming_guide/

cocos2d 사이트에서 제공하는 프로그래밍 가이드 사이트 입니다.

은근히 모르시는분들이 있는것 같아서 적어봤습니다.

공부하다가 도움이될만한 사이트가 있으면 이문서에 추가적으로 업데이트 하도록 하겠습니다.
 


출처 : http://blog.naver.com/PostView.nhn?blogId=gonagi&logNo=150047655458
Posted by 오늘마감
[강좌] iphone 개발자들을 위한 스터디 로드맵
원문: http://cafe.naver.com/mcbugi/8379
이 강좌는 지극히 개인적인 의견을 드리는 것입니다. 단지 참고로만 삼으실 정도의 가치만 있으실듯...

iphone dev center)
 - 위 문서를 한글로 번역한 문서 우리 카페 자료실에 올라와 있습니다. 

2번 xcode랑 친해지는 것은 따로 문서를 보고 하는 것 보다, nitrex88


출처 : http://blog.naver.com/PostView.nhn?blogId=rioms81&logNo=60104197788
Posted by 오늘마감
개발자 아이폰에 app 다운로드를 위한 과정

출처 : http://touch.connect.kr/?mid=user_lecture&document_srl=99447&listStyle=&cpage=

전제조건은 개발자 프로그램에 등록된 상태여야 합니다.

*Developer Program Portal에 접근

http://developer.apple.com/iphone에 로그인
우측 상단 부분에서 iPhone Developer Program Portal 링크 클릭

*개발팀 구성
좌측 메뉴에서 Team 클릭
개인이면 기본적으로 본인이 Team Admin으로 등록되어 있슴
등록된 이메일 주소와 이름을 미리 확인해둔다(CSR발급시 필요)

*CSR 발급
Mac에서 응용프로그램 - 유틸리티 - 키체인접근(KeyChain Access) 실행
키체인 - 환경설정 - 인증서탭에서 OCSP, CRL을 모두 Off
키체인 - 인증지원 - 인증기관에서 인증서 요청(Request ...) 클릭
이메일은 반드시 위에서 확인한 이메일 기입, 이름 기입, CA 이메일은 기입안함
옵션에서 디스크에 저장됨 선택 & 자신이 키페어 정보 지정 선택 후 계속 클릭
CSR 저장위치 지정 후 나오는 화면에서 2048비트, RSA 확인 후 계속 클릭하면 CSR 발급 완료

*개발 인증서 요청 & 인증획득
좌측 메뉴에서 Certificates 클릭
Development 탭 선택 후 Request Certificate 버튼 클릭
바뀐 화면 제일 하단에서 파일선택 클릭해서 다운로드해둔 CSR을 선택한 후 submit 클릭
Development 탭에서 Pending Approval상태로 나온 것을 확인 후 Approve 클릭
Development 탭에서 Download 클릭해서 발급된 Certificate(developer_identity.cer)을 Mac에 저장
다운로드받은 developer_identity.cer을 더블클릭해서 키체인 프로그램 실행
실행되면서 나오는 팝업창에서 추가 버튼 클릭(유형은 로그인 그대로임)

*개발자폰 등록
아이폰을 Mac에 연결
XCode - Window - Organizer 클릭해서 Identifier(40자리 코드)를 copy해둠
좌측 메뉴에서 Device클릭 후 Add Device 클릭 후 40자리 Identifier 코드와 폰 이름 기재해서 submit

*App ID 등록
좌측 메뉴에서 App ID 클릭 후 Manage 탭 이동
[참고] App ID
형식 [Bundle Seed ID].[Bundle Identifier] ex)A1B2C3D4E5.com.yourcompany.app
우측 상단의 New App ID 클릭해서 내용입력 후 submit 클릭

*개발용 Provisioning Profile 등록 & 다운로드
좌측 메뉴에서 Provisioning 클릭 후 Development 탭 이동
우측 상단에서 New Profile 클릭 : 프로파일 명칭, Certificate선택, App ID선택, Device선택 후 Submit
Development 탭에서 등록한 Provisioning profile을 Download 클릭해서 Mac에 저장
Mac에 프로파일 설치(두 방법 중 택일해서 실행)
-다운받은 프로파일을 Dock에 있는 Xcode 아이콘위로 Drag & Drop
-다운받은 프로파일을 ~라이브러리\MobileDevice\Provisioning Profiles밑에 copy
iPhone에 프로파일 설치
- Xcode - Organizer - Provisioning Profile 선택 후 다운로드 받은 프로파일 파일을 목록영역에 드래그 & 드롭해서 추가


*개발용으로 빌드
Xcode에서 좌측 상단의 빌드 대상을 Device & Debug로 선택
Groups & Files창의 하단에서 Targets에서 항목 선택 후 오른쪽 마우스 클릭해서 Get Info 클릭
Build탭으로 이동
Code Signing 부분에서 Code Signing Identity 하부의 Any iPhone OS Device 우측의 Value 부분 클릭해서 추가된 프로비저닝 프로파일 정보에 해당하는 개발자 이름 선택(대부분 자동선택된 상태일 것임)

Build & Run 하면 Code Sign 허용하겠냐고 묻는 창이 나오는데 항상허용 혹은 허용 클릭하면 됨

연결된 아이폰으로 App이 설치된 후 실행됨

출처 : http://cafe.naver.com/mcbugi/33551



출처 : http://blog.naver.com/PostView.nhn?blogId=cbdman&logNo=130084681110
Posted by 오늘마감
[펌]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 오늘마감
[펌]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 오늘마감
[팜] 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 오늘마감