레이블이 코코아인 게시물을 표시합니다. 모든 게시물 표시
레이블이 코코아인 게시물을 표시합니다. 모든 게시물 표시

1/14/2009

회사 내 Mac 유저 급증!

최근 TFT쪽에 MacBook Pro 4대 및 영업쪽 MacBook 이 들어온 후 사내에 Mac 에 대한 관심이 높아지고 있습니다.

이O혜 대리도 개인돈으로 무려 맥북프로! 를 질렀고, 응과장님은 쓰던 구형 맥을 처분하고 신형맥을 구입했습니다. 구형 맥은 유O해 대리가 저렴하게 분양받았습니다.

TFT소속인 분들 말고는 iPod Touch/iPhone 용 app 개발을 할지 어떨지는 모르겠습니다만, Cocoa 로 MacOS 용 s/w 를 개발할 수도 있을테고 혹시 압니까? 향후 다른쪽 프로젝트 나갔을때 O&M 클라이언트 툴을 맥용으로 개발해 달라는 별난 회사가 있을지? -_-;;;

며칠동안 MacBook 을 쓰면서의 느낌을 12가지 정도로 요약해 보면 ( 쓰고 보니 12가지 정도 ... )


1. 맥의 키보드에서 Command + C 가 윈도우의 Ctrl + C 보다 손가락에 부담이 덜 가는 느낌.

2. 어플리케이션 종료도 윈도의 Alt + F4 보다 Command + Q 가 훨씬 편하다.

3. 아무튼 종료도 빨리 되고 부팅도 빨리 되는 MacBook 만세.

4. 사용자가 적어서 그럴 수도 있겠지만 아무튼 구질구질한 백신같은거 설치 안해도 아무 문제 없어서 너무 편하다.

5. 모바일미 등 몇몇 사이트들은 사파리에서만 UI가 제대로 보인다. -_-;;;;

6. 어제 저녁에 쓸 일이 있어서 개인적으로 구입했던 삼보 에버라텍 2500을 꺼냈는데... 서브노트북으로 쓸려고 분명히 작은걸로 샀던 거 같은데 너무 두껍드라. -_-;;

7. iChat 가끔씩 잘죽는다.

8. xcode 좋다. 내부적으로 SCM도 통합되어 있고.. IB도 좋다. 근데 맥도 기본예제 이상 넘어가면 개발하는건 비슷비슷하고 결국 동적으로 생성하는 것들은 죄다 코딩으로 처리할 수 밖에 없다. There is no silver bullet. ( 한두번 속냐?  )

9. 코코아 프로그래밍3판 번역본은 생각보다 오타가 많다. 하지만 책의 오타들은 대부분 사소한 것들이고 책을 처음부터 잘 따라 읽었다면 별 무리없이 책을 독파할 수 있다.

10. iPod Touch/iPhone 어플을 처음 개발하려는 사람은 코코아 프로그래밍을 끝까지 읽어보는게 훨씬 도움이 더 된다. 
어차피 iPhone 용 기본 예제들 몇개 해보고 나서부터는 Cocoa 나 Objective-C 의 내용을 모르면 삽질하는데 시간이 더 걸린다.

11. Posix 기반 또는 unix/linux 에서 C기반으로 오랜 기간 어플리케이션을 개발한 경험이 있는 개발자라면 MacOS 에서의 개발도 추천할만 하다.

12. 인터넷 뱅킹은 어쩔 수 없다. -_-;;;

사내 Mac 유저의 증가와는 별개로 코코아 프로그래밍 책을 사서 처음부터(중간중간 비관심 분야는 몇부분 생략하며) 책을 읽기 시작해서 지난주 7일인가 8일쯤에 책을 다 읽었고, 실제로 iPod Touch용 app개발을 시작해 본 건 삼사일 정도 되었습니다.

마침 팀내에 시스템 구축 제안을 해야 하는 일이 생겼는데 그 한 부분으로 스마트폰쪽 대응 부분도 한 귀퉁이에 넣고 실제로 어느정도 동작하는 데모를 보여주기로 해서 ... 좀 더 필사적으로 프로그래밍을 하고 있습니다.

금요일 정도면 어떻게든지 돌아가(는 척 하)는 첫번째 iPhone App가 나올 것 같습니다.
그래봐야 아마 기본적인 View 및 컨트롤러의 사용법을 익히는 정도일 것 같습니다만....


1/06/2009

코코아 프로그래밍 3판 몇가지 오탈자들 # 2 (8~13장까지)

중간중간 띄엄띄엄 보긴 했지만 아무튼 몇가지 오탈자 또는 안되는 것들을 발견했습니다.

원서쪽 오탈자 관련 사이트를 가보니 이런저런 글들이 많더군요. 번역본의 교정 자체도 문제지만 원서 자체에도 오탈자가 좀 되는 것 같습니다.

아무튼 오늘 찾은 것들 정리해두니 도움되시기 바랍니다. ( 혹시 잘못된게 아니라면 댓글이나 이메일로 알려주시기 바랍니다 )


p191, 11장 코어 데이터 기초 : ( 끝까지 똑같이 따라했지만 마지막에 동작하지 않았음 ㅠ.ㅠ, 오타는 아니고 신세한탄 )


p196 이미지 위쪽 : "또한 Generate Decimal Numbers and Always Shows Decimal 옵션을 선택하자" 는 "또한 Generate Decimal Numbers 와 Always Shows Decimal 옵션을 선택하자" 입니다. Generate Decimal Numbers and Always Shows Decimal 이라는 옵션은 없습니다.


p196 이미지 아래 둘째줄 : "셀을 선택하고 이름을 지운다" 는 내용상 "셀을 선텍하고 Title (또는 제목?) 을 지운다" 라고 해야 합니다. 이름을 지운다 라고 하면 보통 Name 필드를 찾기 때문인데 그림 11.6을 보건데 "Title" Attribute 를 지우라는 의미입니다.


p225 책에 적힌대로 코딩하면 동작하지 않습니다. 책에는 extern 두줄을 PreferenceController.h 에 넣고 실제 BNRTableBgColorKey 와 BNREmptyDocKey 는 PreferenceController.m 의 정의하라고 되어 있는데 의미상으로나 동작을 하게 만들기 위해서나 Preference 에서 쓰는 두 상수의 정의는 PreferenceController.h 에 있어야 하고 이 상수들을 쓰는 파일(PreferenceController.m 같은 곳)에서 extern 을 적어주어야 합니다.

p226 상단 코드 중

[defaultValues setObject:[NSNumber numberWithBool:YES] forKey:BNRKey]

[defaultValues setObject:[NSNumber numberWithBool:YES] forKey:BNREmptyDocKey]

로 고쳐야 합니다.


p227 BNRTableBgColorKey 와 BNREmptyDocKey 를 PreferenceController.h 에다가 정의해 놓았기 때문에 PreferenceController.m 에서는 두 상수에 대해서 extern 만을 적어주어야 합니다.

따라서 소스코드의 2~3번째 줄의

NSString * const BNRTableBgColorKey = @"TableBackgroundColor";
NSString * const BNREmptyDocKey = @"EmptyDocumentFlag";

extern NSString * const BNRTableBgColorKey;
extern NSString * const BNREmptyDocKey;

로 바꿔주어야 컴파일이 됩니다.


p230 위쪽 코드를 실행하면 동작하지 않는데 의 마지막 부분에

[tableView setBackgroundColor:[NSKeyUnarchiver unarchiveObjectWithData:colorAsData]];

부분때문에 그렇습니다. RaiseMan 예제를 쭉 따라서 해왔다 하더라도 151p의 문제2번을 하지 않으셨다면 현재 MyDocument.h 에 tableView 가 없을겁니다.

MyDocument.h 의 @interfance 쪽에

IBOutlet NSTableView *tableView;

를 추가하고 인터페이스 빌더를 실행시켜 xib에서 table view 를 tableView 로 연결시켜야 제대로 동작합니다.

그리고 230p 코드 아래쪽 보면 "반드시 PreferenceController.h를 임포트해야 거기에 선언한 전역 변수를 사용할 수 있습니다" 라고 되어 있는데 앞에서처럼 수정했다면 두 상수를 extern 으로 대치하시면 됩니다.


참고로 코코아 프로그래밍 앞쪽부터 나오는 RaiseMan 예제는 반드시 차례대로 꼭 해두셔야 합니다. RaiseMan 을 확장해서 만들어 가는 부분들이 꽤 많기 때문에 처음부터 생략하고 넘어가게 되면 자연스럽게 뒤쪽도 죄다 생략해야 하는 불상사가 발생할지도요.

시간이 늦은 관계로 일단 오늘은 여기까지 -_-;;

1/01/2009

코코아 프로그래밍 3판 몇가지 오탈자들(1~7장까지)

1. p41 중간쯤


for ( i = 0; i < 10; i++ ) {
    NSNumber *newnumber = [[NSNumber alloc] initWithInt:(i * 3)];
    [array addObject:newNumber];
}

코드상으로나 실행되었을때 오류상으로나 newnumber -> newNumber 로 바꾸어야 한다.


2. 언제부터 바뀐건지는 모르겠지만 Cocoa 프로젝트를 생성하면 생기는, 그리고 interface builder 로 만든 것들이 저장되는 것들은 죄다 xib 로 저장된다. 책 전체에(최소한 지금 보고 있는 7장까지는) 예제들 설명을 하면서 .nib 를 열라고 하는데 실제로는(xcode 3.1.2를 쓰고 있다면) .xib 를 열어야 한다. 뭐 결국은 컴파일하면서 nib로 바뀌어서 컴파일되는 모양이긴 하지만...

nib 는  NeXT Interface Builder 의 줄임말인거 같은데, 그럼 xib 는 eXtended nib? osX nib? 뭔지 모르겠다.


3. p90

첫줄의

앱킷 프레임워크를 이해하려면 NSControl 의 서브클래스인 NSControl, NSButton, NSSlider, ...

부분은 앱킷 프레임워크의 구조상으로 볼때

앱킷 프레임워크를 이해하려면 NSObject 의 서브클래스인 NSControl, NSButton, NSSlider, ...

가 맞는 것 같다.


4. p114 아래쪽 코드

앞의 예제를 확장하면서 새로 추가된 인스턴스 변수 tableView 와 voiceList 를 굵게 표시해야 하는데, 이미 추가되어 있던 startButton 도 굵게 표시했다. 단순 편집상의 실수인거 같긴 한데 원서도 그런건지 번역하면서 잘못한건지 모르겠다.


-P.S-

1. p123 "문제 - 데이터 소스 만들기" 다 해놓고도 Table View 가 갱신되지 않아서 한두시간 허비한듯 -_-;; 혹시 고생하시는 분이 계시다면 p114쪽 첫줄을 읽어보시길 -_-;;;;
2. 출판사인 인사이트에 문의를 했더니 http://insightbook.springnote.com/pages/406365 에 정오표를 올려두었다고 한다. 앞으로 쭉 늘어날 것 같지만 일단 참고

12/30/2008

첫번째 MacOS용 app - RandomApp

어제 주문했던 코코아 프로그래밍 3판 번역본이 오늘 왔습니다. 요즘은 오전일찍 주문하면 오후에 도착하기도 하는 것 같던데 세상 참 좋아졌군요 -_-;;

책 받자마자 회사 개발부서 자리이동이 있어 짐 옮기고 세팅하고 이래저래 하다 보니 퇴근시간이 되서 퇴근하고 밥먹고 하다보니 이제서야 책을 펼쳐볼 수 있었습니다.

책의 첫번째 코코아 프로그래밍 예제파일 실행해봤습니다.
사용자 삽입 이미지


뭐 잘 되는군요 -_- Generate random number 를 누르면 랜덤숫자가 생성됩니다.

사용자 삽입 이미지



다만 32P 의 awakeFromNib 함수 구현중

[textField setObjectValue:now];

여야 하는데

[textField setObjectiveValue:now];

라고 오타가 있네요. 일단은 책 사서 돌려본걸로 만족하고 포스팅 -_-;; 앞으로는 좀 더 보여줄만한 코드가 작성되면 포스팅을 하도록 해야겠습니다. ㅋ

12/29/2008

코코아 프로그래밍 3판 나왔네요


코코아 프로그래밍 - 8점
아론 힐리가스 지음, 박진형 옮김/인사이트


코코아 프로그래밍의 3판의 번역본이 나왔습니다. 12월 22일날 출시되었으니 따끈따끈하겠군요.

이 책의 원제는 COCOA PROGRAMMING FOR MAC OS X 3/E 입니다.

iPhone app 개발 전문서적은 아니지만 기반이 되는 Cocoa 및 xcode 에 대한 설명을 포함하고 있고, 어차피 MacBook Pro 가 생긴 마당에 iPhone App 개발만 하긴 맥북프로의 가격이성능이 울지 않을까요?

오늘 주문했으니 조만간 받아볼 수 있을 듯 합니다. 받으면 리뷰라도 한번 해볼께요 ㅋ ( 혹시라도 저 책 구입하실 분은 링크타고 들어가서 주문해주시면 ㄳㄳ )

요즘 포스팅을 모두 medium쪽으로 하고 있습니다

안녕하세요? 어쩌다보니 그냥 한번 써보기로 한 medium.com 에다가 죄다 최근 포스팅을 하고 있습니다. 현재 도메인인 potatosoft.com 은 제가 대학때인가 사회 취업한지 얼마 안됐을때부터 유지해 온 도메인이고, 블로그 시스템은 그...