Nano Blog - 오병우

cocos2d에서 UIKit을 사용하기 위한 튜토리얼


http://www.raywenderlich.com/4817/how-to-integrate-cocos2d-and-uikit


cocos2d 프로젝트를 만든 후에 첫 화면은 닙 파일로부터 만들어 지게 하고,

버튼을 누르면 cocos2d scene을 로드 한다.


그 위에 UIKit View(UIButton)를 overlay한다.

cocos2d와 UIView를 같이 쓸 수 있도록 랩퍼 클래스를 만든 분이 있다.


cocos2d를 사용하면 그래픽 처리에 좋고, UIView를 사용하면 애플의 미려한 인터페이스를 사용할 수 있어서 이 두 가지의 장점을 합칠 수 있을 듯....


http://www.cocos2d-iphone.org/forum/topic/6889


cocos2d 2.0에서 사용하려면 sharedDirector 에서 openGLView를 얻던 것을 그냥 view를 얻어야 하는 듯...


[[[CCDirector sharedDirector] view] addSubView:uiItem];



물결 효과를 cocos2d에서 CCSprite처럼 사용할 수 있도록 클래스로 만들어 공개한 분이 있다.

이론적으로는 싸인 파형을 이용했다.

sin(x) / x 였던 듯...


http://www.youtube.com/watch?v=d5ijwDEfZSw&lr=1&feature=mhee

https://github.com/Birkemose/rippleDemo

http://www.cocos2d-iphone.org/forum/topic/25090


에뮬레이터에서는 정상동작하는데 iPod touch 2.5세대에서 돌리려니 에러가 발생했다.

Build Settings에서 Architecture를 Standard (armv6 armv7)으로 변경하니 정상(?)동작했다. 근데 너무 느리다...



<iOS Human Interface Guidelines>

http://developer.apple.com/library/ios/#documentation/userexperience/conceptual/mobilehig/IconsImages/IconsImages.html


주로 사용하는 것만 정리하면 다음과 같다.


 

 iPhone

 iPhone 4S

 iPad

 New iPad


 Default.png

320 * 480 

640*960 

768*1004 (P)

1024*748 (L) 

1536*2008(P)

 2048*1496(L)

 

 Icon.png

57 * 57 

114 * 114 

72*72 

144*144 

 

 앱스토어용 Icon

512*512 

1024*1024 

512*512 

1024*1024 

 

[Tab Bar Icon].png

24 * 22 

(30*30 정도)

(60*60 정도) 

(30*30 정도) 

(60*60 정도) 

배경: 투명, 보이는 이미지 색: 검정색

 

 

 

 

 

 


Icon-72.png: 72x72

Icon-Small-50.png: 50x50

Icon-Small.png: 29x29

Icon-Small@2x.png: 58x58

Icon@2x.png: 114x114


iTunesArtwork

CDC에서 상속 받아서 CMemDC 만들어서 사용하는 방법


http://www.codeproject.com/Articles/33/Flicker-Free-Drawing-In-MFC

Cocoa는 Objective-C 또는 Objective-C++ 언어를 사용하기 위한 Application Frameworks 이다.


Application Frameworks는 지난 글에 설명한 바와 같이 응용 프로그램이 기본적으로 동작하는 틀(프레임)을 제공하여, 프로그래머가 응용 프로그램에서 만들고자 하는 Business Logic의 설계 및 구현에만 전념할 수 있도록 도와 준다.


응용 프로그램을 작성할 때 백지상태의 처음부터 모든 프로그램을 직접 짤 필요 없이, 응용 프로그램이 기본적으로 동작하기 위한 구조 위에 필요한 부분만을 구현하여 얹어 놓을 수 있도록 해준다.


객체 지향 개념과 소프트웨어 공학에 대한 이해가 깊다면 쉽게 이해할 수 있다.


Cocoa는 Model 또는 Document 역할의 Foundation frameworks와 View 역할의 Application frameworks로 나뉜다.


- Foundation frameworks는 데이터, 파일, 메모리 등 담당

- Application frameworks는 UI (User Interface) 관련 컨트롤, 이벤트 처리 제공


XCode에서 프로젝트 생성시에 Cocoa 응용 프로그램을 선택하여 만들고 Command + Enter로 실행해 보자.


<Homework>

1. MFC의 Document/View 구조에 대해 조사하라.

2. Design Patterns에 대해 간략히 조사하라.

3. Design Pattern에서 MVC (Model-View-Controller)에 대해 자세히 조사하라.

'프로그래밍 > iOS 프로그래밍' 카테고리의 다른 글

물결 효과 (cocos2d)  (0) 2012.06.20
이미지 크기 (작성중)  (0) 2012.06.17
Application Frameworks 란 무엇인가  (0) 2012.05.15
Cocoa, Carbon, Quartz 등의 용어들  (0) 2012.05.15
XCode - Mac의 개발툴  (0) 2012.05.15

초창기에 MS에서 윈도우즈 프로그램을 개발하기 위해서는 메세지 처리, 윈도우 생성 등의 과정을 모든 프로그램에서 유사하게 반복적으로 작성해 줘야 했다.


MS에서는 윈도우즈 프로그래머들의 편의를 위해서 매번 반복하던 작업들을 묶어서 틀(프레임, 와꾸?)을 제공하기 위한 프로젝트를 진행했는데 이름이 AFX이다. Applicarion Frameworks의 줄임말이다.  X는 어디서 튀어 나왔을까? 여기서 X는 "~크" 발음에 해당한다. (크리스마스 X-mas)

참고로, 컴퓨터 분야에서 X는 trans- 라는 통신의 의미로도 자주 사용된다. (오늘의 퀴즈: Mac OS X의 X는 무슨 의미라고 했는지 기억나세요?)


다시 MS로 돌아와서, 프로젝트의 멋진 이름인 AFX는 발표할 때는 MFC (Microsoft Foundation Class)라는 MS는 들어가지만 가슴에 와 닿지 않는 이름으로 변경되는 설움을 겪는다. MFC는 MS가 만들어 준 기반 클래스라는 뜻이라서 응용 프로그램을 만들 때 쓰이는 틀이라는 의미가 축소되었다. 그렇다고 AFX라는 개발 당시의 이름을 모두 바꾸기는 힘들었는지 그대로 발표되어, 아직도 윈도우즈에서 MFC 프로그래밍하다 보면 Afx prefix(접두사)를 많이 만나게 된다.


이제 Mac OS X 얘기를 해보자. 지난 글에 설명한 운영 체제의 전체 구조에서 보면 Application Frameworks Layer(계층)가 있다. 앞서 설명한 MFC와 같이 응용 프로그램을 개발하기 위한 틀, 프레임, 기본적인 구조 역할을 해주는 것이다.


운영 체제에서 동작하는 기본적인 응용 프로그램의 기능들은 모두 제공을 해주므로, 프로그래머는 응용 프로그램에서 만들고자 하는 Business Logic에만 전념할 수 있다.


운영 체제에서 동작하는 응용 프로그램들이 유사한 인터페이스를 제공하고 유사하게 사용할 수 있도록 해주는 기능도 가지고 있다.


<Homework>

1. MS 윈도우즈에서 API 프로그래밍 방법과 MFC 프로그래밍 방법에 대해 비교하라.

2. 객체 지향 개념에서 상속의 개념에 대해 복습하라.

3. MS 또는 애플사에서 만들어 준 틀(AFX)이 그대로 동작하면서 그 소스를 뜯어 고치지 않으면서도, 응용 프로그래머가 원하는 부분을 바꿀 수 있도록 해주는 방법을 생각해 보라. (Hint: 2번 객체 지향 개념의 상속 참고)

'프로그래밍 > iOS 프로그래밍' 카테고리의 다른 글

물결 효과 (cocos2d)  (0) 2012.06.20
이미지 크기 (작성중)  (0) 2012.06.17
Cocoa 란 무엇인가 (Mac OS X)  (0) 2012.05.15
Cocoa, Carbon, Quartz 등의 용어들  (0) 2012.05.15
XCode - Mac의 개발툴  (0) 2012.05.15

XCode를 설치하고 실행했지만 당황스럽게 다양한 용어가 나온다.


아이폰이나 아이패드에서 프로그래밍하고 싶다는 일념하에 어렵게 해킨토시를 설치하거나 큰 맘 먹고 맥을 구매하였다면 먼저 우리가 만들 응용 프로그램이 어떤 곳에서 동작할지 운영 체제에 대해 알아봐야 한다.


MS의운영 체제 이름이 Windows인 것 처럼 맥의 운영 체제 이름은 Mac OS X이다. X는 로마자 10이다. Mac OS 9의 다음 버전이라는 의미이다.


시스템을 설계할 때는 주로 계층 구조를 많이 사용하는데 맥의 개발자 사이트에서도 Mac OS X를 계층 구조로 설명하고 있다.


애플사의 개발자 사이트 주소는 다음과 같다.

http://developer.apple.com/


위의 사이트에 들어가서 Mac OS X의 구조를 보면 Aqua, Spotlight, Cocoa, Carbon, Quartz, Darwin 등의 용어가 있음을 알 수 있다.


처음에 모두 알 필요는 없지만 어떤 것들이 있는지와 간단한 역할 정도는 알아두어야 한다.


<Homework>

Mac OS X의 전체적인 구조에 대해 조사하고 각 부분의 역할을 설명하라.

'프로그래밍 > iOS 프로그래밍' 카테고리의 다른 글

물결 효과 (cocos2d)  (0) 2012.06.20
이미지 크기 (작성중)  (0) 2012.06.17
Cocoa 란 무엇인가 (Mac OS X)  (0) 2012.05.15
Application Frameworks 란 무엇인가  (0) 2012.05.15
XCode - Mac의 개발툴  (0) 2012.05.15

Mac의 XCode는 MS의 Visual Studio라고 생각하면된다.

IDE (Integrated Development Environment)라고 한다. 개발 환경인데 개발에 편리하도록 많은 기능을 가지고 있다고 보면된다. 요즘엔 당연하게 생각이 되겠지만, UNIX에서 프로그래밍 해본 사람이라면 vi에서 소스 편집하고 쉘에서 gcc 돌려서 컴파일하고 gdb 써서 디버그하고 이런 과정을 하나의 일관된 인터페이스로 할 수 있는 개발 환경에 감사할 수 있을 것이다.

Visual Studio, Embedded Visual Studio, Eclipse, Delphi 등과 같이 XCode도 IDE 환경이다.

XCode를 활용하여 맥용 응용 프로그램, 아이폰, 아이팟 터치, 아이패드 등의 응용 프로그램을 만들 수 있다.

맥미니, 맥북, 아이맥 제품을 사면 들어있는 설치 DVD로 설치할 수 있다. 업데이트가 나와 있다면  자동으로 업데이트가 설치될 것이다. 안된다면 화면 왼쪽 위의 사과(애플 로고)를 눌러서 소프트웨어 업데이트 하면 된다.

기본 설치 위치는 \Developer\Applications 이다.

MS의 탐색기와 같은 Finder를 통해 해당 위치에 가보면 XCode와 Interface Builder 등을 볼 수 있다.

XCode를 실행하고 기본 프로젝트를 만든 후에 Command + Enter 를 누르면 Build 과정을 거친 후에 만들어진 응용 프로그램을 실행한다.

XCode 4.0 이전에는 Interface Builder가 따로 있었으나 이후에 통합되었고 4.2부터는 Story Board 등을 사용할 수 있도록 더욱 강력해 졌다.무슨 말인지 이해하지 못해도 되니, 일단 무작정 XCode를 실행하여 이것 저것 만들어 보자.


<Homework>

Cross-Compiler를 설명하기 위한 1페이지 분량의 프리젠테이션을 작성하라.

- 본인이 직접 그린 그림을 포함할 것 (머리 속에 먼저 생각하고 노트에 이리 저리 그려 본 후에 컴퓨터에서 작업할 것)

- 애니메이션 효과 활용 가능 (단, 너무 화려하지 않도록 주의할 것, 프린트 했을 때 알아볼 수 있도록 - 겹쳐짐 등이 없이 - 프린트되어야 함.)