Develoment2010. 1. 5. 20:58

소스가 개판이구만...
Posted by smok95
Develoment/book2009. 12. 27. 04:23

아이폰 프로그래밍 가이드 - Objective-c부터 네트워크까지 

산지는 한3개월 정도 됐는데, 실제로 읽기 시작한지는 몇 주 안됐습니다. 

먼저 책의 전체적인 내용은 objective-c에 대한 기초적인 내용과 아이폰 프로그래밍 예제와 기본개념, 그리고 개발자 프로그램 등록과정과 실제 앱스토어에 판매하는 과정 등이 포함되어 있습니다.

먼저 개발자 프로그램 등록과정에 대한 소개는 상당히 자세하게 나와서 많은 도움이 됩니다.
물론 이 책의 지은이께서 책을 집필할 당시보다 현재 개발자 등록과정이 상당히 간소화되어 필요없는 부분도 있고 상이한 부분도 있습니다.

그리고 앱스토어에 실제로 어플리케이션을 등록해서 판매하는 과정도 소개를 하는데 이 또한 상당히 자세히 소개가 되어 역시 많은 도움이 됩니다.

그리고 objective-c에 대한 내용은 책이 아이폰 프로그래밍이 주가 되기때문에 기본적으로 필요한 내용만을 소개하지만
기존에 c/c++이나 객체지향프로그래밍 경험이 있으신 분들에게는 이 책만으로도 충분하다고 생각됩니다.

그리고 마지막으로 주가 되는 아이폰 프로그래밍.. 

아마 이 책을 구매하시는 분들이 대부분 맥이나 xcode와 같이 mac os쪽 프로그래밍 경험이 없으신 분들일 것이라고 생각됩니다.
(* 참고적으로 xcode는 비주얼스튜디오같은 개발툴입니다.)

그래서 아주 사소한 문제도 해결하기가 쉽지가 않은데.. 문제가 뭐냐면..

이책은 아이폰SDK 2.2.1 을 기준으로 만들어졌습니다. 현재는 최신 SDK는 3.2 입니다.
SDK만 바뀐게 아니고 xcode도 바뀌었습니다. 

xcode의 화면인터페이스가 변경이 되서 책과 맞지 않는 부분이 있고, 또 하나는 정상적으로 실행되지 않는 예제가 있습니다.

그래서 책보는 시간보다 아이폰 개발 커뮤니티와 구글링하는 시간이 더 많았던거 같습니다.

아무튼 이런 문제로 전에 저자님께 문의를 드린적이 있습니다.
저자님도 이런 부분들에 대해서 고민을 하고 계시더군요.. 다음 계정판에는 변경된 내용을 반영할 계획이고 
출판사와 협의해서 변경된 내용을 사이트에 올리시겠다고  하시더군요..

몇일전에 변경된 예제소스가 프리렉사이트에 올라오기는 했지만 
전체적으로 대응이 늦을거 같아서 지금은 다른 책을 보고 이책은 간간히 참고하는 정도로 보고있습니다.

음.. 쓰고보니 너무 않좋겠게 얘기한거 같네요..

사실 책의 내용은 좋습니다. 다만 현재 아이폰 개발환경과 맞지않는 부분때문에 저 같은 초보자가 문제해결하기가 쉽지않았다는 점입니다.

아마도 개정판이 나온후에 구매하시는 분들은 이런 걱정은 안하시고 구매하셔도 될것같습니다.










Posted by smok95
Develoment2009. 12. 26. 22:38

#pragma mark는 Xcode 상에서 메소드 목록을 보다 일목요연하게 볼 수 있도록 해주는 지시자라고 합니다.
특정 클래스에서 메소드가 많아 용도별,이름별 뭐 그밖에 여러가지 주제별로 메소드를 정리해서 보고 싶을때
pragma mark를 이용하면 됩니다.

음.. C# 에서 #region 과 비슷하다고 보시면 될것 같습니다.

사용법 :
#pragma mark [label]
ex.) #pragma mark 초기화메소드들


실제로 보시면  다음과 같은 메소드들이 있을때


메소드 리스트를 보면 아래와 같이 표시가 됩니다.



그리고 pragma mark를 사용한 경우 아래와 같이 설정한 label에 따라 구분이 되어서 표시가 됩니다.



그리고 또 한가지는 #prama mark - 와 같이 label을 -로 주면 구분선으로 메소드목록이 나뉘어 집니다.
(구분선이 흐리게 보여서 잘 안보이실 수 있습니다.)




실제로는 메소드가 많고 보기 힘든 경우에 pragma mark를 사용해서 용도별이나 특정주제별로 나누어주면 보기해도 편하고 클래스를 파악하는데 더 도움이 되지 않을까 싶습니다.
아니면 처음부터 pragma mark를 사용하여 기능별로 구분지은후에 메소드를 만드는것도 좋을것 같습니다.

한가지 좀 아쉬운 부분이라면 비주얼스튜디오에서 #region 의 경우에는 지정한 영역별로 소스를 숨기는기능(확장/축소)이 있는데
제가 아직 몰라서 그럴수도 있지만 #pragma mark는 그런 기능이 없는것같아서 아쉽습니다.



Posted by smok95
Develoment2009. 12. 18. 03:19


아이폰 개발자 프로그램을 10만4천원에 구매한후에 이틀후에 Activation Code가 메일로 도착했습니다.
설레는 마음으로 코드를 클릭했더니 문제가 생겨서 처리를 할 수 없다고 메시지가 뜨더군요..

자세한 내용은 나오지를 않아서 애플 개발자 센터 홈페이지갔더니
개발자 프로그램 구매시에 신용카드와 개발자가입정보의 신원이 일치되지 않아서 진행을 홀딩시켰다는 내용이었습니다.

그리고는 신원확인을 위해 애플에서 준비한 양식에 맞춰서 팩스를 보내라고 써있더군요..
내용은 가입시 enrollment id와 답장받을 메일주소 그리고 신분증(주민등록증, 여권 등)사본
근데 여기서 또 신분증 사본은 공증을 받아야 한다는거..
변호사에게 공증를 받거나 경찰서에서 본인임을 확인한다는 내용에 사인을 첨부하라는 ...

아무튼 저는 처음에 그냥 신분증사본만 보내면 될거같아서 미국으로 팩스(캘리포니아 산호세)를 보냈습니다.
근데 여권그대로 복사해서 보냈는데.. 개인정보관련해서 아무 문제가 없는건지 모르겠네요..

다음날인가 메일이 왔더군요.. 별내용은 없었습니다. 그냥 처리중이라는
웬지 오래걸릴것 같은 예감에
인터넷에서 이리저리 찾아보았습니다.

저처럼 팩스를 보내서 해결하신 분들도 계시고 아시아쪽 담당자에게 메일을 보내서 해결을 하셨다는 분들도 계시더군요..
근데 팩스 보내서 해결하셨다는 분중에 신분증사본만 복사해서 보냈더니 경찰관에게 사인받아서 다시 보내라고해서
그냥 자기가 사인해서 보냈더니.. 통과되었다고 하더군요.. --;

아무튼 아시아쪽 담당자한테 애플스토어에서 주문상세내역과 메일로 받은 activation code스크린샷을 보내주면 된다는 얘기에 메일을 보냈더니 바로 다음날 홀딩이 풀리고 등록이 완료가 되었습니다.

아무튼 방법은

1. 애플스토어의 주문세부내역, 메일로 받은 iPhone Developer Program Activation Code 스크린샷을 해서 asia.dev@asia.apple.com 로 activation hold를 풀어달라고 메일을 보냅니다. (메일보내실때 그냥 한글로 보내시면 됩니다. 담당하시는 분이 한국분인가봅니다)
 * 꼭 이렇게 2가지를 캡쳐해서 보내야됩니다. 저는 처음에 activation Code와 메일로받은주문내역을 보냈더니 다시보내라고 답장이 오더군요..






2. activation code를 다시 클릭해보라고 메일을 옵니다. 그리고 다시 해보면 정상적으로 등록이 됩니다.
 devpayment@apple.com 이 주소로 메일이 옵니다. 어쩌면 아닐수도 있습니다. 제경우에는 여러 메일주소로 메일이 와서..



'Develoment' 카테고리의 다른 글

소스 분석중...  (1) 2010.01.05
[Xcode] #pragma mark 의 기능  (2) 2009.12.26
[iPhone] Segmented Control 의 높이 변경하기  (0) 2009.12.17
Posted by smok95
Develoment2009. 12. 17. 15:51


Segmented Control을 인터페이스 빌더에서 높이를 바꾸려고 하니까 아예 변경을 못하게 비활성화 되어 있더군요..

애플사이트에서 보니 높이는 고정(44pixel)으로 변경하지 못하게 일부러 막은 것이라고 하네요..
The height of a segmented control is fixed.

물론 다음과 같은 방법이 있지만 괜히 막아놓은게 아니기때문에 변경하지 않는 것이 좋다고합니다.

// segmentCtrl은 UISegmentedControl

CGRect segmentRect = [segmentCtrl frame];

// 고정높이인 44에서 변경하려는 높이에 맞게 더하거나 뺌.

segmentRect.size.height -=30;

segmentCtrl.frame = segmentRect;


혹시라도 저와 같은 입문자분들이 저와 같은 의문이 들지 않을까해서 글을 올립니다.

Posted by smok95