IOS SDK

iOS SDK는 iOS 개발을 위한 애플의 소프트웨어 개발 키트이다.
SDK는 2008년 3월 6일 배포되었고, 개발자들은 이 SDK를 활용해 아이폰이나 아이팟 터치 응용 소프트웨어를 개발할 수 있게 되었고, OS X의 "아이폰 시뮬레이터" 내에서 테스트할 수 있게 되었다. 하지만 기기에 실제로 응용 소프트웨어를 올리기 위해서는 $99.00 USD의 애플 개발자 계정이 필요하다. XCode 3.1의 출시 이후, XCode는 iOS SDK를 위한 개발 환경이 되었다.
개발자는 개발한 응용 소프트웨어를 앱 스토어를 통해 유통시킬 수 있다. 이 때, 응용 소프트웨어의 가격은 최소 가격만 넘기면 그 초과 범위 내에서 자유롭게 정할 수 있다. 개발자는 응용 소프트웨어 판매 수익의 70%를 가져간다. 다른 방식으로는, 개발자는 개발한 응용 소프트웨어를 무료로 배포할 수 있다. 이 때, 개발자는 응용 소프트웨어의 배포나 배급에 대한 비용은 내지 않으며, 개발자는 멤버십(membership) 비용만을 지불하면 된다.
iOS SDK는 출시 이후로 계속, 애플과의 개발자 협약(Developer Agreement) 중 단서 조항(small print)에 대한 논란이 있었다. 특히 단서 조항의 환불 정책에 관한 논란이었다. 협약에 따르면, 개발자는 반드시 수익의 70%는 개발자가 수익의 30%는 애플이 가져가는 것에 동의해야만 한다. 한데, 구매자가 환불을 한다면, 가격의 70%는 개발자로부터, 가격의 30%는 애플로부터 구매자에게 지불된다. 그리고, 애플은 동시에 손해에 대한 30%의 변상금을 개발자에게서 받아간다. (reimburse for the loss) 그래서 환불이 상당수 발생한다면, 개발자는 곤경에 빠질 수도 있다. 

**SDK의 역사**
2007년 10월 17일 애플은 소프트웨어 개발 키트 (SDK) 발표 계획을 공개했다. 스티브 잡스는 "핫 뉴스" 블로그에서 공개 서한을 통해 2008년 2월 SDK를 배포할 것이라고 밝혔다. 그리고 아이폰 SDK는 2008년 3월 6일, 애플 타운 홀 미팅(Apple Town Hall Meeting) 행사에서 공식적으로 발표되었다. SDK의 첫 베타 릴리즈는 iOS 버전 1.2b1 (build 5A147p)를 위한 것이었다. 앱 스토어를 이용하기 위해서는 사용자들은 2008년 7월 11일부터 가능해졌던 펌웨어 업데이트를 받아야 했다. 이 업데이트는 아이폰 사용자에게는 무료였다. 하지만 아이팟 터치 사용자에게는 9.99 미국 달러였다.

**SDK 내용**
아이폰은 OS X에 들어가는 XNU 커널을 발전시켜 변형한 커널을 마찬가지로 사용한다. 따라서, 아이폰 응용 소프트웨어 개발을 위한 툴 체인은 마찬가지로 OS X 개발 도구이자 GNU 도구들(GCC, apple-darwin9-gcc-4.0.1, apple-darwin9-gcc-4.2.1 등)을 포함하는 도구인 Xcode에 기반하고 있다.
SDK는 다음과 같이 나뉠 수 있다.- 코코아 터치
** 멀티 터치 이벤트와 컨트롤
** 가속도계 지원
** 뷰 하이어라키(View hierarchy)
** 국제화와 지역화
** 사진기 (카메라) 지원- 미디어
** OpenAL
** 오디오 믹싱 및 녹음
** 비디오 재생
** 이미지 파일 포맷들
** 쿼츠 (Quartz)
** 코어 애니메이션
** OpenGL ES- 코어 서비시즈
** 컴퓨터 네트워킹
** 임베디드 SQLite 데이터베이스
** 지오로케이션 소프트웨어
** 스레드- OS X Kernel (XNU)
** 전송 제어 프로토콜
** 인터넷 소켓
** 전원 관리
** 파일 시스템
** 컴퓨터 보안
SDK 안에는 Xcode 툴체인과 함께, 아이폰 시뮬레이터(iPhone Simulator)가 들어 있다. 아이폰 시뮬레이터는 아이폰의 룩 앤드 필을 개발자의 데스크톱에서 에뮬레이트해준다. 예전 이름은 Aspen Simulator였다. SDK 베타 2 릴리즈가 발표되면서 이름이 바뀌었다. 그러나, 아이폰 시뮬레이터는 엄밀히 말해 에뮬레이터는 아니며 x86 타겟용으로 생성된 코드(code generated for an x86 target)를 실행한다. SDK를 사용하기 위해서는 인텔 맥이 필요하다. 또한 맥 OS X v10.5가 필요하다. 마이크로소프트 윈도우나 OS X의 이전 버전에서는 SDK가 작동하지 않는다.

**라이선스**
SDK 자체는 누구나 자유롭게 다운로드 받을 수 있다. 하지만 개발된 응용 소프트웨어를 배포하기 위해서는, 개발자는 아이폰 디벨로퍼 프로그램(iPhone Developer Program)에 등록하여야만 한다. 개발자는 등록비를 지불해야 하며, 또한 개발자는 애플의 허가를 받아야 한다. 등록비는 99 미국 달러이다. (나라마다 다르다.) 애플의 앱 스토어에 응용 소프트웨어를 업로드할 때 사용될 서명된 키들(signed keys)이 개발자에게 주어진다. 응용 소프트웨어는 세 가지 방법으로 배포될 수 있는데, 앱 스토어에서 배포되거나, 특정 기업의 직원 전용으로 기업 내에서만 배포되거나, "애드 혹"으로 100 대의 아이폰 한정으로 배포될 수 있다.
개발자는 50장의 "무료 프로모션" 코드를 발행할 수 있다. 개발자는 이 코드들을 리뷰어들에게 배포할 수 있으며, 리뷰어로 하여금 무료로 응용 소프트웨어를 받아 검토할 수 있게 할 수 있다.
아이폰 소프트웨어의 배포 모델이 가진 한계 때문에, GPL 버전 3(GPLv3)로 사용 허가된(라이선스된) 코드가 들어간 소프트웨어는 아이폰 소프트웨어로서 배포될 수 없다. 개발자는 GPLv3으로 사용 허가된(라이선스된) 코드가 들어간 응용 소프트웨어를 배포하려면 자신의 서명된 키들(signed keys)(애플에게 소유권이 있다.)를 또한 같이 배포해야 한다.

**코어 로케이션**
코어 로케이션(Core Location)은 OS X 내의 소프트웨어 프레임워크이다. 보통 아이폰 OS 2.0 상의 소프트웨어들에 의해 장치의 위치(location)을 알아내기 위해(to detect) 사용된다.
코어 로케이션은 2008년 3월 6일 아이폰 소프트웨어 로드맵 이벤트(iPhone Software Roadmap Event) 행사 때 발표되었다. 이후 아이폰 SDK에 포함되었다.

**자바**
애플 측은 자바 (프로그래밍 언어) 기반 응용 소프트웨어를 아이폰에서 작동시키는 것에 대해서 발표도 하지 않았고 아무런 계획도 가지고 있지 않다. 썬 마이크로시스템즈는 아이폰 OS용 자바 가상 머신 (JVM) 을 릴리즈할 계획이라고 발표하였다. 이것은 자바의 자바 플랫폼, 마이크로 에디션 버전에 기반한 것이 될 예정이다. 이것이 릴리즈되면 자바 ME 응용 소프트웨어가 아이폰이나 아이팟 터치에서 구동될 것으로 예상되었다.

**어도비 플래시**
iOS는 어도비 플래시를 지원하지 않는다. 어도비는 어도비 플래시 라이트(Flash Lite) 소프트웨어를 서드 파티 응용 소프트웨어 형태로 iOS용으로 만들어 배포할 예정이라고 발표하였다. 한데, 플래시 라이트는 표준 플래시보다는 기능이 떨어진다. 비공식적으로는 탈옥한 iOS에서 플래시 비디오가 재생하는 응용 소프트웨어가 개발되기도 하였다.

**SVG**
아이폰 OS(펌웨어) 2.1부터 모바일 사파리(Mobile Safari)가 SVG를 지원하기 시작하였다. 스크립팅 지원 기능도 들어 있으며, SVG 1.1 스펙의 거의 모든 정적인 부분(static parts)들을 지원한다.  SMIL 애니메이션 지원 기능은 들어가 있지 않다. 웹킷 SMIL 구현이 어느 정도 완숙해지면 모바일 사파리에 도입될 예정이다. SVG 외에도 HTML 캔버스가 지원된다.

**같이 보기**
 안드로이드 소프트웨어 개발- Qt (소프트웨어)

**각주**
분류:IOS
분류:프로그래밍 도구
분류:맥 OS
분류:소프트웨어 개발 키트