iOS 2008.05.26 14:05
사용자 삽입 이미지
어제 iPhone SDK를 다운로드 받고 설치를 해보았습니다. SDK는 애플의 다운로드 페이지에서 받으실 수 있습니다. 실행환경은 OS X 10.5.2 이상의 인텔맥에서만 사용할 수 있습니다. 최신 버젼은 2008년 5월 8일에 올라 왔으며 파일크기가 1GB가 조금 넘었습니다.

 Xcode 3과 레오퍼드의 개발툴들을 잘 몰라서 설치 후 무엇이 추가되고 변경되었는지는 잘 모르겠습니다. 다만 Xcode와 Dashcode에서 차이점을 발견할 수 있었습니다.

1. Xcode
그러고 보니 아직 Xcode 3에서 한번도 New Project를 실행해 본적이 없었습니다. 그렇지만 아래의 iPhone OS란 메뉴가 SDK 설치로 새로 생겼을 것으로 짐작은 됩니다.

사용자 삽입 이미지

이름을 보니까 아이폰 SDK에서 사용하는 Cocoa는 'Cocoa Touch'로 부르는 것 같습니다. 일단 'Cocoa Touch Application'을 선택하고 프로젝트를 만들어 보았습니다.

사용자 삽입 이미지
프로젝트 명을 'iPhoneSDK'로 하였더니 좌측과 같은 파일들이 기본적으로 생성되었습니다.
 
기존 Cocoa 프로젝트에서 볼 수 있었던 파일들도 보이고 iPhoneSDKAppDelegate 클래스와 MainWindow.xib와 몇개의 프레임워크등 새로 추가된 부분들도 보입니다.

NIB Files가 비어 있어 순간 인터페이스빌더를 지원하지 않는가 생각했는데 MainWindow.xib를 더블클릭하니 인터페이스 빌더를 볼 수 있었습니다. nib의 n이 NeXTSTEP을 의미하는 것으로 알고 있는데 xib의 x가 OS X를 의미하는지는 모르겠습니다. (나중에 OS X 어플리케이션으로 만들어 봐도 nib 파일 대신 xib가 생겼습니다. 이 부분은 Xcode 3에서 변경된 것 같습니다.)

사용자 삽입 이미지
   
우측에 생략된 전체 이름은 'I PhoneSDK App Delegate' 입니다. 

사용자 삽입 이미지
라이브러리 팔레트에서는 좌측과 같이 사용할 수 있는 오브젝트나 컨트롤들의 목록이 있습니다. 이전에 아이폰의 사진에서 보았던 버튼이나 UI들도 보입니다.

몇개 끌고 와서 윈도우에 배치를 해 보았습니다. 실제 구현은 아직 모르기 때문에 무조건 빌드를 하고 실행을 해 보았습니다.





사용자 삽입 이미지
특이하게 애플은 일반적으로 사용하는 에뮬레이터가 아니라 시뮬레이터라고 이름을 붙였습니다. 아이폰 시뮬레이터를 살펴 보는데 아직 베타 버젼이라 그런지 제가 잘 못 해서 그런지 실행된 어플리케이션의 입력란에 포커스가 갈 경우에는 시뮬레이터가 다운되었습니다. 


아래의  좌측은 인터페이스 빌더에서 작업한 모습이고 우측은 빌드 후에 아이폰 시뮬레이터에서 실행된 모습니다.

사용자 삽입 이미지

자동으로 생성된 코드들은 아래와 같습니다. main에 추가 된것은 UIApplicationMain에 대한 호출입니다. 실제 작업은 그 이름과 같이 AppDelegate 클래스에서 수행해야 하는 것 같습니다. 아마 UIKit이 아이폰의 핵심 프래임워크 같습니다.

main.m
#import <UIKit/UIKit.h>

int main(int argc, char *argv[]) {
   
    NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];
    int retVal = UIApplicationMain(argc, argv, nil, nil);
    [pool release];
    return retVal;
}

iPhoneSDKAppDelegate.h
#import <UIKit/UIKit.h>

@interface iPhoneSDKAppDelegate : NSObject <UIApplicationDelegate> {
    IBOutlet UIWindow *window;
}

@property (nonatomic, retain) UIWindow *window;

@end

iPhoneSDKAppDelegate.m
#import "iPhoneSDKAppDelegate.h"

@implementation iPhoneSDKAppDelegate
@synthesize window;

- (void)applicationDidFinishLaunching:(UIApplication *)application {   
    // Override point for customization after app launch
}

- (void)dealloc {
    [window release];
    [super dealloc];
}

@end


2. Dashcode
혹시나 하는 마음에 Dashcode도 실행해 보았습니다. 아래와 같이 New Project에서 Web Application이란 추가된 항목이 있었습니다.

사용자 삽입 이미지

이전 포스팅에서 한번 보았던 RSS를 선택하고 새 프로젝트를 만들었습니다. 이전과 동일하게 속성의 Feed URL에 올블로그 주소만 입력하고 실행해 보았습니다. 아래와 같이 시뮬레이터가 실행되었습니다.

사용자 삽입 이미지
아마 Dashcode로 만든 어플리케이션은 사파리내에서 실행되는 거 같습니다. 웹어플리케이션이니까 당연히 웹플랫폼에서 실행되겠지만 주소창이나 브라우져의 UI들은 안 보여 줄 것으로 생각했는데 아닌 것 같습니다.

아직 Xcode 3도 모르고 간만 본 상태에서 조금 이른 생각 같지만 iPhone에서의 개발은 기존의 다른 모바일 플랫폼 보다 쉬운 것 같습니다. 신경써야 될 폰이 아이폰 딱 하나인 것도 개발자 입장에선 편할 것 같고요. 개발자료들도 ADC에 충분한 것 같으니 많은 어플리케이션들이 나올 것 같습니다.
SDK와 툴들을 대충 둘러 보면서 느낀 첫번째 생각은 우리나라에 나오기만 하면 꼭 아이폰을 사야 겠다는 것이었습니다. 비록 에뮬 환경에서 일부분만 본 아이폰이지만 화면과 UI가 환상이었습니다. 에뮬레이터로 핸드폰 뽐뿌 받기는 처음이었습니다.
모든 댓글을 환영합니다. (욕설과 광고는 삭제합니다.)
  1. Favicon of http://sukwoo.blogspot.com BlogIcon 장림 2008.05.29 17:31  댓글주소  수정/삭제  댓글쓰기

    오늘 새로운 버전 나왔습니다. (베타6)
    그런데 먼저 OS를 10.5.3으로 업데이트 해야 한다는군요.

  2. Favicon of http://yon02.egloos.com BlogIcon 수상한사람 2008.06.01 21:57  댓글주소  수정/삭제  댓글쓰기

    iPhone SDK 는 맥에서만 돌아가네요

    아무튼, 한국에 iPhone 나오면 바로 질러야 합니다.

    • Favicon of https://www.cocoadev.co.kr BlogIcon cocoadev 2008.06.02 14:07 신고  댓글주소  수정/삭제

      네. 아쉽지만 맥중에서도 레퍼드 이상에서만 실행할 수 있습니다. 저도 바로 구입할려고 하는데 가격이 어떻게 나올지 궁금하네요. :)

  3. 함지 2008.08.20 23:49  댓글주소  수정/삭제  댓글쓰기

    제 꼬마한테 뺏아서 몇번 iPod터치를 써보면서 저도 진짜 반해버렸네요 ! 최근에 맥미니와 해킨토시에서 10.5.4를 돌리면서 OSX에도 많이 놀라고 있습니다. 옛날 잡스가 넥스트를 할때 제가 국내에서 넥스트로 개발하는 회사에 근무한 적이 있는데, 그때 '말로만 하던' 기능들이 거의 10년이 걸려서, 하드웨어가 바쳐주니까, iPod로 돈벌어서 쏟아부으니까, 드디어 MS의 기술을 제치고 구현이 되고 있구나 싶은 감개무량을 느낀답니다. 그나저나 Xcode로 실제로 코딩하시는 분은 그 회사 밖에서는 처음 뵙는군요 !

    • Favicon of https://www.cocoadev.co.kr BlogIcon cocoadev 2008.08.21 09:32 신고  댓글주소  수정/삭제

      꼬마라 함은 자제분이신가 보네요. 그 당시 넥스트로 개발하는 회사에 근무하셨으면 상당히 좋은 회사에서 근무 하셨나 봅니다. ^^;;

      실제 업무는 다른 환경에서 하고 Xcode는 취미삼아 쉬엄쉬엄 하고 있습니다. 좋은 말씀 감사합니다. :)

  4. kekedie 2008.09.01 10:25  댓글주소  수정/삭제  댓글쓰기

    iPhone SDK Xcode를 설치했는데요.
    iPhone OS란 메뉴는 있는데요.
    Cocoa Touch Application이 없어요...-_-;;;
    Xcode하고 iPhone SDK 버전 문제라고 짐작은 됩니다만...

    • Favicon of https://www.cocoadev.co.kr BlogIcon cocoadev 2008.09.01 11:04 신고  댓글주소  수정/삭제

      위 내용은 이전 것이고 최신버젼으로 업그레이드 된 제 Xcode에도 Cocoa Touch Application이란 항목이 없습니다. ^^;;

      업그레이드 되면서 변경된 것 같은대, 다른 템플릿중에서 적당한 것을 선택하셔야 할 것 같습니다.

  5. Favicon of https://kekedie.tistory.com BlogIcon kekedie 2008.09.01 17:51 신고  댓글주소  수정/삭제  댓글쓰기

    옷 답변 감사합니다. 일 끝나고 집에 가서 xcode 다시 설치할라고 했었는데. ㅋㅋㅋ