iPhone Programming for Dummy - 2



2. Hello, World 작성

2.1. 3총사

이 제 Xcode 를 실행한 상태에서, 무엇을 하면 될지 보자. 기본적으로 각종 정보를 살펴볼 수 있는 'Welcome to Xcode' 창이 나타나는데, 지금은 일단 이 창을 닫자. 나중에 각자 어떤 정보를 얻을 수 있는지 살펴보면 많은 도움이 될 것이다.

Xcode 는 Apple 에서 제공하는 통합 개발 환경이다. 이것은 GCC 컴파일러를 기반으로 하고 있으며, Mac 환경에서 일하는 개발자에게 이 이상의 개발 도구는 없다고 보면 된다.

다시 말하지만, Xcode 는 통합 개발 환경(IDE) 이며, 매킨토시 개발자들의 천국이자 고향이다. 매킨토시 개발의 모든 것은 Xcode 에서 시작하고 끝난다.

프 로그래밍 환경이므로, 개발자는 당연히 프로그래밍 언어를 사용해서 작업을 하게 된다. 여기서 입문자들은 Objective-C 라는 낮선 장벽에 다시 한번 부딛히게 된다. Mac OS 의 기본 프로그래밍 언어는 바로 Objective-C 이다.

Objective-C 언어를 아는 사람은 극히 적은 것이 엄연한 현실이다. 이것이 진입 장벽으로 작용한다고 볼 수도 있는데, 장담하지만 왜 애플이 계속해서 Objective-C 언어를 고집하고 사용하고 있는지 그 이유를 깨닫게 될 것이다. Objective-C 언어는 Small Talk 계열의 객체 지향 언어로서, C 언어의 모든 문법을 포함하여 확장된 언어다.
그러나 C++ 를 떠올리면서 겁먹을 필요는 없다. 많은 전문가들이 애플 소프트웨어의 높은 안정성과 생산성의 이유로 Xcode 개발 환경과 Objective-C 언어를 꼽을 정도니까. 실리콘벨리 역사상 기술적인 면에서 최고의 걸작으로 꼽히는 NeXT 의 개발 환경이 바로 이 Xcode 다. ( 반대로, 현재 사용하는 Xcode 와 라이브러리의 형태가 NeXT 의 것과 기본적으로 크게 변한 것이 없다는 것은, 얼마나 NeXT 시스템이 기술적으로 진보된 것이었나 하는 반증도 된다)


자세한 정보는 iPhone Dev Center 홈페이지에서 Tools for iPhone OS Development 혹은 Learning Objective-C: A Primer 등의 문서를 통해서 얻을 수 있다. 또한 Xcode 와 Objective-C 언어에 대한 많은 자료를 온라인에서 찾을 수 있을 것이다.


나중에 차차 나오겠지만, 또 하나 개발 과정에서 중요한 도구는 바로 Interface Builder 이다. 이것은 이름처럼 사용자 인터페이스를 쉽고 효과적으로 작성하도록 도와주는 일종의 RAD tool 이다.

Interfece Builder 를 사용하지 않더라도, 순수하게 Xcode 만을 사용해서 모든 User Interface 를 작성하는 것도 가능하다. Mac 데스크탑 용 프로그램을 작성할 때고 그렇고, iPhone 용 프로그램을 작성할 때도 마찬가지다.

실 제로 iPhone SDK 초기 Beta 버전은 Interface Builder 가 iPhone 용 인터페이스 작성을 지원하지 않았다. 그 때 초기에 나온 예제 코드들은 전부 Interface Builder 의 도움 없이 화면 작성을 하는 방법을 설명하고 있다.

그러나, Interface Builder 는 상당히 강력한 도구다. 어지간한 화면 구성 작업은 한 줄의 코딩 없이도 작성할 수 있고, 심지어 컴파일 하지 않아도 확인할 수 있는 부분들도 있다. 앞으로 다룰 모든 설명도 Interface Builder 를 사용하는 것을 기본으로 다룰 것이다.

마지막으로 언급하고 넘어갈 것은, iPhone 개발자에게만 해당되는 것으로서, 바로 iPhone Simulator 이다.
Xcode 와 Interface Builder 는 Mac 데스크탑 프로그램 개발자들도 모두 사용하는 툴 이지만, simulator 는 오직 iPhone 개발자들만 사용한다. 당연히 이것은 Mac 데스크탑 상에서 가상의 iPhone 디바이스를 제공한다.

iPhone 개발자들은 iPhone 혹은 iPod Touch 가 없더라도 이 Simulator 상에서 대부분의 테스트를 손쉽게 할 수 있다. 그리고 Simulator 에서 실행해 보면서 Xcode 상에서 Break Point 를 사용하거나 변수 값을 보는 것 같은 디버깅 작업이 가능하다.(당연히 gdb 가 동작한다.)

iPhone Simulator 는 따로 실행할 필요 없이, Xcode 에서 Target 을 simulator 로 지정해 놓은 상태에서 작업하면 자동으로 실행되기 때문에 Xcode 와 하나의 환경이라고 생각해도 된다. 그러나 iPhone 개발자들에게는 없어서는 안될 중요한 존재이기 때문에 간단히 언급해 보았다.

이제 실행되어 텅 빈 채로 당신을 기다리는 Xcode 로 가자.



2.2. Workspace

다들 각종 IDE 환경에서 프로그램을 작성해 본 경험이 있기 때문에 충분히 예상은 하고 있겠지만, 먼저 할 일은 새로운 프로젝트를 생성하는 것이다.
Xcode 메뉴에서 File -> New Project 를 선택하면 아래와 같은 창이 나타난다.


여기서 어떤 프로그램을 작성할지 그 종류를 선택한다. iPhone 응용 프로그램 작성을 시작할 수도 있고, 데스크탑 응용 프로그램이나 라이브러리를 작성하기로 결정하여 시작할 수도 있다. 결정이 끝났다면, 가장 적합한 템플릿을 이 창에서 선택하면 된다.

일단 우리는 iPhone 응용 프로그램 템플릿 중에서 Window-Based Application 을 선택해 보도록 하자. Choose... 버튼을 누르면 프로젝트의 이름을 정하고 저장하는 단계로 진행한다.
적당한 이름을 지정한 후 폴더 위치를 결정하고 Save 버튼을 누르면 준비는 끝나고, Xcode 의 본격적인 모습을 볼 수 있다. 화면에는 Xcode IDE 환경의 기본 창이 나타난다. 이러한 개발 환경을 Xcode 에서는 Workspace 라고 부른다.


처음 선택한 템플릿대로 기본적인 코드들은 전부 자동 생성되어 있다. 좌측에 Groups & Files 칸에는 프로젝트에 관련되어 있는 모든 종류의 파일들이 항목별로 등록되어 있으며, 우측에는 선택된 항목에 포함된 파일들과 텍스트 에디터 창이 포함되어 있다. 텍스트 에디터 창에서 소스 코드를 수정할 수 있으며, 에디터 창은 별도의 창으로도 열어서 작업할 수 있다.

또한 창의 상단에 있는 툴 바를 사용하여 기본적인 명령을 사용할 수 있는데, 이 툴바의 항목은 사용자 임의로 최적화 할 수도 있다. Xcode 가 제공하는 기능들을 모두 한번에 살펴보는 것은 힘들다. 개발에 필요한 많은 기능들이 있기 때문에, 필요한 사항은 그때그때 도움말을 참조하면 된다.

Xcode 에 포함된 문서는 상당히 많으며, 또 이것들은 온라인으로 최신의 문서로 업데이트 가능하다. 또한 쉽게 검색할 수 있도록 강력한 문서 브라우징 도구를 제공한다.



Xcode 메뉴의 Help 를 선택하면 그림과 같은 창이 나타나는데, 곧장 키워드로 검색하거나 문서 보기 창을 선택할 수 있다. Xcode 개발 환경에 대해 알고싶다면 Xcode Workspace Guide 를 선택해서 살펴보면 된다. 별다른 책이 필요없을 정도다. 또한 프로그래밍 언어와 SDK, 각종 API 등 뭐든지 온라인 문서를 찾아보면 된다.




2.3. iPhone Simulator

개발자 문서 보기 창은 일단 닫고, 다시 Workspace 로 돌아와 보자. 처음 프로젝트를 생성한 상태로서 아무 작업도 하지 않았지만, 앞서 언급한대로 선택한 템플릿에 맞게 기본적인 소스 코드들은 이미 프로젝트에 생성되어 있다. 파일 이름이 .h 로 끝나는 파일들은 C 언어와 마찬가지로 헤더 파일들이지만, 소스 코드 파일은 C 언어와는 다르게 .m 으로 끝나는 이름을 가지고 있다. 이것은 Objective-C 언어로 된 소스코드라는 의미이다.

 프로그램 작성을 시작해야 하지만, 일단 툴 바에서 Build & Run 버튼부터 눌러보도록 하자. 우리는 아무것도 작성하지 않았지만, 선택한 템플릿에 의해 기본 생성된 리소스와 기본 소스 코드들이 컴파일되어 실행 코드가 작성될 것이다.그리고 자동으로 iPhone 시뮬레이터가 동작하여, 방금 컴파일된 프로그램을 실행하여 보여주게 된다.
아래 그림처럼 iPhone 과 똑같이 생긴 화면이 바로 시뮬레이터의 화면이다

아무것도 없는 화면이지만, 지금 우리가 생성한 프로젝트가 실행되고 있는 상태이다. 최초로 작성한 iPhone 응용 프로그램을 실행한 셈이다. (Wow, 축하합니다!)

시뮬레이터에는 홈 버튼도 당연히 있으며, 홈 버튼을 누르면 프로그램이 종료되면서 실제 홈 스크린을 볼 수 있다. 전화번호부와 사진 앨범, 그리고 사파리 브라우저도 가능하다. 즉 iPod 기능과 전화 기능을 제외하고는 실제 기기의 기능들을 사용해볼 수 있는 것이다.

홈 스크린에는 방금 실행한 프로그램이 프로젝트 이름의 Application 으로 등록되어 있다. 사진 보기 프로그램도 기본적으로 있는데, 샘플 사진들도 여러 장 있지만 임의의 사진을 넣는 방법은 없다.

설정 프로그램을 실행해서 한국어를 기본 사용하는 것으로 언어 설정을 변경해도 된다.

키보드 역시 한국어 키보드를 사용 가능 상태로 설정하자. 원한다면 일본어나 기타 다른 언어 키보드를 설정해도 좋다. 여기서 다국어 키보드를 설정하면 텍스트 입력을 할 때 원하는 언어로 입력할 수 있을 것이다. iPhone 시뮬레이터를 사용하면 실제 iPhone 을 그대로 사용하는 기분이 들게 된다.

더 멋진것이 있다. 바로 iPhone 의 회전기능을 시뮬레이터에서도 그대로 사용해 볼 수 있다는 것이다.

애플키 + 좌우 화살표 키로 좌우 90도 방향으로 폰을 돌리는 것도 가능하다. 모든 것이 진짜로 돌아가며, 이때 실행중인 프로그램이 방향에 따라 다른 화면을 처리할 수 있도록 되어있다면 가로 방향 화면을 보여준다. 회전 처리가 되어 있지 않다면 화면은 몸체가 돌아간 것에 따라 진짜로 함께 회전한다. 좌,우측 모두 90도 회전할 수 있지만, 180도 회전은 안된다.

또 한가지 아쉬운 것이 있는데, 실제 iPhone 을 사용하는 것처럼 정교한 기울기로 기울이면서 중력가속도 센서의 모든 기능을 테슽 하는 것은 불가능 하다는 점이다. 예를 들어, 키노트 프리젠테이션에서 보았던 'Super Monkey Ball' 같은 프로그램을 작성해서 시뮬레이터로 테스트 하는 것은 불가능 하다는 뜻이 된다. 물론, 내가 생각해도 그런것까지 시뮬레이터에서 지원한다는 것은 무리라고 생각된다.

 


사파리 브라우저도 실행해 보자. 내장되어 있는 사파리 브라우저는 실제로 동작한다. 다시 말해서, 인터넷이나 네트워크를 사용하는 프로그램을 작성한다면 에뮬레이터에서도 실제로 테스트 해 볼 수 있다는 뜻이 된다.

브라우저의 주소창에서 주소를 입력하거나 북마크를 지정해서 저장할 수도 있다. 화면을 축소하거나 확대하기 위해 키보드의 alt 키를 누른 채로 마우스 포인터를 드래그하면 화면 중심을 기준으로 '핀치' 동작도 사용할 수 있다. 마치 두 손가락으로 화면을 만지는 것과 같이 마우스로 시험할 수 있는 것이다. 항상 화면 중앙을 중심점으로 동작할 수 밖에 없다는 제약은 있다.

사파리는 iPhone 의 가로/세로 보기 여부에 따라 화면 형태를 변경하는 프로그램 중 하나다. 에뮬레이터를 좌/우측으로 회전시켜보면 그 동작을 확인할 수 있는데, 화면이 돌아가는 애니메이션도 실제 iPhone 이나 iPod Touch 에서 보이는 것과 동일한 형태로 보여준다. 아래 그림과 같이 iPhone OS 가 기본적으로 제공하는 모든 기본 애니메이션 효과까지도 시뮬레이터에서 확인할 수 있다.



정말 멋지다. 내가 지금까지 만나본 모든 시뮬레이터 중에서 가장 멋진 시뮬레이터이다.


출처 : http://www.iphoneos.co.kr/zbxe/127