XCode2009.12.11 09:33

우선 결과 화면부터 보면.. 다음 그림과 같습니다.






이전의 HelloWorld와 비슷한데요, 


우선  Xcode에서 MainWindow.xib를 더블클릭 하여 IB 를 실행한 후 다음처럼 뷰, 텍스트필드와 버튼을 올려놓습니다.


UIView는 이름을 view, UITextField는 이름을 textField 로, UIButton은 button 으로 이름을 정하였고, 다음처럼 View Identify에 아울렛 설정을 합니다.





버튼 액션은 TouchDown에 button_TouchDown에 걸었습니다.

그리고, IB에서 File-Write Class Files를 선택하고, 파일명을 view 라고 지정 합니다.


소스를 다음과 같이 입력합니다.


view.h 파일



view.m 파일



이렇게 해서  Command + R 을 누르면, 첫 화면처럼 결과가 나옵니다.


이렇게 해 보면서 특이한점은 스트링 비교 할때 if(name=="") 처럼은 안되고, 닷넷의 equals와 비슷한 방식으로 메서드를 이용해서 비교 하는게 특이합니다. 또한, 마지막에 name, alert 은 release해 줬는데, msg는 안해줬습니다.

명시적으로 메모리 할당을 하지 않으면 가비지 컬렉터에게 수집당하기 때문입니다. 이상한건, 가비지 컬렉터가 수집하더라고 임의로 릴리즈를 해 주니깐, 어플이 다운되어 버리더라고요... 참.. 이상합니다.

저작자 표시 비영리 동일 조건 변경 허락
신고
Posted by dotnetpower
VB.NET2009.06.12 17:35

Web 은 ASP.NET MVC가 나오면서, 자연스럽게 지원이 되는데 어플리케이션 쪽으로는 공식 지원이 없네요..

나중에 어떻게 될지 혼자 상상해 봅니다. ^^

얼마전 회사 10주년 창립기념일이라고 IPOD Touch 를 선물 받았습니다. 해킹해서 쓰다보니 어플을 만들고 싶다는 생각이 들었고, 좋은 아이템을 하나 생각해 냈죠. 포트리스 같은 게임..

그 게임을 만들고자 디자이너(사실은 플래셔)를 꼬셔 우리 같이 개발해서 팔자고 했죠...

VMWare로 개발환경을 구축하던중 20번 가량의 노력에도 불구하고 환경 설정이 실패 했습니다.

빨리 Hello World를 XCode로 띄워 보고 싶었던 1인 이라.. 맥북을 보기 시작했죠..

어차피 업무중엔 맥을 쓸 일이 없었기에 지하철에서만 하려고 질렀습니다. 200백을 들여서... 물론 디자이너 분도 꼬드겨서 그분 마눌님과의 앞으로 4년동안 전자제품 구입할수 없다는 약속과 허락과 함께 같이 질렀습니다.

Hello World를 찍어보곤... 드는생각... 어? 생각보다 어렵네...

왜냐면 처음보는 Outlet 이라는 개념이 있었습니다. C 언어를 객체지향으로 만든 Objective-C 라서 비슷하겠지 라고 생각했지만.. 이상한 아울렛..

암튼.. 그 아울렛이 뭐냐면, MVC 모델의 개발 환경에서 View 에서 발생되는 이벤트를 클래스로 전달하기 위한 대리자 역할을 했던 넘 입니다.

왜 하필 그런 방식으로 했을까 라고 생각했지만, Windows Application 을 MVC 패턴으로 개발하기 위해서는 무언가가 필요하더군요... 아직 상상속에서만 개발 하고 있지만.. ㅡㅡ;

자료를 찾던중 Mark D'Aoust 라는 사람이 DevX.com에 쓴 글이 있네요..

Coordinate User Interface Development with VB.NET and the MVC Pattern

보니깐, 아울렛을 Event 로 처리 했는데, Observer 패턴으로 처리를 했네요...

아주 적합한 선택이라 생각이 듭니다.


주저리 주저리 적어봤는데... 아마도 제 예상이 맞다면 닷넷 프레임웍이 발전하면서 Windows Application MVC 를 위해서는 아마도 Event Raise 방식의 Observer 패턴으로 가야 하지 않을까 싶어서 몇자 적어봤습니다.



아.. 맥북 지르고 Hello World 만 찍어봤네요.. ㅠㅠ 절대 지르지 마셈... 생각 보다 어렵습니다. 그리고 게임 개발을 위한 그래픽 처리도 문제구요.. ㅠㅠ
저작자 표시 비영리 동일 조건 변경 허락
신고
Posted by dotnetpower
TAG MVC, XCode, 맥북
XCode2009.04.08 14:04

이번에는 저번 시간에 얘기 했던 Hello World를 Interface builder를 이용해서 View에 나타나도록 해 보겠습니다.


이름이 HelloWorld2 라는 프로젝트를 생성합니다.(생성 방법은 이전 강좌 참조)


프로젝트를 생성 하면 Resources 폴더에 MainWindow.xib 파일이 자동 생성 됩니다.

이 파일이 하는 역할이 실제 iPhone에서 화면에 보여지는 View들을 비주얼하게 작성할수 있는 파일입니다.

이 파일을 더블클릭 합니다



더블클릭하면 다음과 같은 Interface Builder창이 뜨게 됩니다.




혹시나 이중에 Window Identity 창이 안뜰 경우도 있는데 이때는 메뉴에서 [Tools]-[Inspector]를 선택하면 열리게 됩니다.


우선 윈도우에 View를 하나 추가 해야합니다. Library 화면 모양이 다를경우 하단에 속성을 보고 참고 하시면 됩니다.



위 그림과 같이 UIView를 선택하여 드래그 해서 윈도우에 넣습니다. 윈도우에 View를 추가 하면 아래와 같은 모양의 화면이 됩니다.



이어서 UILabel, UIButton을 아래 그림처럼 넣어 보세요.



그리고 이제 View에 Oulet, Action을 추가 해야합니다. 우선 View이름을 mainView로 수정하고 Oulet과 Action을 추가 해 봅시다. 아래 그림처럼 따라 하시면 됩니다.(우선 버튼이나 레이블이 아닌 바탕영역을 클릭하고, View Identity창에서 입력합니다)

View 클래스명은 mainView, Action에는 btnClick, Oulet에는 lblText, type에 UILabel




이제부터 중요합니다. XCode에서는 기존 윈도우 프로그래밍과 다르게 코드와 Window를 역어줄 무언가가 필요합니다.

중간 단계를 하는 녀석이 Oulet이며, Action도 위에서 정한 이름으로 매핑 시켜야 합니다. 매핑 방법이 좀 특이하니 화면을 잘 보시기 바랍니다.





View Connections 창에서 lblText의 우측 동그라미를 클릭후 창의 Label로 드래그 하여 연결시켜 줍니다.




버튼의 경우 연결하면 위 그림처럼 메뉴가 나오는데 Touch Down을 선택합니다. 그러면 아래와 같은 View Connections화면이 될것입니다.



그러면 실제 화면은 모두 만들었습니다. 이렇게 만든 화면에서 우리가 지정한 View Connections 부분을 클래스 파일로 저장을 시켜야 하는데, 윈도우에서 레이블이나 버튼이 아닌 흰 바탕을 클릭하고 [File]-[Write Class Files]를 선택하고 Save를 합니다.



이때 아래와 같이 현재 프로젝트에 소스를 추가 할것인지 묻는 창이 나타나는데, 체크박스에 체크하고 Add를 선택합니다.




그러면 아래와 같이 mainView.h, mainView.m 파일이 추가된 것을 볼수 있습니다.



이 파일의 위치를 아래 그림과 같이 Classes 폴더로 이동 시킵니다.


이제부터 코딩을 합니다. ㅡ..ㅡ;


윈도우 프로그래밍에 비해서 아주 번거로운 작업이 필요하죠? ^^;


mainView.h파일의 소스를 아래와 같이 바꿔 줍니다.




그리고 mainView.m을 아래와 같이 코딩합니다.






모두 되었습니다.


저장하고 실행을 하시면 아래 처럼 정상적으로 iPhone Simulator이 실행이 되고



버튼을 클릭 하면 아래와 같이 Hello World가 출력이 됩니다.



저작자 표시 비영리 동일 조건 변경 허락
신고
Posted by dotnetpower
TAG iPhone, XCode
XCode2009.04.07 15:09

안녕하세요


모든 언어의 첫걸음은 Hello World 로 시작하죠?


간단히 시작 해 볼까요?


처음이니깐, NSLog를 이용해서 디버그 창에 찍어 보도록 하겠습니다.


1. XCode를 실행합니다.

실행 하고나서 상단에 [File]-[New Project]를 선택 합니다. 아래와 같은 New Project 창에서 Window-Based Application을 선택하고 Choose 버튼을 클릭합니다





그러면 프로젝트 이름을 지정하는 창이 나타납니다.

이름을 HelloWorld로 설정 하고 Save 버튼을 클릭 합니다.



아래 그림과 같이 프로젝트 생성이 되었습니다.




우리가 원하는 것은 뷰단이 아니고 NSLog를 이용하여 Hello World를 디버그 창에 찍는것 입니다.

위 창과 같이 main.m 파일을 열면 위와 같은 소스가 나옵니다.


다른 언어와 비슷하게 main 메서드에서 시작하네요 ^^


#import! <UIKit/UIKit.h>

int main(int argc, char *argv[]) {
   
    NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];
    int retVal = UIApplicationMain(argc, argv, nil, nil);
    [pool release];
    return retVal;
}


이 소스를 아래와 같이 변경 합니다


#import! <UIKit/UIKit.h>

int main(int argc, char *argv[]) {
   
    NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];

    NSLog(@"Hello World!!!");
    int retVal = UIApplicationMain(argc, argv, nil, nil);
    [pool release];
    return retVal;
}


그리고 command + R 버튼 또는 Build and Go 버튼을 누르면  iphone simulator가 실행되면서 로그창에


아래 그림 처럼 로그가 찍힙니다.




이로써 우리의 첫번째 어플리케이션이 완성되었습니다.



P.S : 거의 모든 소스의 Hello World가 Interface Builder로 레이블과 버튼으로 시작하는 예제였는데

따라하기가 어렵더라구요.. 이걸 한번 해 보시고 그 예제를 해 보시면 약간 더 감잡는데 좋을것 같네요.

저작자 표시 비영리 동일 조건 변경 허락
신고
Posted by dotnetpower
TAG iPhone, XCode

티스토리 툴바