'Objective C/개발환경 설정'에 해당되는 글 2건

  1. 2010.02.28 Objective-c를 개발하기 위한 환경
  2. 2010.02.28 포스팅에 앞서
여러 방법이 있을 것이다. 윈도우에서 리눅스처럼 터미널 환경을 만들어 *.m 파일을 생성하고 빌드할 수 있는 cygwin도 있고 또한 해킨토시라하여 부팅시 레오파드로 부팅하는 방법도 있지만 형편이 된다면 그냥 맥을 구입하는 것이 손쉽다.
우선 http://developer.apple.com/에서 개발자 등록 후 필요한 SDK를 받을 수 있다.
받아야할 것은 Xcode라고 되어있는 버튼이나 텍스트를 찾으면 된다. 이것하나만 있으면 개발부터 디버깅 및 시뮬레이터, Interface builder까지 개발에 필요한 모든 것을 받을 수 있다. (현재 시간 ipad sdk3.2 베타까지 배포된 상태이며 포스팅은 안전한 iphone sdk를 위주로 한다.
 ipad는 좀 더 까다롭다. 가로,세로에 및 기타 정책을 일부 생략할 수 없기 때문에 좀 더 개발에 고려할 것이 많고 까다롭다. )

이처럼 개발 툴을 설치한 다음 선택하는 것이 개발 방법인데 이미 Xcode를 설치했으므로 터미널 대신에 Xcode와 콘솔을 사용할 것이다. 

Xcode를 실행시키면 File에 new project를 선택하고 Mac OS X아래에 command line utility를 선택하고 오른쪽 메뉴에서 foundationTool을 선택하여 objective-c의 기본 프레임워크를 설정한다. 지금 만든 프로젝트는 objective-c만을 위한 프로젝트이며 나중에 Iphone, Ipad의UIView나 IBAction(As3.0에서 이벤트)등을 다루기 위해서는 Application메뉴에서 서브 프로젝트(뷰베이스, 윈도우베이스 등) 형태를 선택하여야한다.

프로젝트가 생성되면 아무것도 가져오지 않은 단순히 Objective-C만의 Foundation.h(objc에서 제공하는 라이브러리) 만을 import하여 가져오는 '프로젝트이름.m'파일이 생성된다. objc의 확장자는 *.m이다 물론 c/c++처럼 인터페이스 역할을 하는 헤더파일도 존재하고 이름도 똑같이 *.h이다.

이제 실행 파일을 만들었으니 항상 최초로 하는 'Hello world!'를 프린해 보자.

Xcode에서 해당 m파일을 열면 아래와 같이 기본적으로 코딩이 들어가 있다. 

#import <Foundation/Foundation.h>


int main (int argc, const char * argv[]) {

    //메모리 공간을 예약

    NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];


    // insert code here...

    NSLog(@"Hello, world!");

    //할당된 메모리 풀을 해제

    [pool drain];

    return 0;

}


사실 Xcode에서 프로젝트 생성시 위처럼 기본틀을 만들어 주기 때문에 'Hello, world!'를 프린하기위해서 아무것도 할 필요가 없다.

다만 특이한 것은 c에서 printf(); 또는 trace();로 사용하던 것이 NSLog();로 된 것이며 문자열에 @가 붙는다는 것이다.

추측컨데 Objective-C의 라이선스를 받아 발전시킨 회사 "Next Software"의 이름을 빌어 자기들이 만든 메서드나 클래스에는 항상 NS가 붙는 것 같다. 문자열 상수앞에 붙은 @도 역시 string에서 차별된 NSString객체를 사용하기 위함이다. 

만약 @를 제외하고 C스타일의 스트링 상수를 작성한다면 NSLog()에서 인식하지 못하고 실행되지 않는다. 

프로젝트 빌드는 command+enter나 build and go버튼(xcode에서의 용어로는 build and run)을 클릭하면 콘솔창에서 프린트 되는 것을 볼 수 있다.

참조)
자주사용되는 확장자
.c : c언어 소스파일
.cc, .cpp : c++언어 소스파일
.h : 헤더파일
.m : Objective-c 언어 소스파일
.mm : Objective-c++ 언어 소스파일
.pl : perl
.o : 컴파일된 파일


Posted by 버터백통

한 동안 너무 바빠서 블로그 출입이 뜸했다...
물론 지금도 바쁘고 앞으로도 더욱 바쁠 것 같지만 다른 형태의 문법을 익히고자 다시 블로그의 문을 두드려 본다
사실 누구도 내 블로그에 관심있게 보거나 공유하거나 하는 일은 없지만, 지금까지와 마찬가지로 스스로 공부한 것을 정리하는 차원에서
포스팅을 해보려고 한다.

이번에 관심을 갖게된 언어는 Objective-C이다. 이언어를 채택한 이유는 물론 애플의 트랜디한 UI와 좀 더 lower level  컨텐츠 개발자가 되고 싶어서이다. 또한 애플은 Xcode의 엄청난 UIkit를 제공하고 있어서 별도로 UI를 어떻게 표현할까..또는 어떤 언어로 표현할까 깊이 고민할 필요가 없는 장점이있다. 앞서 C를 조금 공부해 보았지만 문제는  UI에 대한 표현때문에 중간에 그만두게 되었다...이번에는 오랜시간을 두고 꾸준히 공부하고 싶다. 

지금은 누군가에게 도움이 되겠다는  생각보다는 단지 나에게 공부한것을 정리하는 공간으로 활용할 생각이며 테스트한 코드를 뒤지기 전의 index차원에서 정리하는것이기에 잘못된 것은 마음껏 비웃어주고 지적해주길 바란다.

시중에 많은 책들이 쏟아지고있다. 아무것도 모르기에 잘나간다는 책을 한권사서 보았다. 이제 좀 알고보니 그 책 대부분은  iphone SDK에 관한 내용이 대부분이였다 해서 순수한 Objective-C에 관한 책을 찾다보니 스티븐코찬님께서 쓰신 Objective-C 2.0이라는 책으로 결정했고 앞으로 포스팅하거나 테스팅할 내용은 모두 그 책을 기본으로 한다.

PS -
본문내용 반말 짓꺼려서 죄송합니다~  앞으로도 계속 본문은 반말짓 할꺼랍니다~ 넘 나무라진 마세요~ㅎㅎ
그리고 방문해 주시는 모든분께 감사합니다.


Posted by 버터백통