다음 네 개의 장에서는 iPhone의 UIKit과 Cocoa Touch를 이해하는 데 필수적인 내용에 대해 다루지만, 아마 당장이라도 프로그램을 만들 준비가 되었을 것이라 여겨지기 때문에 먼저 간단한 iPhone 애플리케이션을 작성해 보겠다. 이 예제를 통해 IBOutlet과 IBAction의 사용법 그리고 Xcode 및 인터페이스 빌더와 친숙해질 것이다.

 

[Note]
이 책에서 소개하는 거의 모든 따라하기 예제는 이 책의 공식 블로그(
http://blog.naver.com/ipgipg)에서 동영상 서비스되고 있으며, 정보문화사 홈페이지(http://www.infopub.co.kr)의 자료실에서 다운로드 받을 수 있다. 첫 번째 동영상-지금 보여줄 따라하기 예제 애플리케이션-은 단계별로 음성 설명을 포함하고 있으나, 나머지 동영상은 음성 없이 화면만 나온다. 그러나 이번 예제 동영상에서 설명하는 과정을 잘 익혀놓으면 나머지 동영상도 어려움 없이 따라올 수 있을 것이다.


1. Xcode를 실행한 다음, 메뉴에서 [File]-[New Project]를 선택하면 New Project 창이 나타난다([그림 1-5]).
 

 

[그림 1-5] New Project 창

 

2. View-based Application을 선택하여 클릭한다. Save As 창이 나타나면 애플리케이션 이름으로 QuickStart라고 입력한다([그림 1-6]).

 

[그림 1-6] Save As 창

 

3. Xcode가 새 프로젝트를 생성하면 [그림 1-7]과 같이 왼쪽의 Groups & Files 목록에서 Classes와 Resources 폴더를 각각 아래로 펼친다.
 

[그림 1-7] Xcode에서 Classes와 Resources 폴더를 펼친 상태의 화면

 

4. Resources 폴더에 있는 QuickStartViewController.xib를 더블 클릭하여 인터페이스 빌더를 불러온다.

 

5. [그림 1-8]과 같은 캔버스(canvas)가 나타나지 않는다면 [그림 1-9]와 같이 도큐먼트 창에서 View를 더블 클릭한다.
 

[그림 1-8] 인터페이스 빌더 상의 뷰 캔버스

 

 

[그림 1-9] 도큐먼트 창

 

6. 인터페이스 빌더의 메인 메뉴에서 [Tool]-[Library]를 선택하면 라이브러리 창을 나타낼 수 있다. 라이브러리 창의 상단에서 모든 Cocoa Touch 클래스를 보여준다. Library를 아래로 펼친 후 Cocoa Touch를 클릭한다([그림 1-10]).
 

[그림 1-10] 라이브러리 창

 

7. 라이브러리 창 중앙 부분의 내용을 아래로 스크롤하면 Round Rect Button이 나오는데 Round Rect Button을 그대로 뷰 캔버스로 드래그 앤 드롭한다([그림 1-11]).
 

[그림 1-11] 버튼 추가

 

8. 뷰 캔버스 상의 버튼을 더블 클릭하여 Click Me라고 입력한다.

 

9. 7과 마찬가지로 Label을 만든다([그림 1-12]).

[그림 1-12] 레이블 추가

 

10. 저장한 다음 인터페이스 빌더를 종료한다.

 

11. 다시 원래 프로젝트 창으로 돌아와 Groups & Files 목록의 Classes 폴더 안에 있는 QuickStart ViewController.m을 선택하면 오른쪽의 편집 창에 소스 코드가 나타난다([그림 1-13]).

 

[그림 1-13] QuickStartViewController.m 화면

 

12. QuickStartViewController.m 소스 내용을 [소스 코드 1-1]과 같이 수정한다.

 

[소스 코드 1-1] QuickStartViewController.m
#import "QuickStartViewController.h"
@implementation QuickStartViewController
@synthesize myLabel;
- (IBAction) sayHello: (id) sender {
 NSLog(@"Hello....");
 self.myLabel.text = @"Hello";
}
- (void) dealloc {
 [super dealloc];
 [myLabel release];
}
@end

 

13. 마찬가지로 QuickStartViewController.h 파일을 열어 [소스 코드 1-2]와 같이 수정한다.

 

[소스 코드 1-2] QuickStartViewController.h
#import <UIKit/UIKit.h>
@interface QuickStartViewController : UIViewController {
 IBOutlet UILabel * myLabel;
}
@property (nonatomic, retain) IBOutlet UILabel * myLabel;
- (IBAction) sayHello: (id) sender;
@end

 

14. Xcode 메인 메뉴에서 [Build]-[Build]를 클릭하여 방금 작성한 프로젝트를 빌드한다.

 

15. QuickStartViewController.xib를 더블 클릭하여 인터페이스 빌더로 불러온다.

 

16. 뷰 캔버스에서 버튼을 선택한 후 인터페이스 빌더 메인 메뉴에서 [Tool]-[Inspector]를 선택하여 인스펙터 창을 띄운다([그림 1-14]). 인스펙터 창이 뜨면 두 번째 탭을 클릭하여 버튼 인스펙터를 띄운다([그림 1-15]).

 

[그림 1-14] 인스펙터 창

 

 

[그림 1-15] 버튼 인스펙터 창

 

17. 이벤트 목록에서 Touch Up Inside로 마우스 포인터를 옮긴 후 오른쪽의 동그라미를 도큐먼트 창의 File’s Owner로 드래그 앤 드롭한다. 이때 나타나는 팝업 창에서 sayHello:를 선택한다([그림 1-16]).
 
 

[그림 1-16] 버튼과 IBAction 연결하기

 

18. 뷰 캔버스의 레이블을 클릭하면 인스펙터 창의 내용이 레이블에 맞게 변경된다. 마찬가지 방식으로 New Referencing Outlet을 도큐먼트 창의 File’s Owner로 드래그 앤 드롭한 후 팝업 창에서 myLabel을 선택한다. 팝업 창에서 view를 선택하지 않도록 주의한다.

 

19. 저장하고 인터페이스 빌더를 종료한다.

 

20. Xcode 상에서는 현재 사용 중인 SDK로 iPhone Simulator 3.0과 Debug가 선택되어 있을 것이다([그림 1-17]).

 
[그림 1-17] 사용 중인 SDK로 iPhone Simulator 3.0과 Debug가 선택된 화면

 

21. Xcode 메인 메뉴에서 [Build]-[Build And Run]을 선택하면 방금 작성한 예제 애플리케이션이 iPhone 시뮬레이터에 설치된 후 동작한다([그림 1-18]).
 


[그림 1-18] iPhone 시뮬레이터에서 동작하는 예제 애플리케이션

 

22. Xcode 메인 메뉴에서 [Run]-[Console]을 선택하여 디버거 콘솔창을 띄운다.

 

23. 버튼을 클릭하면 레이블의 내용이 Hello로 바뀌며 디버거 콘솔창에 로그가 기록되는 것을 확인할 수 있다([그림 1-19]).
 


[그림 1-19] 버튼을 클릭한 후의 예제 애플리케이션 모습

 

 

 

예제로 배우는 핵심 패턴 아이폰 프로그래밍

제임스 브래넌 | 정기훈 옮김

정보문화사 2010.04.28



출처 : http://blog.naver.com/PostView.nhn?blogId=infopub&logNo=100108505592
Posted by 오늘마감

댓글을 달아 주세요

[출처] - http://www.cocoadev.co.kr/200




iPhone 어플리케이션은 Xcode란 개발툴에서 코코아터치 프레임워크와 Objective-C 언어를 사용하여 개발합니다. 코코아 터치는 맥 OS X의 핵심 프레임워크인 코코아를 기본으로 아이폰/터치라는 모바일 기기의 특성에 맞추어진 iPhone 개발의 기본 API입니다.

그렇기 때문에 아이폰 어플리케이션 개발을 위해 기본적으로 알아야할 사항은 통합개발 환경인 Xcode와 인터페이스 빌더라는 툴의 사용법, Cocoa Touch 프레임워크, Objective-C 크게 세가지입니다. 이번에는 간단히 iPhone OS의 계층구조를 중심으로 iPhone 어플리케이션 제작을 위해 접근하는 방법에 대해서 알아 보겠습니다.

1. iPhone OS 계층 구조
아래의 그림은 애플에서 설명하는 아이폰 OS의 기술 계층입니다. 이에 대한 자세한 내용은 아이폰 개발자 센터iPhone OS Technology Overview란 문서에 잘 정리되어 있습니다.


가장 로우레벨의 Core OS부터 가장 상위단계인 코코아 터치까지의 계층구조입니다. 주로 하단은 API가 C로 제공되며 상위로 올라 오면서 Objective-C로 제공됩니다. 많이 사용되는 로우레벨의 API들은 상위단계에서 쉽고 편하게 사용할 수 있는 프레임워크로 제공됩니다. 간 계층의 간단한 설명은 아래와 같습니다.

1) Core OS
메모리/프로세서 관리, 파일 시스템, 네트워크, 각종 하드웨어 드라이버등, 운영체제 하단의 커널 레벨에서 제공하는 커널 API 입니다. 흔히 이야기하는 시스템 프로그래밍에 관련된 C를 기반으로 한 라이브러리를 제공합니다.

2) Core Services
Core Foundation, CFNetwork, SQLite, POSIX threads와 같은 파일입출력, 저수준 데이터 타입, 소켓등에 관련된 서비스입니다. Core OS 레벨에 비교적 쉽게 접근할 수 있는 API를 제공합며 대부분 C로된 프레임워크를 제공됩니다. 여기서 제공하는 많은 기능들은 상단 코코아터치의 Foundation Framework에서 Objective-C 프레임워크로 제공됩니다.

  • Core Foundation - 배열, 스트링, 날짜, URL, 로우레벨 데이터등 아이폰 어플리케이션을 위한 기본적인 C API를 제공합니다.
  • CFNetwork - BSD 소켓 및 HTTP, FTP 프로토콜등 네트워크에 쉽게 접근할 수 있는 API를 제공하는 프레임워크입니다.
  • Core Location - GPS, 주변검색등에 사용할 수 있는 사용자의 현재 위치(위도, 경도) 정보와 관련된 API를 제공하는 프레임워크입니다.
  • SQLite - 아이폰 어플리케이션에서 쉽게 사용할 수 있는 파일기반의 경량 데이터베이스 입니다. SQLite에 관련된 보다 자세한 내용은 이전 포스팅을 참조해 주세요.
  • XML - XML 파싱을 위한 libXML2 라이브러리를 제공합니다.

이외에 보안, 주소록등에 관련된 서비스를 제공합니다.

3) Media
비디오, 오디오, 2D/3D 그래픽, 에니메이션을 구현할 수 있는 API를 제공합니다. Objective-C 또는 C로된 API를 제공합니다.

  • Quartz - OS X의 벡터를 기반으로 한 그래픽 엔진입니다. 선과 도형을 그리고 이미지, 비트맵, PDF를 출력하고 색상, 위치에 관련된 C로된 API를 Core Graphic 프레임워크를 통해 제공합니다.
  • Core Animation - 각종 에니메이션과 시각효과를 제공하는 Objective-C로된 프레임워크입니다.
  • OpenGL ES - 게임등과 같은 고성능의 2D/3D 그래픽 출력을 위한 OpenGL ES 1.1에 기반한 C 프레임워크입니다. OpenGL ES를 사용한 게임은 이를 지원하는 다양한 모바일 플랫폼에서의 포팅을 쉽게 할 수 있습니다. 자세한 내용은 공식 홈페이지를 참조하시기 바랍니다.
  • Core Audio - 마이크를 통해 녹음하고 음악파일을 출력하고 각종 음향효과를 제공하는 C로된 오디오 관련 프레임워크입니다.
  • OpenAL - OpenGL ES와 유사한 개념의 크로스 플랫폼을 지원하는 게임등을 위한 고성능 3D 오디오 라이브러리입니다. 자세한 내용은 공식 홈페이지를 참조 하시기 바랍니다.
  • 동영상 - mov, mp4, 3gp와 같은 각종 동영상 파일을 출력을 지원합니다. 이는 Objective-C를 기반으로 한 Media Player framework를 이용하여 손쉽게 접근할 수 있습니다.

4) Cocoa Touch
iPhone개발의 기본이 되는 계층으로 Objective-C를 기반으로 한 핵심적인 두개의 프레임워크를 가지고 있습니다. 사용자 인터페이스, 이벤트 처리등과 함께 위에서 언급한 로우레벨의 기술들을 보다 쉽게 사용할 수 있는 프레임워크를 제공합니다.

  • Foundation Framework - 배열, 스트링, 날짜 로우레벨 데이터등에 관련된 클래스를 제공하는 기본적인 프레임워크입니다. 위의 Core Foundation에서 제공하는 기본 API들의 Objective-C 레퍼 클래스를 제공합니다.
  • UIKit Framework -각종 컨트롤, 윈도우등의 UI, 이벤트 처리등 iPhone 어플리케이션의 사용자 인터페이스와 관련된 API를 제공하는 프레임워크입니다.


2. Mac or iPhone
Mac의 Cocoa와 iPhone의 Cocoa touch는 이름에서 부터 알 수 있듯이 매우 비슷합니다. 가장 큰 차이점은 역시 인터페이스에 관련된 부분으로 이와 관련하여 Mac에서는 AppKit이란 프레임워크를 iPhone에서는 UIKit이란 프레임워크를 제공합니다.

Foundation Framework는 거의 유사하지만 아이폰의 특성상 제거 또는 변경된 부분이 있습니다. 아이폰은 코코아 바인딩, Objective-C 2.0의 가비지 컬렉션, 애플스크립트, NSUndoManage등은 지원하지 않습니다.

개인적으론 시간이 충분하다면 맥에서 코코아 프로그래밍으로 시작한 후에 코코아 터치로 넘어가도 큰 어려움은 없을 것 같습니다.


3. C or Objective-C
대표적인 코코아 프로그래밍 서적인 Cocoa Programming for MAC OS X (번역본:코코아 프로그래밍)의 저자 아론 힐리가스는 그의 저서에서 아래와 같이 이야기 했습니다.

"C와 Java/C++같은 객체지향 언어를 알고 있다면 두시간이면 Objective-C를 마스터할 수 있다"

OOP와 프로그래밍 언어에 대한 개념만 있다면 Objective-C를 익히는 것은 쉽다라는 의미인 것 같습니다.

사실 어느 언어나 기본지식만 있으면 언어 자체를 익히는데는 그다지 어려움이 없습니다. 하지만 해당 플랫폼에 대한 지식과 핵심 라이브러리나 프레임워크를 배우는데 더욱 많은 시간을 소비해야 합니다. 아이폰도 Xcode, 인터페이스빌더의 사용법, OS X에서의 프로그래밍에대한 이해와 코코아 API를 배우는데 Objective-C 언어 자체를 배우는 것보다 더 많은 시간이 필요합니다.

1) C의 선행학습이 필요한가?
개발경험이 있으신 분들은 그동안의 경험을 바탕으로 어떻게 공부해야 할지 나름대로 방법이 있을 것입니다. 하지만 처음 시작하시는 분들은 Objective-C가 C를 기반으로 하고 있기 때문에, 반드시 C를 공부한 후에 Objective-C를 공부해야하는 지에 대해 질문을 하시는 분들이 있습니다.

이 부분은 아마 많은 분들이 차이가 있을 것 같습니다. 제 생각은 "반드시 필요하지는 않다" 입니다. Objective-C는 C에서 확장된 슈퍼셋이라고 하지만 Objective-C를 공부하기 위해 반드시 C를 먼저 공부해야 할 필요는 없을 것 같습니다.

C를 이해한 후에 Objective-C를 시작하는 것이 이론상으로도 맞고, 정상적인 방법일 것입니다. 하지만 대부분의 Objective-C 서적이나 메뉴얼에는 기본적인 문법에 대한 설명이 있고, 전문 C 서적보다는 범위가 작습니다. Objective-C를 사용할 수 있을 만큼 최소한의 문법만 알고 시작하는 것이 더 접근이 쉬울 것 같습니다.

아래는 iPhone 어플케이션의 샘플 소스중에 한부분입니다. 기존에 C/C++ 개발자들도 이런 Objective-C의 문법을 처음 보게되면, 이것이 C와 관련이 있고 C에서 확장되었다는 사실이 잘 이해가 가지 않을 것입니다.
 

처음 시작하시는 분이라면 차라리 이런 혼란을 피하고 코코아 어플리케이션을 바로 제작할 수 있는 Objective-C로 시작하는 것도 한 방법이라고 생각됩니다.

2) 접근방법
사실 가장 좋은 것은 아래와 같이 가장 로우레벨단계 부터 이해하고 올라 가는 것이 기초도 탄탄하고 가장 좋은 방법일 것입니다.

  1. 메모리/CPU등 컴퓨터 하드웨어에 대한 이해
  2. OS에 대한 이해
  3. 컴파일러에 대한 이해
  4. C언어
  5. 시스템 프로그래밍
  6. 자료구조/알고리즘
  7. Objective-C
  8. OOP, 디자인 패턴
  9. Cocoa API

위의 단계대로 차례로 지식과 실력을 쌓아서 접근하면 좋겠지만, 당장 아이폰 어플리케이션을 만들고 싶은데 지루하고 많은 시간을 필요로 합니다. 흥미를 잃지 않고 접근하는 방법은 위의 순서와 반대로 접근하는 것입니다.

Objective-C에 대한 메뉴얼을 대충(?) 한번 읽어 보고 바로 책, 웹사이트, 동영상등의 간단한 튜토리얼등을 따라해 보면서 실제 실행되는 모습을 보면 계속 흥미를 유지할 수 있습니다.

그후에 어느정도 감이 생기면 직접 만들고 싶은 어플리케이션을 목표로 잡습니다. 첫 목표는 과한 욕심은 버리고 간단하고 쉬운 어플리케이션 부터 시작합니다. 아무리 간단해도 따라해 보며 만들었던 것과는 달리 원하는 기능을 직접 구현하는 것은 매우 어렵습니다. 자료도 많이 찾아 보아야되고, 다른 샘플 소스에서 복사해 와야 하는 경우도 있고, 관련 커뮤니티를 통해 도움을 받을 수도 있습니다. 관련자료들은 이전의 iPhone 어플리케이션 개발을 위한 준비 - 3. 관련 자료 포스팅을 참고하시기 바랍니다.

우여곡절끝에 만들어 내면 부족한면이나 필요한 부분이 무엇인지 조금씩 보이게 될 것 입니다. 필요에 의해 공부를 하다보면 아마 위의 순서를 거슬러 올라 접근하게 되는 경우가 많을 것 같습니다. 그러면 차차 복잡하고 어려운 어플리케이션을 만들 수 있을 것입니다.

막상 처음 시작하게 되면 알아야 할 것은 많고 답답한 마음만 드실 것입니다. 하지만 안타깝게도 왕도는 없습니다. 흥미와 열정을 유지하면서 차근차근 해 나가다 보면 어느새 바라는 어플리케이션을 만들수 있는 날이 눈앞에 와있을 것 입니다.

간혹 주위에 개발경험이 전혀 없는 분들로 부터 "무엇부터 시작해야 아이폰 어플리케이션을 만들 수 있냐?"는 질문을 들으면서 이와 관련해서 간단히 포스팅을 해보아야 겠다고 생각했습니다.

정리는 해보았는데 역시 어렵네요. 제가 봐도 이상한 용어들만 난무하고 설명도 중구난방이고, 개발을 처음 하시는 분들이 보면 잘 이해가 안가실 것 같다는 생각이 듭니다.

* 관련링크
iPhone 어플리케이션 개발을 위한 준비 - 1. 하드웨어
iPhone 어플리케이션 개발을 위한 준비 - 2. 소프트웨어
iPhone 어플리케이션 개발을 위한 준비 - 3. 관련 자료
iPhone 어플리케이션 개발을 위한 준비 - 4. 시작하기

출처 : http://blog.naver.com/PostView.nhn?blogId=seogi1004&logNo=110085696098
Posted by 오늘마감

댓글을 달아 주세요

iPhone 개발을 위해서는 개발툴인 XCode(Visual Studio와 같은개념)iPhone SDK3.0(.Net Compact Frame work와 같은개념)이상을 설치해야한다.

물론 운영체제인 OSX10.5.7 이상버젼이 설치되어 있어야함은 말할 필요도 없다. 스티브 잡스 아저씨가 이거 외에는 절대 개발 안된다고 했다.

 

설치는 이미 완료되었다는 가정하에 진행하겠다. (사실 설치는 컴맹이 아니면 설치파일 클릭하고 다음,다음 누르다보면 완료된다.)

 

설치된 XCode를 실행해보자. 저자도 사실 처음 설치하고 어디있는지 좀 헤매었다. 윈도우 탐색기와 같은 Finder를 실행시킨다.(아래 이미지 아이콘)

[그림1]

 

XCode실행 파일의 위치는 Developer>Applications 에 위치하고 있다.

 

[그림2]

[그림3]

[그림4]

[그림4]XCode 파일을 더블클릭한다.

실행이 되면 아래 네모부분처럼 하단에 아이콘이 생성된다. 파란 종이위헤 망치모양(장도리?) 아이콘이다.

 

[그림5]

그리고 상단의 메뉴역시 XCode메뉴로 변경이된다.

[그림6]

[Welcom To XCode]라고 적힌 프로젝트 시작화면이 뜨는데 그냥 닫기를 누른다.

 

[File]메뉴의 [New Project…]를 클릭한다.

[그림7]

[그림8]

 

[그림8] 에서 처럼 [View-based Application]을 선택하고 [Choose…]를 클릭한다.

 

[그림9] 에서 처럼 프로젝트명을 입력합니다. 저자는 GoMediHomePage 라는 명칭을 입력했습니다.

[그림9]

다음과 같이 XCode가 파일들을 생성하게됩니다.

[그림10]

왼쪽 TreeGroup&Files 메니져입니다. 오른쪽 상단은 왼쪽에 선택된 영역에 속하는 파일들이 보여지고 그 하단은 파일의 상세 내용 또는 소스코드가 보여지게 됩니다.

[그림10]은 현재 왼쪽 Tree의 최상단이 선택되어 있으므로 프로젝트내의 모든 파일들이 표시된 상태입니다.

[그림11]

[GoMediHomePageViewController.xib] 파일을 더블 클릭합니다. 이파일은 화면 디자인을 하는 파일이라고 생각하시면 됩니다.

[그림12]

 

[그림12]과 같이 인터페이스 빌더가 실행이됩니다. 왼쪽창은 문서윈도우 이며 오른쪽 빈 창은 뷰 디자인 윈도우 입니다.

 

[그림13]

상단 메뉴의 [Tools][Library][Inspector]를 실행합니다. 단축키는 [윈도우키+Shift+L] [윈도우키+Shift+I] 입니다.

[그림14]

아래와 같이 창이 열립니다. 인스펙터창은 Visual Studio 의 속성창과 비슷하고 Library창은 도구상자와 비슷한 개념입니다.

 

[그림15]

라이브러리 창에서 [Label] [Round Rect Button] [UIImageView] 를 각각 끌어다가 View윈도우에 놓습니다.

결과는 [그림16] 과 같습니다.

[그림16]

버튼을 클릭하고 인스펙터 창에서 [Title]부분을 다음과 같이 수정합니다. 그리고 버튼 크기도 적당히 드래그하여 늘여줍니다.

[그림17]

[그림18]

라벨 또한 Text 수정합니다.

 

UIImageView 에 추가할 이미지를 리소스에 추가합니다. 웹에서 적당한 이미지를 다운로드받고 Finder에서 끌어다가 Resources폴더에 드래그해서 떨구어줍니다.

 

[그림19]

 

[그림20]

카피할것인지 물어봅니다. [Add]를 클릭합니다.

 

다시 왼쪽창에서 Tree 최상단을 클릭하고 [GoMediHomePageViewController.xib] 파일을 더블 클릭합니다.

다시 View윈도우의 [UIImageView]를 클릭하고 인스펙터 창의 Image 부분의 콤보박스를 클릭하면 조금전에 추가한 이미지의 파일명이 뜨게 됩니다. 이것을 선택하면 해당 이미지가 이미지뷰에 뜨게 됩니다. 역시 적당한 크기와 위치로 드래그해 줍니다.

 

[그림21]

[그림22]

[그림23]

[그림24]

문서윈도우에서 닫기 버튼을 클릭합니다.(빨강,주황,초록 버튼 중 빨간 동그라미 부분) [그림24]와 같이 저장여부를 물어옵니다. [Save]를 클릭해서 저장해줍니다.

[그림25]

[그림25] 의 -(IBAction) onGoToMediexpert; 부분을 헤더파일에 추가합니다. 홈페이지로 이동하는 버튼을 클릭했을 때 쓰일 이벤트를 헤더파일에 선언하는 것입니다. 그리고 저장합니다.

[그림26]

반드시 [그림26]과 같이 저장을 해야 다음단계에서 이벤트가 뜨게됩니다. (단축키는 [윈도우키+S]입니다.)

그다음 다시 [GoMediHomePageViewController.xib] 파일을 더블 클릭합니다.

그리고 [그림27]과 같이 문서윈도우의 [File’s Owner]에서 마우스 오른쪽 버튼을 클릭하면 방금전에 헤더파일에 선언했던 [onGoToMediexpert] 이벤트가 뜨게 됩니다.

[그림27]

[그림28]

이벤트의 오른쪽에 빈동그라미 부분을 드래그해서 이벤트가 발생할 객체인 [메디엑스퍼트 홈페이지] 버튼으로 드래그해서 놓습니다. 그럼 이벤트와 버튼이 연결되는것입니다. 이때 버튼에는 이벤트가 여러 개 있는데 이중에서 버튼이 눌러졌다가 놓일 때 발생하는 이벤트인 [Touch Up Inside]를 선택해줍니다.

[그림29]

[그림30]

이 같은 과정의 결과로 [그림31]과 같이 이벤트와 버튼이 연결된 것을 볼 수 있습니다.

굉장히 직관적인 과정이죠? 검은색의 상자를 왼쪽상단 X 버튼을 눌러 닫습니다.

 

[그림31]

마찬가지로 문서윈도우 닫기 버튼을 클릭하고 저장을 합니다.

[그림32]

[GoMediHomePageViewController.m] 파일의 제일 마지막 부분에 [그림32]과 같이 코딩을 합니다.

@end윗 부분의 -(IBAction) 부분..

이제 완성되었습니다. 컴파일하고 실행시켜보겠습니다.

 

[그림33]

[그림34]

[그림33]를 클릭하고 [그림34]처럼 모두 저장을 클릭합니다.

[그림35]

컴파일이 오류없이 정상적으로 완료되면 XCode 창 오른쪽 하단에 Suddeeded라는 표시가 뜨게되고 아이폰 에뮬레이터가 뜨게됩니다.

 

[그림36]

버튼을 클릭하면 브라우져를 통해 홈페이지가 뜨게 됩니다. 이때 [Alt]키와 마우스 드래그를 통해 그 유명한 멀티터치로 풀브라우징 되는 홈페이지를 확대 또는 축소해서 보실수 있습니다.

[그림37]

 

종료는 상단의 에뮬레이터 메뉴에서 종료를 하셔도 되고 하단의 실행중인 아이콘에서 마우스 오른쪽 버튼을 클릭해서 [그림37]과 같이 종료하여도 됩니다.

 

문서의 내용이 다소 긴듯하지만 차근차근 반복하시다보면 쉽게 익히실 수 있을듯합니다.

이상  Goldrush였습니다.

 

감사합니다.

 

[인용시 출처를 밝혀주세요.]

 



출처 : http://blog.naver.com/PostView.nhn?blogId=goldrushing&logNo=130085734179
Posted by 오늘마감

댓글을 달아 주세요

아이폰어플개발정보2010. 6. 21. 18:30
[펌]iPhone 어플리케이션 개발을 위한 준비 - 4. 시작하기
iPhone 어플리케이션은 Xcode란 개발툴에서 코코아터치 프레임워크와 Objective-C 언어를 사용하여 개발합니다. 코코아 터치는 맥 OS X의 핵심 프레임워크인 코코아를 기본으로 아이폰/터치라는 모바일 기기의 특성에 맞추어진 iPhone 개발의 기본 API입니다.

그렇기 때문에 아이폰 어플리케이션 개발을 위해 기본적으로 알아야할 사항은 통합개발 환경인 Xcode와 인터페이스 빌더라는 툴의 사용법, Cocoa Touch 프레임워크, Objective-C 크게 세가지입니다. 이번에는 간단히 iPhone OS의 계층구조를 중심으로 iPhone 어플리케이션 제작을 위해 접근하는 방법에 대해서 알아 보겠습니다.

1. iPhone OS 계층 구조
아래의 그림은 애플에서 설명하는 아이폰 OS의 기술 계층입니다. 이에 대한 자세한 내용은 아이폰 개발자 센터iPhone OS Technology Overview란 문서에 잘 정리되어 있습니다.


가장 로우레벨의 Core OS부터 가장 상위단계인 코코아 터치까지의 계층구조입니다. 주로 하단은 API가 C로 제공되며 상위로 올라 오면서 Objective-C로 제공됩니다. 많이 사용되는 로우레벨의 API들은 상위단계에서 쉽고 편하게 사용할 수 있는 프레임워크로 제공됩니다. 간 계층의 간단한 설명은 아래와 같습니다.

1) Core OS
메모리/프로세서 관리, 파일 시스템, 네트워크, 각종 하드웨어 드라이버등, 운영체제 하단의 커널 레벨에서 제공하는 커널 API 입니다. 흔히 이야기하는 시스템 프로그래밍에 관련된 C를 기반으로 한 라이브러리를 제공합니다.

2) Core Services
Core Foundation, CFNetwork, SQLite, POSIX threads와 같은 파일입출력, 저수준 데이터 타입, 소켓등에 관련된 서비스입니다. Core OS 레벨에 비교적 쉽게 접근할 수 있는 API를 제공합며 대부분 C로된 프레임워크를 제공됩니다. 여기서 제공하는 많은 기능들은 상단 코코아터치의 Foundation Framework에서 Objective-C 프레임워크로 제공됩니다.

  • Core Foundation - 배열, 스트링, 날짜, URL, 로우레벨 데이터등 아이폰 어플리케이션을 위한 기본적인 C API를 제공합니다.
  • CFNetwork - BSD 소켓 및 HTTP, FTP 프로토콜등 네트워크에 쉽게 접근할 수 있는 API를 제공하는 프레임워크입니다.
  • Core Location - GPS, 주변검색등에 사용할 수 있는 사용자의 현재 위치(위도, 경도) 정보와 관련된 API를 제공하는 프레임워크입니다.
  • SQLite - 아이폰 어플리케이션에서 쉽게 사용할 수 있는 파일기반의 경량 데이터베이스 입니다. SQLite에 관련된 보다 자세한 내용은 이전 포스팅을 참조해 주세요.
  • XML - XML 파싱을 위한 libXML2 라이브러리를 제공합니다.

  • 이외에 보안, 주소록등에 관련된 서비스를 제공합니다.

    3) Media
    비디오, 오디오, 2D/3D 그래픽, 에니메이션을 구현할 수 있는 API를 제공합니다. Objective-C 또는 C로된 API를 제공합니다.

    • Quartz - OS X의 벡터를 기반으로 한 그래픽 엔진입니다. 선과 도형을 그리고 이미지, 비트맵, PDF를 출력하고 색상, 위치에 관련된 C로된 API를 Core Graphic 프레임워크를 통해 제공합니다.
    • Core Animation - 각종 에니메이션과 시각효과를 제공하는 Objective-C로된 프레임워크입니다.
    • OpenGL ES - 게임등과 같은 고성능의 2D/3D 그래픽 출력을 위한 OpenGL ES 1.1에 기반한 C 프레임워크입니다. OpenGL ES를 사용한 게임은 이를 지원하는 다양한 모바일 플랫폼에서의 포팅을 쉽게 할 수 있습니다. 자세한 내용은 공식 홈페이지를 참조하시기 바랍니다.
    • Core Audio - 마이크를 통해 녹음하고 음악파일을 출력하고 각종 음향효과를 제공하는 C로된 오디오 관련 프레임워크입니다.
    • OpenAL - OpenGL ES와 유사한 개념의 크로스 플랫폼을 지원하는 게임등을 위한 고성능 3D 오디오 라이브러리입니다. 자세한 내용은 공식 홈페이지를 참조 하시기 바랍니다.
    • 동영상 - mov, mp4, 3gp와 같은 각종 동영상 파일을 출력을 지원합니다. 이는 Objective-C를 기반으로 한 Media Player framework를 이용하여 손쉽게 접근할 수 있습니다.

    • 4) Cocoa Touch
      iPhone개발의 기본이 되는 계층으로 Objective-C를 기반으로 한 핵심적인 두개의 프레임워크를 가지고 있습니다. 사용자 인터페이스, 이벤트 처리등과 함께 위에서 언급한 로우레벨의 기술들을 보다 쉽게 사용할 수 있는 프레임워크를 제공합니다.

      • Foundation Framework - 배열, 스트링, 날짜 로우레벨 데이터등에 관련된 클래스를 제공하는 기본적인 프레임워크입니다. 위의 Core Foundation에서 제공하는 기본 API들의 Objective-C 레퍼 클래스를 제공합니다.
      • UIKit Framework -각종 컨트롤, 윈도우등의 UI, 이벤트 처리등 iPhone 어플리케이션의 사용자 인터페이스와 관련된 API를 제공하는 프레임워크입니다.


      • 2. Mac or iPhone
        Mac의 Cocoa와 iPhone의 Cocoa touch는 이름에서 부터 알 수 있듯이 매우 비슷합니다. 가장 큰 차이점은 역시 인터페이스에 관련된 부분으로 이와 관련하여 Mac에서는 AppKit이란 프레임워크를 iPhone에서는 UIKit이란 프레임워크를 제공합니다.

        Foundation Framework는 거의 유사하지만 아이폰의 특성상 제거 또는 변경된 부분이 있습니다. 아이폰은 코코아


출처 : http://blog.naver.com/PostView.nhn?blogId=minny0109&logNo=150044206980
Posted by 오늘마감

댓글을 달아 주세요