iPhone OS 를 위한 응용프로그램을 개발하기 위해서는, Xcode 툴을 수행하는 Mac OS X 컴퓨터가 필요합니다. Xcode 는 애플의 개발 도구 Suite 로써 프로젝트 관리, 코드 수정, 실행환경의 빌딩, 소스 수준의 디버깅, 소스코드 저장소 관리, 성능 튜닝, 그리고 다수의 기능을 제공합니다. 이러한 Suite의 중앙에는 Xcode 응용프로그램이 존재하는데, 기본 소스 코드 개발 환경을 지원하게 됩니다, Xcode 는 개발자가 사용하는 도구로서만이 아니라 iPhone 응용프로그램을 작성하는데 사용할 수 있는 응용프로그램에 대한 소개를 제공하는 다음 섹션까지 포함합니다.
개발자의 개발 경험의 중심에는 Xcode 응용프로그램이 있습니다. Xcode 는 당신의 iPhone 프로젝트와 소스 파일들을 생성과 관리, 당신의 코드를 실행환경으로 빌드, 그리고 iPhone 시뮬레이터 혹은 디바이스 상에서 코드의 수행과 디버그하는데 필요로하는 도구들 전부를 제공하는 통합 개발 환경 (IDE)입니다.
그림 1. Xcode 프로젝트 윈도
새로운 iPhone 응용프로그램을 만들기 위해서는 Xcode 상에서 새로운 프로젝트를 생성함으로써 시작합니다. 하나의 프로젝트는 당신의 응용프로그램에 관련된 모든 정보 (소스파일들, 빌드 설정, 그리고 모든 부분들을 함께 담는데 필요로하는 룰)를 관리합니다. 모든 Xcode 프로젝트의 심장은 그림 1에서 보이는 프로젝트 윈도입니다. 이 윈도는 작성하는 응용프로그램의 모든 중요한 요소들에 대한 빠른 접근을 제공합니다. 그룹들과 파일들 목록은 소스파일들과 이러한 소스파일들로부터 생성되는 빌드 타겟을 포함하는, 작성하는 프로젝트의 파일들을 관리하는 곳입니다. 툴바는 공통적으로 사용되는 툴과 커맨드에 대한 접근을 제공하는 반면 자세한 부분은 프로젝트상에서 동작하기 위한 설정가능한 스페이스로서 제공됩니다. 프로젝트 윈도의 다른 부분은 프로젝트에 대한 컨텍스트 인포메이션으로 제공됩니다.
Xcode는 진보한 텍스트 에디터를 포함하는데 이는 코드 컴플리션, 신텍스 컬러링, 코드 폴딩 (코드블럭을 임시적으로
숨기는), 에러에 대한 인라인 어노테이션 그리고 노트들 과 같은 특징들을 지원합니다. Xcode 내의 빌드 시스템은 적절한 기본
설정과 개발자의 입맛에 맞추도록 환경을 설정할 수 있는 기능 모두를 제공합니다. 그리고 만약 문서가 필요하다면, Research
Assistant는 Xcode 문서 윈도를 통해서 정보를 브라우즈하고 찾을 수 있도록 제공합니다.
개발자가 Xcode 를 이용하여 응용프로그램을 빌드할 때, 개발자는 iPhone을 이용할지 하니면 디바이스를 이용할지를
선택하게 됩니다. 시뮬레이터는 응용프로그램을 테스트하여 원하는 바대로 개발한 응용프로그램이 동작하는지를 테스트하는 로컬환경을
제공합니다. 갭라한 응용프로그램의 기본적인 비헤비어에 만족스러웠다면, 그다음 Xcode를 이용하여 빌드하고 컴퓨터에 연결된
iPhone 혹은 iPod touch 상에서 이를 수행시켜 보십시요. 디바이스 상에서 운영하는 것은 궁극적인 테스트 환경을
제공하고, Xcode 는 디바이스 상에서 동작하는 코드에 내장된 디버서를 접합시키도록 허용합니다.
그림 2. Xcode 로부터의 프로젝트의 수행
어떻게 iPhone OS 상에서 개발한 프로젝트를 빌드하고 동작하는지에 대한 자세한 것은 iPhone OS Programming Guide 의 "Development Environment" 를 참조하시기 바랍니다.
Interface Builder
인터페이스 빌더는 개발하는 응용프로그램의 사용자 인터페이스를 시각적으로 조합하는데 사용할 수 있는 툴입니다. 인터페이스
빌드를 이용해서, 이미 설정되어있는 컴포넌트를 응용프로그램의 윈도로 드래그 & 드롭함으로써 응용프로그램의 윈도를 조합할
수 있습니다. 컴포넌트들은 스위치, 텍스트 필드, 그리고 버튼들과 같은 표준화된 시스템 컨트롤들을 포함하고, 역시 개발하는
응용프로그램이 제공하는 뷰를 나타내는 커스텀 뷰를 포함합니다. 개발자는 컴포넌트를 윈도의 화면에 위치시킨 후, 컴포넌트를
드래그함으로써 위치시킬 수 있고, 인스펙터를 이용해서 속성을 설정할수 있으며, 코드와 이러한 오브젝트들간의 관계를 설정할 수
있습니다. 개발자의 인터페이스가 원하는 대로 보이게 되면, 사용자 자원 파일 포맷인 nib 파일로 컨텐츠를 저장하게 됩니다.
인터페이스 빌더를 통해서 생성한 nib 파일들은 UI Kit 에서 런타임에 작성한 응용프로그램의서 같은 오프벡트들을
재생성하는데 필요한 정보 모두를 포함하고 있습니다. nib 파일을 로딩하는 것은 파일에 저장되어 있는 모든 오브젝트들의 런타임
버전을 생성하고, 인터페이스 빌드에서 만들어진 것과 정확히 동일하게 스 설정을 하게 됩니다. 이는 역시 새로이 만들어진
오브젝트들과 개발한 응용프로그램에서 기본에 존재해왔던 어떠한 오브젝트들 같의 연결을 설정하기 위해서 정의한 연결 정보를 이용하게
됩니다. 이러한 연결들은 개발한 코드에게 nib 파일 오브젝트들로의 포인터를 제공하고, 역시 개발한 코드에 사용자 액션들과
통신하는데 필요로하는 오브젝트 자체에 대한 정보를 제공하게 됩니다.
전반적으로, 인터페이스 빌더를 사용하는 것은 응용프로그램의 사용자 인터페이스를 작성할때 발생하는 많은 시간을 절약하게
해줍니다. 인터페이스 빌더는 인터페이스를 구성하는 오브젝트들의 생성, 설정, 포지션에 필요로하는 사용자 코드를 제거합니다. 이는
비쥬얼 에디터이게 때문에, 정확하게 사용자의 인터페이스가 런타임에 보이는 것과 동일하게 보여지게 됩니다.
Note: 인터페이스 빌더는 iPhone SDK의 초기 베타버젼에는 포함되지 않습니다. 이는 해당 프로덕트의 최종 릴리즈에 포함될 예정입니다.
Instruments
당신이 개발한 소프트웨어를 위한 최상의 사용자 경험을 가져다 주도록 확신토록 하기 위해, Instruments 환경은
개발자가 시뮬레이터 혹은 디바이스 상에서 개발한 iPhone 응용프로그램이 돌아갈 때의 성능을 분석하도록 해줍니다.
Instruments는 개발자의 동작하는 응용프로그램으로 부터 데이터를 얻고 Timeline이라 불리우는 그래픽 디스플레이에
데이터를 표현해 줍니다. 개발자는 개발한 응용프로그램의 메모리 사용, 디스크 동작, 네트워크 활동, 그리고 그래픽 성능에 관한
데이터를 수집할 수 있습니다. Timeline 뷰는 모든 다른 종류의 정보들을 차례대로 표시하는데, 이는 개발한 응용프로그램의
단지 하나에 제한적인 부분에 대한 behavior 만이 아닌, 전반적인 behavior들를 관련시킬 수 있도록 허용합니다. 더욱
자세한 정보를 원하면, Instruments 가 취합한 보다 자세한 샘플들을 볼 수 있습니다.
그림 3. Instuments 를 이용하여 개발하는 응용프로그램을 튜닝
Timeline 뷰를 제공하는 것에 추가적으로 Instruments 는 시간에 따라 개발한 응용프로그램의 behavior
를 분석하는 것을 도와주는 도구를 제공합니다. 예를 들어, Instruments 윈도는 복수 수행으로부터 데이터를 저장하도록
제공하고, 그럼으로써 개발하고 있는 응용프로그램의 behavior가 실제로 향상되고 있는지 혹은 아직 일을 더 해야할지를 볼 수
있습니다. 개발자는 Instuments 문서에 이러한 수행으로부터 얻은 데이터를 저장할 수 있고 언제든지 그것을 열람할 수 있게
됩니다.
어떻게 iPhone 응용프로그램을 가지고 Instruments 를 사용하는지에 대한 자세한 사항은 iPhone OS Programming Guide 의 Development Environment 를 참조하시기 바랍니다. 어떻게 Instruments 를 사용하는지에 대한 일반적인 정보는 Instruments User Guide 에 있습니다.