잡스횽이 iPad(이하 아이패드. 맥은 한/영 전환이 귀찮다.)를 들고 나왔을때,
일반 유저와 신문기자들은 아이패드 하드웨어 이야기로 떠들겠지만 개발자라면 당연 SDK에 가장 먼저 관심이 갔을 것이다.
기존 아이폰과 API가 같아서 레알 다행이다.

기존 아이폰과 API가 같아서 레알 다행이다.

더욱이 애플에서 아이패드 개발을 위한 iPhone OS 3.2 beta까지 선보였으니,
다운로드받아 주는 것은 당연하다 할수 있겠다.
(참고로 현재  iPhone OS 3.2 beta 다운로드는 유료 라이센스를 구입한 개발자만 가능하다.)

1) 달라진 SDK
먼저 애플의 공식 성명부터 보자.
이 멘트는 http://developer.apple.com/iphone/prerelease/library/releasenotes/General/RN-iPhoneSDK-3_2/index.html 에서 가져왔다.

New in iPhone SDK 3.2
  • Xcode simplifies the process of sharing code between your iPhone and iPad applications by helping you update your existing iPhone projects to include the necessary files to support the new platform. The Transition command (in the Project menu) creates a new target for the iPad platform and modifies a copy of your projectʼs nib files to support the larger screen size.

  • Xcode simplifies the validation and submission process of your applications by allowing you to debug signed applications.

  • You can now easily transfer your iPhone developer identity information to a new computer. The Organizer window includes an option to export your profile and certificate information. To begin developing on a new computer, all you have to do is import the resulting data file into Xcode on that computer.

  • Interface Builder supports the new view controllers and window sizes available for the iPad platform.


으으음... 일단 아이폰 프로젝트와 아이패드 프로젝트 사이에 코드를 쉽게 공유할 수 있다고 한다. 당연히 그래야겠긔... .
세번째 항목은 참 반갑다. 오르가즈미 Organizer에서 프로필과 인증서를 import 해줄수 있게 되었다.
집컴과 회사컴 사이에서 개발하는 사람이라면 특히 반가울 기능이며 Rhea君 역시 마찬가지다.
마지막으로 IB에서 아이패드를 위한 새로운 기능들이 추가되었단다.

크게 호들갑을 떨진 않지만 마치 원래 있었던 하드웨어 마냥 무심한듯 쉬크하게 아이패드 이야기를 꺼내준다.

또한 http://developer.apple.com/iphone/prerelease/library/releasenotes/General/iPhone32APIDiffs/index.html 를 참조하면, 대부분의 큰 변화는 없으나 CoreText에 상당한 추가가 되었음을 알수 있다. 특히  CTFont에 추가 사항이 많은데 해상도의 증가와 함께 폰트 역시 대박으로 늘어났기 때문일 것이다.
달라진 해상도의 영향으로 글자를 출력하는 코어가 상당히 추가되었다,

달라진 해상도의 영향으로 글자를 출력하는 코어가 상당히 추가되었다,


또한 MediaPlayer 라이브러리 역시 상당 부분 추가가 되었다.
이는 앞으로 아이패드가 본격 동영상 플레이어로 무장하겠다는 의미로 해석된다.

가장 관심가는 UIKit(바로 제스츄어가 여기 해당한다.)을 보면 UIBezierPath.h란 넘이 통채로 추가되었는데,
이제 스트로크 중심이 아닌 곡선을 이용한 다양한 입력이 가능할 것 같다.
물론 아이패드는 더 넓어진 스크린 덕분에 보다 다채로운 제스츄어를 기대할 수 있을 것이다.
(여기서 생각해볼 점이 있는데, 아이패드 시장까지 노린다면 Shake나 회전은 가급적 쓰지 않는게 좋을 것 같다.)

그외에도 눈에 띄는 클래스는 UIPinchGestureRecognizer.h , UIPopoverController.h, UILongPressGestureRecognizer.h 등이다. 곡선 이외에 다양한 입력방식들이 가능해졌음을 알수 있다. 특히 길게 누르기는 기존 개발자라면 가려웠던 부분이 아닐까 한다.

결론적으로 문서상 알수 있는 변화는 일단 텍스트와 제스츄어, 다시말해 가장 기본적인 출력과 입력이 추가되었다는 것이다.
물론 이들은 아이폰과 아이패드 양쪽에서 사용 가능할 것이지만 각 기기에 보다 맞는 UI가 있을 것이고 양쪽을 만족시키기 위해서는 고민이 필요할 것이다.
참고로 무분별한 Rotate는 Rhea君이 참으로 불편해하고, 싫어하는 UI이다. 제발 Rotate에 환장하지 말지어다!!!
의외로 QuartzCore는 별다른 추가가 없는데 이미 아이폰에서 QuartzCore가 완성도가 높기 때문이 아닐까 싶다.

2) 설치
3대의 맥에 돌아가며 설치하다보니, 이젠 친근하기까지 하다.

3대의 맥에 돌아가며 설치하다보니, 이젠 친근하기까지 하다.

기존에 3.2.1이 설치되어 있었는데 알아서 업그레이드와 덮어쓰기를 지원해준다.
참고로 3.2 beta는 3.2.2란 버전넘버를 갖고 있다.

베타 버전이라도 과감한 설치.

베타 버전이라도 과감한 설치.

3.2.2 Pre-release의 위엄

3.2.2 Pre-release의 위엄

자, 두근거리는 맘을 갖고 새 프로젝트를 만들어보자.
얼래? 근데 아이패드를 위한 새로운 프로젝트 타입은 Split View-based Application 밖에 보이지 않았다.
살짝 의아해하고 있는데 기존 프로젝트 타입이 아이폰과 아이패드를 동시에 지원하기에 Product 항목에서 아이폰인지 아이패드인지를 결정하도록 되어 있었다.
아, 아이패드짱... 하악하악

아, 아이패드짱... 하악하악

정리해보면,

Navigation-based Application : 아이폰
OpenGL ES Application : 아이폰/아이패드
Split View-based Application : 아이패드
Tab Bar Application : 아이폰/아이패드
Utility Application : 아이폰
View-Based Application : 아이폰/아이패드
Window-based Application : 아이폰/아이패드


이런 식으로 프로젝트를 만들수 있다.

그런데 3.2.2에서 테스트 삼아 일단 아이폰 프로젝트를 만들어보았다. 그런데??!!!
아이폰 좆까, 아이패드!!!

아이폰 좆까, 아이패드!!!

깜짝 놀럤다.
기존의 아이폰 시뮬레이터가 아닌 아이패드 시뮬레이터가 아닌가?!!!
이제 무조건 아이패드 시뮬레이터로 하란 말인가 싶어 살펴보니, 아이폰 시뮬레이터가 아이폰과 아이패드를 동시에 지원하도록 되어 있었다. 아이 깜딱이야!!!!
참고로 시뮬레이터 오른쪽 하단에 보이는 2x가 바로 픽셀 더블(Pixel Double)로 기존 아이폰 애플리케이션을 2배로 사이즈를 키워주는 버튼이 되겠다.

시뮬레이터를 바꿀수 있다.

시뮬레이터를 바꿀수 있다.

또한 기대되면 Split은 Settings에서 사용하고 있었다.
흔히 개발자들 사이에 아웃룩 (Outlook) UI라고 불리는 모습이다. 해상도가 커진만큼 앞으로 많이 사용될 형태라 여겨진다.
180도 뒤지은 형태의 아이패드와 Split View

180도 뒤지은 형태의 아이패드와 Split View

그리고 전에 없던 기능인, 시뮬레이터를 180도 뒤집는 것이 가능해졌다. 이전에는 90도 회전 밖에 지원되지 못해,
실제 개발 라이센스가 없던 개발자들은 이 상태를 만들수가 없었다. 아이폰/아이패드 모두에게 해당하는 것으로 가려운 부분들이 해결된 셈이다...라지만 제발이지 180도 뒤짚은 상태에서는 UI를 Rotate시키지 말았으면 한다.
옆으로 누워서 볼때 무쟈게 불편하기 때문이고, 그런 앱은 다운받자마자 지워버린다.
근데 문제는 시뮬레이터로 살펴본 현재 아이패드 역시 모든 방향으로 로테이션한다.
이것이 실기계에서도 그런다면 애플넘들이 레알 미친 넘 인증이다.
물론 아이폰/아이팟은 안그럼.
아이폰도 180도 회전이 가능해졌다.

아이폰도 180도 회전이 가능해졌다.

3) 마이그레이션
현실적으로 게임 개발자들에게는 애플리케이션보다는 게임 프로그램이며 아이패드로의 호환성이 궁금할 것이다.
특히 높은 인기를 누리고 있는 Cocos2d가 궁금할 것인데, 결론적으로 자알~ 됨을 확인할 수 있었다.
시뮬레이터만 맞춰주면 OK~!

시뮬레이터만 맞춰주면 OK~!

기본 사이즈

기본 사이즈

...어떤 기기라도 덕질용 머신으로 바꿔버리는 정도의 능력.
...어떤 기기라도 덕질용 머신으로 바꿔버리는 정도의 능력.

어쩌면 기존 아이폰 어플리케이션들 중에서 아이패드의 혜택의 가장 기다려지는 것은 게임이 아닐까 한다.
Open GL ES 기반인지라(옴니아 좆까!) 픽셀 더블시, 단순한 픽셀 확대가 아닌 블리언 연산 등이 작동할 것이고 생각보다 더 매끄러운 화면을 얻을수 있을 것 같다. 하지만... 역시 아이폰과 아이패드를 동시에 지원하도록 리소스와 코드가 준비되는 것이 가장 좋을 것이다.

4) 아이패드 개발
아이패드 개발은 일반적인 아이폰 개발과 똑같았다. -_-;;;;
즉, IB 기반에서 컨트롤을 배치하고 속성과 액션을 부여하고 코딩을 하는 그것과 같았다.
다만 아이폰과 아이패드, 양쪽을 지원하는 프로그램을 만들수 있도록 해주는, 사소하지만 의미있는 기능(Transition to)들이 눈에 띄였다.
그런데 아이패드용 앱을 제대로 개발하기 위해서는 모니터의 세로 해상도가 최소 1024는 넘어야 할 것 같다.
아이패드는 1024 x 768 해상도이기 때문에 이를 받쳐주는 모니터가 아니라면 개발은 너무나 힘들어 보인다.
다시 말해 24인치 이하의 모니터라면 Portait 모드로 아이패드 개발은 사실상 불가능하다.
역시 한글은 불가능하다.

역시 한글은 불가능하다.

또한 현재 베타라는 한계 때문인지 아이패드 개발은 원할하지는 않다.
IB와 시뮬레이터간의 연계도 이해되지 못하는 부분들이 많고(IB에서 랜드스케이트로 만들어도 시뮬레이터에서는 포트레이트로만 나온다.) 수정을 바라는 기능들도 있다. 특히 아이패드에서는 openURL로 기본 웹브라우저(사파리)가 작동하지 않는데, 시뮬레이터에도 사파리가 존재하지 않아 아직 웹브라우저를 추가하지 못한 것 같다. 예컨데 윗 짤에서 왼쪽 중간의 텅빈 부분이 WebView이다. 에러는 나지 않지만 브라우저는 뜨지 않았다.

5) 그래서...
처음에는 살짝 구경만 하고, 다시 예전 버전을 재설치할려고 했으나 벌써 아이패드 코딩질에 살짝 재미를 느껴버렸다.
생각만큼 불안한 부분도 없기에 한동안 이 버전으로 현재 만들고 있는 프로젝트를 계속 코딩해나가야겠다.
또한 아이패드는 더 커진 아이팟 터치인게, 남들에게는 몰라도 최소한 개발자들에는 아주 잘된 일일 것이다.
기존 API를 그대로 사용할 수 있으니까.

하지만 아이패드가 가지는 의미는 언론의 컴맹기자들과 삼숑관계자들의 의견과는 사뭇 다르다.
물론 하드웨어 자체로 보면 1024 x 768의 아이팟이 맞다.
그러나 사이즈의 변화로 일어날 앞으로의 파장은 어떤 사람들은 애써 부인하고 싶어도 명백하게 보인다. 바로 또하나의 시장이 생긴 것이다.

그리고 제발이지 MS도 빨리 이런 재미있는 물건을 만들어 주길 바란다.
여전히 XCode보다는 Visual Studio가 훨 더 편리한 개발툴이라 여겨지기 때문이다.

끝으로 마지막 한마디!!
난 애플빠가 아니라긔. 사과 스멜 좆까!
옴니아빠는 더좆까! 개등위 껒여!!!!!!!!!

크리에이티브 커먼즈 라이선스
Creative Commons License


애플 개발자 홈페이지에 가봐도 별다른 이슈가 없어 아직 SDK는 공개하지 않는지 알았는데,
개인 메일을 보니 PreRelease 버전이 떴다고 하네요.

앱스토어 라이센스 가진 개발자에게만 되는지는 모르겠지만 암튼 떴습니다!!

iPad SDK가 아닌 iPhone SDK 3.2 beta라고 하는군요.

당장 뜯어보고 싶지만... 개인 사정으로 다음주 화요일 이후에나 SDK를 설치할수 있을 것 같습니다.
아뭏든 아이패드 어플리케이션 개발하고픈 분들에겐 희소식이겠네요.

URL은 http://developer.apple.com/iphone/index.action#prerelease

URL은 http://developer.apple.com/iphone/index.action#prerelease


열려라, 포탈!! http://developer.apple.com/iphone/index.action#prerelease


크리에이티브 커먼즈 라이선스
Creative Commons License