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) 그래서 환불이 상당수 발생한다면, 개발자는 곤경에 빠질 수도 있다. 
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 미국 달러였다.
 출시일 
 OS 버전 
 SDK 상세 사항
2008년 3월 27일 
 2.0b2 Beta 2 
 iOS 버전 2.0b2를 위한 릴리즈. 아이폰 응용 소프트웨어 개발을 위한 GUI 개발 도구인 인터페이스 빌더를 추가했다.
2008년 4월 8일 
 2.0b3 Beta 3 
 iOS 버전 2.0b3(build 5A240d)을 위한 릴리즈.
2008년 4월 23일 
 2.0b4 Beta 4 
 iOS 버전 2.0b4(build 5A258f)을 위한 릴리즈. 이 SDK 버전은 OpenGL 3D 그래픽을 지원. 부연 설명하자면, 대개 OpenGL 3D 그래픽은 게임에 쓰이는 것이다.  개발한 응용 소프트웨어가 백그라운드로 작동하는 것은 예전부터 애플 측이 안 된다고 해왔던 점이었다. 그런데, 일부 응용 소프트웨어로 하여금 백그라운드로 작동(아이팟(IPod), 전화(phone), 메일(mail) 응용 소프트웨어가 그러는 것처럼)될 수 있게 해 줄 조짐이 있었다.
2008년 5월 6일 
 2.0b5 Beta 5 
 iOS 버전 2.0b5(build 5A274d)을 위한 릴리즈.  (build 5A274d).
2008년 5월 29일 
 2.0b6 Beta 6 
 iOS 버전 2.0b6(build 5A292g)을 위한 릴리즈. 이 업데이트 내 코드는 애플의 .Mac 서비스에 대한 업데이트에 대한 힌트 부분을 가지고 있다. 맥 OS X 10.6 스노 레퍼드(snow leopard)에 대한 레퍼런스가 처음으로 들어가기도 하였다.
2008년 6월 9일 
 2.0b7 Beta 7 
 iOS 버전 2.0b7(build 5A331)을 위한 릴리즈. 애플의 .Mac 서비스의 대체 서비스인 모바일미 서비스가 들어갔다. (unlocked) 이 릴리즈는 WWDC를 위한 것이었다. 해당하는 아이폰 OS는 아이폰 OS WWDC 베타 버전이라 이름 붙기도 하였다.
2008년 6월 26일 
 2.0b8 Beta 8 
 iOS 버전 2.0b8(build 5A345)을 위한 릴리즈.
2008년 7월 24일 
 2.1 Beta 1 
 iOS 버전 2.1(build 5F90)을 위한 릴리즈. 애플 측은2.1 SDK를 가지고 작성된 응용 소프트웨어는 아이폰 2.0 소프트웨어에서 동작하지 않을 것이며 앱 스토어 업로드가 허용되지 않을 것이라고 언급하였다.
2008년 7월 30일 
 2.1 Beta 2 
 iOS 버전 2.1을 위한 릴리즈.
2008년 8월 8일 
 2.1 Beta 3 
 iOS 버전 2.1을 위한 릴리즈.
2008년 9월 25일 
 2.2 Beta 1 
 iOS 버전 2.2(build 5G29)를 위한 릴리즈.
2008년 11월 20일 
 2.2 
 iOS 버전 2.2(build 9M2621)를 위한 릴리즈.
2009년 1월 27일 
 2.2.1 
 iOS 버전 2.2.1(build 9M2621a)를 위한 릴리즈.
2009년 3월 17일 
 3.0 Beta 1 
 아이폰 OS 버전 3.0과 SDK 3.0 베타 버전에 대한 프리뷰(preview) 릴리즈.
2009년 3월 31일 
 3.0 Beta 2 
 iOS 버전 3.0을 위한 릴리즈.
2009년 4월 14일 
 3.0 Beta 3 
 iOS 버전 3.0을 위한 릴리즈.
2009년 4월 28일 
 3.0 Beta 4 
 iOS 버전 3.0을 위한 릴리즈.
2009년 5월 6일 
 3.0 Beta 5 
 iOS 버전 3.0을 위한 릴리즈.
2009년 6월 8일 
 3.0 GM Seed 
 iOS 버전 3.0을 위한 개발자 및 비공개 테스트용 최종 릴리즈.아이폰은 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 캔버스가 지원된다.
분류:IOS
분류:프로그래밍 도구
분류:맥 OS
분류:소프트웨어 개발 키트