블로그 이미지
'무른모'란 부드럽다라는 뜻을 가진 '무르다'라는 말과 도구, 연장을 뜻하는 '연모'라는 순 우리말의 합성어로 소프트웨어를 말합니다. seanhigher

카테고리

분류 전체보기 (161)
Blog srart (16)
Dev Center (94)
Real Life (13)
Mac life (21)
Naver life (17)
Total662,898
Today20
Yesterday18

'IB'에 해당되는 글 2건

  1. 2010.04.06 Hello world! app 프로젝트.
  2. 2010.04.05 Xcode 살펴보기.
대부분의 프로그램을 시작하게 되면 가장 먼저 배우게 되는 것이 'Hello World!'라는 문자열을 화면에 출력하는 것이다. 아무것도 아닌것 같지만 이것은 굉장히 큰 의미를 지닌다. 세상을 향해 안녕이라고 외치는 것, 아이폰 프로그래밍 세계를 향해 안녕이라고 소리치는 것이다!


새 프로젝트 생성.
Xcode에서 새 프로젝트를 생성하기 위해서는 메뉴에서 'File' -> 'New project' 를 차례로 선택하면 된다. 이번에 만들게 될 Hello world! App은 복잡하지 않은 애플리케이션이므로 'View-based Application'으로 선택하여 프로젝트를 생성하도록 한다.


그림1. 새 프로젝트 생성

새로운 프로젝트를 만들겠다고 선택을 하면 위의 그림과 같이 프로젝트 명과 프로젝트를 저장할 폴더를 설정할 수 있다. 프로젝트 명은 자신이 원하는 것으로, 구분이 가능하도록 입력하고, 프로젝트가 저장될 폴더도 다른 데이터들과 구분된 폴더를 사용하는 것이 나중에 관리를 하기가 수월하다.


그림2. 프로젝트 창

프로젝트 명과 저장할 폴더를 지정하고 나면 위의 그림과 같은 프로젝트 창을 볼 수 있다. 사용자마다 위의 그림과 약간 다를 수도 있지만, 새로운 프로젝트를 생성했다면 새 프로젝트가 가지고 있는 파일들은 동일하기 때문에 걱정하지 말길 바란다. 'Hello world' 프로젝트의 가장 기본적인 기능은 텍스트를 화면에 출력하는 것이다. 코드를 입력하여 출력할 수도 있지만, 훨씬 더 수월한 인터페이스 빌더를 이용해서 출력할 수 도 있다. 인터페이스 빌더를 사용하기 위해서 왼쪽 'Group&Files'창에 있는  'Resource' -> 'Hello_worldViewController.xib'를 더블 클릭한다.


인터페이스 작성.
다음과 같은 인터페이스 빌더의 화면이 실행 될 것이다. 만약 이전에 Xcode를 사용하였다면 가장 마지막에 사용된 형태의 인터페이스 빌더의 모습이 나타날 것이다.


그림3. 인터페이스 빌더

가장 가운데 윗 부분에 있는 창이 메인 창이다. 안에 있는 아이콘들이 xib 파일이 포함하고 있는 객체들을 가리킨다. 아래에 있는 view 창은 실제로 화면에 보여지는 모습을 그대로 재현해 내는 객체이다. 이 화면을 통해서 아이폰에 어떻게 표현될 것인가를 예상 할 수 있다. 왼쪽에 있는 Library 윈도우는 화면에 표현할 수 있는 객체 라이브러리를 나타낸다. 라벨, 버튼, 메뉴등 기본적으로 필요한 도구들을 가지고 있다. 오른쪽에 있는 Attributes 윈도우는 각 객체의 속성을 제어할 수 있다. 이 두개의 윈도우를 통해서 코딩없이 다양한 디자인이 가능하다. 'Hello world!' 문자열을 화면에 출력하기 위해서는 텍스트를 표현하기 위한 'Label' 객체가 필요하다.


그림4. 라벨 객체 추가

왼쪽에 있는 Library 윈도우에서 'Label'을 선택하여 View 윈도우로 끌어다 놓으면 라벨이 추가되는 것을 볼 수 있다. 기본 이름이 'Label'로 되어있기 때문에 더블클릭하여 'Hellow world!'로 문자열을 새로 입력한다. 이제 화면에 'Hello world!' 문자열을 출력하기 위한 준비 작업은 다 마쳤다. 이제 실행하기만 하면 된다.


시뮬레이터로 실행하기.
인터페이스 빌더에서 지금까지 작업한 파일을 저장한다. 인터페이스 빌더는 인터페이스에 관한 메뉴만을 가지고 있기 때문에 실행을 하기 위해서는 Xcode 프로젝트 창에서 실행을 해야만 한다. Xcode 창에서 'Build' -> 'Build and Run' 메뉴를 실행한다.

 
그림5. Hello world! 프로젝트 시뮬레이션

잠시동안 프로젝트가 빌드되고, 위와 같은 깔끔한 화면에 'Hello world!'가 출력되는 시뮬레이션을 볼 수 있을 것이다. 비록 매우 간단한 프로젝트지만, 이제 아이폰 프로그래밍에 한발을 내딛게 된 것이다.

Posted by seanhigher

댓글을 달아 주세요

코코아 프로그래밍을 하기 위해서, 또는 아이폰 프로그래밍을 하기 위해서 필요한 것이 Xcode라고 불리는 애플리케이션 제작 툴이다. Xcode는 프로그래밍을 하는데 있어서 쉽고, 간결하게 할 수 있도록 다양한 방법으로 개발자들을 돕고 있다. 그리고 무엇보다도 보기에 좋다는 것!



Xcode project 만들기
맨 처음 Xcode를 실행하게 되면 개발자들을 환영하는 메세지를 볼 수 있다. 처음 나타나는 메세지에서는 새로운 프로젝트를 생성하거나, 이전에 작업하고 있던 프로젝트를 선택 할 수 있다. 그리고 처음 Xcode를 사용하는 사용자들을 위한 튜토리얼과 개발자들을 위한 웹페이지의 링크도 선택할 수 있기 때문에 한번즘 클릭해 보는것도 나쁘진 않을 것이다. 그리고 매번 시작할때 마다 환영 페이지를 보고 싶지 않다면 'Show this windows when Xcode launches'의 체크 박스를 해제하면 된다. 새로운 프로젝트를 생성하기 위해서 'Create a new Xcode project'를 선택한다.


그림1. New Project 선택 화면

그러면 위와 같은 새 프로젝트 선택 화면을 볼 수가 있을 것이다. OS X에서 실행이 되는 응용 애플리케이션을 개발하고자 한다면 왼쪽의 OS X 탭 아래의 메뉴에서 선택을 하면 되고, iPhone용 애플리케이션을 개발하고자 한다면 iPhone 탭 아래에서 적당한 메뉴를 선택하면 된다. 가장 기본이 되는 애플리케이션을 만들기 위해서는 iPhone -> Application -> View based Application 을 선택하도록 한다. 애플리케이션의 이름을 정하고, 저장할 위치를 묻는 화면이 나오는데, 기본으로 설정되어 있는 디렉토리를 사용해도 상관없지만, 다른 데이터와 혼동이 될 수 있으므로, iPhone 프로젝트만을 위한 디렉토리를 따로 생성하여 설정하기를 권한다.


Xcode 'Hello world' project 창 보기.
프로젝트를 생성할 장소까지 설정을 했다면 다음과 같은 프로젝트 화면을 볼 수가 있을 것이다.


그림2. 'Hello World' project

단지 프로젝트 이름만 지어줬을 뿐인데 이미 많은 파일들이 생성되어 있는 것을 볼 수가 있다. 이것들은 개발자의 편의를 위해서 Xcode가 자동으로 기본 템플릿을 가지고 생성해낸 파일들이다. 나중에는 세심하게 살펴 보겠지만, 처음에는 자동으로 파일들이 여러개 생성된다는 사실만으로도 충분하다. 왼쪽에 있는 'Group&Files'는 프로젝트안에 포함되는 다양한 파일들이 들어가 있다. 소스 파일이 포함될 수도 있고, 이미지나, 텍스트, 음성 데이터들이 포함될 수 있다. 각각의 폴더가 의미하는 바는 다음과 같다.

Classes : object-C 클래스 파일들이 모여 있는 곳이다. 개발자가 생성하는 파일들이 들어가는 곳이기도 하다.
Other Sources : object-C 클래스 파일이 아닌 소스코드 파일들이 포함된다. 그리고 맨 처음 프로젝트를 생성하게 되면 두가지의 파일이 자동으로 생성되게 된다. '프로젝트명_Prefix.pch'란 파일과 main.m 파일이다. Prefix.pch는 precompiled header의 약자로 일반적으로 프로젝트를 생성하는데 있어서 꼭 필요한 헤더 파일들을 컴파일 해 놓는 것이다. 기본적으로 사용하는 헤더 파일들을 미리 컴파일 해 놓으면 프로젝트를 빌드 할때 시간을 절약 할 수 있다. main.m 파일은 main() 메소드가 있는 곳으로 MVC 구조를 사용하는 오브젝티브-C의 특성상 수정할 경우가 많지 않다.
Resources : 애플리케이션에 사용되는 파일들이 포함되어 있는 곳이다. 프로그램을 구동하는데 필요한 코드가 아니라 아이콘, 이미지, 소리파일, 동영상등 프로그램을 실행하는데 있어서 필요할 만한 자원들을 보관하는 곳이다. 아이폰에서는 허가된 위치의 파일들 외에는 임의로 접근이 불가능 하기 때문에 실행에 필요한 파일들은 꼭 이 위치에 보관해야 한다. 이 폴더에는 다음의 세가지 파일이 자동으로 생성 된다. '프로젝트 명ViewController.xib', '프로젝트 명-Info.plist', 'MainWindow.xib'. 이 세가지 파일은 프로그램을 실행하는데 꼭 필요한 파일들이기도 하다.
Framework : 이 폴더는 코드, 이미지나, 소리데이터등의 자원들이 포함되어 있는 라이브러리이다. 이 폴더에 포함되는 프레임워크는 자동으로 프로젝트에 링크되어 사용할 수 있게 된다. 기본적으로 사용되는 프레임워크에 포함되지 않는 프레임워크를 사용하고자 할 경우 이 폴더에 포함시킨다.
Products : 프로젝트를 통해 생성된 애플리케이션이 저장되는 곳이다. '프로젝트 명.app'이 프로젝트의 결과물이 된다. 위 그림에서 보면 Hello World.app이 빨간색으로 되어 있는데, 이것은 아직 빌드를 한번도 실행하지 않았기 때문에 파일을 찾을 수 없다는 의미이다.

'Group&Files' 의 창에 표현되는 디렉토리 구조는 OS X 의 디렉토리 구조와 완벽하게 일치하지 않는다. 왜냐하면 'Group&Files'에서 보여주는 디렉토리의 구조는 프로젝트를 작성하는데 있어서 편리하도록 만들어낸 논리적 구조이기 때문이다. 파일을 그대로 복사해서 가져올 수도 있지만, 단지 링크만을 해 둘 수도 있다. 이것은 옵션으로 선택이 가능하다.


Interface Builder 둘러보기.
Xcode를 완성하는 또 하나의 창은 IB라고 하는 인터페이스 빌더이다. 프로젝트창이 보이지 않는 소스코드에 중점을 둔다면, 인터페이스빌더는 프로그램의 외형을 아름답게 꾸미는 일을 책임진다. 개발자가 만들고자 하는 프로그램에 버튼을 하나 추가하고 싶다면 버튼을 의미하는 소스코드를 입력해서 만들 수도 있지만, 인터페이스 빌더를 사용하면 마우스 클릭만으로 간단하게 버튼을 추가 할 수 있다. 이것은 MVC 패턴에 맞추어서 기능과 뷰를 분리하였기 때문에 가능하다. 또한 인터페이스를 만드는데 드는 시간을 줄 일 수 있으며, 좀더 직관적인 디자인이 가능하다는 이점이 있다. 생성한 프로젝트에서 IB의 화면을 보기 위해서는 IB를 책임지고 있는 파일을 선택하면 된다. Resources 폴더의 '프로젝트 명ViewController.xib'파일을 더블클릭한다.


그림3. Interface Builder 의 화면


처음 IB를 실행하게 되면 위와 같이 여러개의 창이 나타나는 것을 볼 수 있다. 이중에서 가장 메인이 되는 창은 가운데 위에 있는 '프로젝트 명ViewController.xib'라고 써 있는 창이다. 인터페이스를 책임지는 모든 xib 파일은 File's Owner와 First Responder 이라는 두개의 파일을 자동으로 포함하게 된다. File's Owner는 xib파일의 객체를 의미한다. 객체지향 프로그래밍에서는 어떠한 오브젝트를 사용하기 위해서 객체를 생성하는데, File's Owner가 첫번째 객체의 역할을 하는 것이다. First Responder는 현재 사용자와 프로그램이 상호작용을 하고 있는 객체를 의미한다. '1' ~ '9'로 표현되는 버튼을 생성하였다. 이 때 사용자가 '2'라는 버튼을 눌렀다면 '2'라는 버튼은 현재의 퍼스트 리스폰더이다. 퍼스트 리스폰더는 그 때에 작용하는 객체를 말하기 때문에, 사용자와 상호 작용을 하는데 있어서 매우 중요한 역할을 한다. 그리고 'View'라는 아이콘이 포함되어 있는 것을 볼 수 있는데, 이것은 화면에 나타나는 '뷰'를 의미한다. 지금 당장에는 하나의 뷰만을 가진 애플리케이션을 작성하기 때문에 하나밖에 없지만, 좀더 복잡한 애플리케이션을 작성하게 되면 여러개의 뷰가 생성 될 것이다.


프로젝트 창과 인터페이스 빌더는 iPhone 프로그래밍이나, 코코아 프로그래밍을 하는데 있어서 매우 중요한 요소이다. 그리고 개발자들이 가장 기본적으로 사용하게 되는 창이기도 하다. 이 두개의 화면에 익숙해진다면 아이폰 프로그래밍을 하는 것도 그렇게 어렵게 느껴지지 않을 것이다.

Posted by seanhigher

댓글을 달아 주세요

최근에 달린 댓글

글 보관함