본문 바로가기

프로그래밍/iOS243

YouTube에 동영상 업로드 출처 : http://blog.naver.com/saturna?Redirect=Log&logNo=60125222351 아이폰, 아이패드 앱에서 YouTube에 동영상을 업로드 할때Google에서 제공하는 gdata-objectivec-client api를 사용한다. http://code.google.com/p/gdata-objectivec-client/위 URL에서 gdata api를 다운로드한다. 다운로드한 소스를 개발중인 앱의 프로젝트에 추가하는 방법1. 다운로드한 gdata api의 GData.xcodeproj 를 실행하여 xcode에서 gdata project를 open 한다.2. 개발중의 앱의 프로젝트도 xcode로 open 한다. 2개의 프로젝트가 오픈된 상태이다.3. GData 프로젝트의 ".. 2012. 8. 2.
xCode4.2에서 GData API 사용하기(2/2) 출처 : http://magicmon.tistory.com/76 조금전에 GData 프로젝트에서 libGDataTouchStaticLib.a를 추출하였습니다. 이번시간은 이 추출한 파일을 내 프로젝트에서 적용하는 방법입니다. 개발할 프로젝트를 생성합니다. 프로젝트에 Headers폴더에 있는 파일과 libGDataTouchStaticLib.a를 추가합니다. 이제 Build Setting으로 이동합니다. Header Search Paths를 검색해서 다음 경로를 추가합니다. /usr/include/libxml2 Other Linker Flags를 검색해서 다음을 추가합니다. -lxml2 Other C Flags를 검색해서 Debug에 다음을 추가합니다. -DDEBUG=1 이제 설정이 끝났습니다. GData를.. 2012. 8. 2.
xCode4.2에서 GData API 사용하기(1/2) 출처 : http://magicmon.tistory.com/75 xCode 4.x에서 GData API 사용하는 방법에 대해서 간단하게 설명 드리겠습니다. (아이폰, 아이패드, 아이팟 용) 우선 GData 프로젝트에서 StaticLibray를 추출해야 합니다. 1. GData 프로젝트를 다운로드 합니다. svn checkout http://gdata-objectivec-client.googlecode.com/svn/trunk/ gdata-objectivec-client-read-only 2. GData 프로젝트를 실행합니다. (다운받은 경로)/gdata-objectivec-client-read-only/source/GData.xcodeproj 3. GDataTouchStticLib.a 파일 추출 프로젝트.. 2012. 8. 2.
CATransition - Efects for Animation 출처 : http://cafe.naver.com/mcbugi/215685 // Efects for Animation. // 0 (UIViewAnimationTransitionNone) Yes // 1 (UIViewAnimationTransitionFlipFromLeft) oglFlip, fromLeft Yes // 2 (UIViewAnimationTransitionFlipFromRight) oglFlip, fromRight Yes // 3 (UIViewAnimationTransitionCurlUp) pageCurl Yes // 4 (UIViewAnimationTransitionCurlDown) pageUnCurl Yes // 101 pageCurl Yes 페이지 넘기는 효과 (다음장) // 102 pag.. 2012. 7. 22.
[snippet] Touch Method 출처 : http://cafe.naver.com/mcbugi/222780 이것도 별껀 아닌데.. 그냥 올려둡니다. 교재에 나와있는건데.. 쓸때마다 귀찮더라구여.. 걍 스니펫 넣어서 돌리고 있습니다. 메소드 내부에 로그들은 따로 안건드렸습니다. 걍 두면 로그 찍어줍니다. 필요한 부분있으면 쓰면될듯하고.. #pragma mark - Touch Began, Moved, Ended - (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event { NSUInteger touchCount = [touches count]; NSUInteger tapCount = [[touches anyObject] tapCount]; NSLog(@"Touches Began"); .. 2012. 7. 22.
[snippet] 현재 설치된 앱의 경로 확인 출처 : http://cafe.naver.com/mcbugi/222540 경로 확인 스니펫 코드 입니다. 사용목적은.. sqlite 찝적대가다 설치된 어플상태를 확인해야되는데.. iFunBox 를 통해서 들어가보면.. @#$#$^#%^%& ㅡㅡ; 수십개 어플 다열어봐야 내어플 폴더 이름을 알게되는.. (이짓거리 두번할게 안되어서..) 어플 폴더 이름 확인용입니다. 로그에 찍혀욤.... viewDidLoad 안에 넣어주시면 되구염.. NSArray *dirPath = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); NSString *docsDir = [dirPath objectAtIndex:0]; NSLog(@.. 2012. 7. 22.
[snippet] UIGestureRecognizer 출처 : http://cafe.naver.com/mcbugi/222530 제스쳐 스니펫입니다. 뭐 별로 복잡하게 꼬여있지 않아서.. 올려봅니다. viewDidLoad 만 좀 수정하면 나머지는 그냥 씁니다. (필요없으면 지워도 되고...) 밑에 노트넣어놨습니다. 같이 넣어두시면 나중에 한두번 다시 보게될듯 합니다. 처음에는 파일 첨부를 했는데 뭐 따로 받아다 넣는것 보다 그냥 코드 긁어다 추가해주면 그게 더 쉽겠습니다. 긁어다 놓고, 이름지어주고, 단축키넣어주고. 끝. 아래는 스니펫 코드 입니다. (걍 긁어다가 넣으면 들어가더라구여..) #pragma mark - UITapGestureRecognizer // Note. // 뷰컨트롤러에서 사용한다. // swipe 와 pan 은 동시사용이 안된다 (pan.. 2012. 7. 22.
[snippet] Lazy Instantiation 출처 : http://cafe.naver.com/mcbugi/222516 Lazy Instantiation 참고로 저는 입문자 입니다. 자세히는 몰라요..^^; Lazy Instantiation 이라는걸 사용하기전에...프로퍼티 선언부터 잠시 짚고 넘어가겠습니다. 한국인을 위한 ..... 팟케스트 보고 정리해보는 겁니다. 클래스에 헤더를 import 하죠... #import #import "sdfasd.h" @interface sdfasdViewController : UIViewController @property (nonatomic, strong) sdfasd *objectPlus; @end 저렇게 프로퍼티를 선언해주고.. @synthesize objectPlus = _objectPlus; 위에 처럼 .. 2012. 7. 22.
[snippet] 기기회전에 따른 요소 재배치 출처 : http://cafe.naver.com/mcbugi/222510 기기 회전에 따라 UI 요소를 재배치해야되는경우 위치 재설정 하는 메소드를 여기서 구현하면 된답니다. 스니펫 추가 방법은.. 따로 게시물이 있으니 참고하여 주시와요... 참고로.. 제가 로그 찍어볼때는 FaceUP, FaceDown, UnKnown 상태가 안찍히더라구여.. 아시는분 댓글좀 달아주셈.. 걍 긁어다 스니펫 넣으삼.. ^^ - (void)didRotateFromInterfaceOrientation:(UIInterfaceOrientation)fromInterfaceOrientation { switch ([UIDevice currentDevice].orientation) { // 재배치 요소의 값이 같으면 케이스끼리 묶으면 .. 2012. 7. 22.
[snippet] iAd 삽입 출처 : http://cafe.naver.com/mcbugi/222492 삽질하다가 편하게 만들어 진것 같아서 올려봅니다. Snippet 코드 조각입니다. 앞으로도 이런식으로 만들어서 올려보겠습니다. 사용법은 알아서? ㅋ 사용법도 하나 제대로 정리해서 올려보겠습니다. 첨부파일은 코드스니펫 파일 그대로이고... 저장경로는 /Library/Developer/Xcode/UserData/CodeSnippets 여기다가 저장하면 됩니다. 작업환경은 OSX 10.7.4, Xcode 4.3.2 , iOS 5.1 sdk 입니다. 참고로 스토리보드나 nib에 adbannerview 따로 안넣어도 됩니다. 코드로 로드하도록 되어 있습니다. 단축키 snAdbanner 이하 스니펫 코드. #pragma mark - iAD z.. 2012. 7. 22.
라이트 버전 어플 만들기 출처 : http://cafe.naver.com/mcbugi/207332 안녕하세요 똥그러니 입니다. 유료 어플만든후 무료 어플을 만들거 아니면 비슷한 어플을 몇개 더 만들때 보통분들은 프로젝트를 전체 폴더 통째로 복사해서 하시더라고요... 그럴경우 어느 한부분에 버그등으로 인해 수정사항이 발생했을경우 복사했던 모든 소스를 수작업으로 수정해야한다는 치명적인 단점으로 사소한 실수를 유발할수 있더라고요... 그래서 보통 라이트 버전을 만들때 한개의 프로젝트에 TARGET을 추가해서 어플을 새로 만드는 방법을 공유하고자 합니다. 즉!! 하나의 프로젝트에서 여러개의 어플이 나오게 하는방법 입니다. 설명 : 프로젝트 클릭 -> 일단 타켓을 하나 더 만든다(프로젝트 밑에 타겟이 있다) 위 링크에서 보면 멀티 타켓팅.. 2012. 7. 21.
IOS 디바이스별 화면 구성요소 출처 : http://cafe.naver.com/mcbugi/208014 요즘 앱 개발 마무리 작업으로 열심히 서핑도 하고 자료도 찾는데 좋은 자료가 있어서 싸이트 링크 + 펌을 합니다. 주소는 http://firejune.com/1723/iOS+%EB%94%94%EB%B0%94%EC%9D%B4%EC%8A%A4%EB%B3%84+%ED%99%94%EB%A9%B4+%EA%B5%AC%EC%84%B1%EC%9A%94%EC%86%8C+%EC%B9%98%EC%88%98%EB%93%A4 고 http://firejune.com/ 라는 싸이트에는 올린 내용이네요. IOS 디자인을 처음에 640*960 으로 했는데, 추후에 이것이 레티나용이라서 붙일때 어떻게 해야하나 했는데 여기에 크기별 참고 자료가 있네요. 포토샵으로 .. 2012. 7. 21.
인엡 재구매 복구 로직(restore button) 출처 : http://cafe.naver.com/mcbugi/219432 원문(리스토어와 인엡 풀소스) - http://www.changwoo.net/bbs/bbsDetail.do?&num=545 애플의 정책이 바뀌어 non-consume in-app은 무조건 restore(복구) UI가 있어야 합니다, 안그러면 리젝사유가 되어 가슴아픈 경험을 하게 됩니다. 그에 따른 로직을 올립니다. 버튼에 이벤트로 - (void) onClickRestore:(id)sender 를 호출하면 checkPurchasedItems -> 상황1 - 로그인 취소- > (void)paymentQueue:(SKPaymentQueue *)queue restoreCompletedTransactionsFailedWithError:(NS.. 2012. 7. 21.
SNS에서처럼 날짜를 현재부터 지난시간을 계산하여 문자열로 만들기 출처 : http://cafe.naver.com/mcbugi/223326 SNS 같은 곳에서 글 등록할때 보면 "2012년 7월 16일 09:00" 이렇게 나오는게 아니라 "지금 등록", "5분전", "1일전" 이런형태로 나오는 걸 보셨을 겁니다.. 간단하게 NSString 카테고리로 만들어 봤습니다. 글 등록 4일부터는 일반 날짜형태로 나오게 됩니다. 선언부 @interface NSString (CustomAddFunction) + (NSString *)calculateDate:(NSDate *)date; @end 구현부 @implementation NSString (CustomAddFunction) + (NSString *)calculateDate:(NSDate *)date { NSString *in.. 2012. 7. 21.
iPhone App's 개발 시 GUI 재구성 쉽게 하는 법 출처 : http://lambert.tistory.com/203 아이폰 애플리케이션 개발 시 최초 설계한 GUI를 변경할 필요가 있을 경우 다음과 같이 비교적 쉽게 GUI를 재구성 할 수 있다. 다음의 예는 최초의 뷰는 스크롤 기능이 없었지만, TextField를 선택하여 키보드가 뷰를 덮을 때에 사용자의 편의를 위해 뷰에 스크롤 기능을 추가하는 경우이다. 1. IB(Interface Builder)에서 Scroll View 하위에 둘 Widget(Controll)들을 선택한다. 2. 그리고 IB 메뉴에서 Layout -> Embed Objects In -> Scroll View 옵션은 선택한다. 3. 그러면 다음과 같이 *ViewController.xib 윈도우에서 선택한 컨트롤들이 스크롤뷰 하위로 묶.. 2012. 7. 20.
디버깅시 NSLog 팁 출처 : http://reysion.tistory.com/19 디버깅시 유용한 팁이다. 우리는 로그를 출력할 때 NSLog를 사용하는데 파일명과 함수명 그리고 라인넘버를 출력하려면 다음과 같은 코드를 쓰면된다. NSLog(@"%s :: %s :: %d" , __FILE__,__FUNCTION__,__LINE__); 위처럼 로그를 찍으면 해당 소스파일의 위치와 라인을 Debugger Console에서 다음과 같이 출력해 준다. [Session started at 2011-01-24 17:03:41 +0900.] 2011-01-24 17:03:47.009 adidas[2614:207] /Users/reysion/Documents/ex/Classes/LoginView.m :: -[LoginView loginA.. 2012. 7. 17.
NSLog 업그레이드 + Debug 모드에서만 로깅하기 출처 : http://theeye.pe.kr/entry/upgrade-NSLog-only-working-debug-mode iPhone 개발환경을 보면 Visual Studio, Eclipse와 같은 화려한 IDE의 지원을 받아오던 저로서는 답답하고 답답하고 안타깝기에 그지없는 상황이 자주 연출되곤 합니다. 가끔씩 gdb에 근거한 알수없는 로깅시스템도 한몫을 하는데요 우리의 허접하기 짝이없는 NSLog를 화려하게 업그레이드 시키는 방법을 알아보도록 할까요. 우선 목표는 NSLog의 내용을 파일명과 에러발생 지점 라인, 기타 정보를 포함함과 동시에 빌드시에 선택하는 ActiveConfiguration을 Debug로 선택했을때만 로깅하도록 해보겠습니다. 그림을 하나 보도록 하겠습니다. 이것과 같은 순서로 O.. 2012. 7. 17.
Build Acrhive 시 icon관련 에러가 발생할때 배포를 하기 위해 Xcode에서 Build Acrhive를 실행하니 이전에는 발생하지 않던 아이콘 관련 에러가 계속 발생했다. 에러 내용은 다음과 같다. iPhone/iPod Touch: icon.png: icon dimensions (0 x 0) don't meet the size requirements. The icon file must be 57x57 pixels, in .png format (-19014) 아이콘 사이즈와 관련된 에러인데 분명히 레티나용 아이콘과 일반 3G용 아이콘을 사이즈 맞춰서 넣어 적용했는데도 계속 에러가 발생했다. 무슨 문제인지 구글링을 해보니 아이콘 이미지의 경우 이미지 타입을 바꾸어 주어야 한단다. Xcode 3.x에서는 해당 이미지에서 오른쪽 클릭해서 Get Info .. 2012. 7. 11.
아이팟 모드 만들기 - iPod Library 접근하기 출처 : http://adolchristin.tistory.com/41 기본 적인 문서는 애플 개발자 페이지의 http://developer.apple.com/library/ios/#documentation/Audio/Conceptual/iPodLibraryAccess_Guide/Introduction/Introduction.html 이곳을 참조 하였다. -(void) selectMp3 { NSLog(@"selectMp3"); MPMediaPickerController *picker = [[MPMediaPickerController alloc] initWithMediaTypes:MPMediaTypeMusic]; //MPMediaPickerController *picker = [[MPMediaPickerC.. 2012. 7. 10.
코어데이터 사용시 마이그레이션 문제가 발생할 경우 App개발시 코어데이터를 사용할 경우 필요에 따라 최초 구성된 데이터 모델을 변경해야 할 경우가 있다 하지만, 변경을 잘못할 경우 NSCocoaErrorDomain Code=134130 와 같은 에러가 발생한다. 해당 부분은 데이터 모델 파일을 버젼추가하지 않고 바로 수정했을 경우에 발생하는 것으로 해결하기 위해서는 수정한 부분을 원래대로 돌려놓고 버젼 추가한후 수정을 하면 된다. 코어데이터는 자체적으로 마이그레이션 기능을 가지고 있는데 버젼 파일이 추가가 아닌 변경될 경우에는 해당 부분에서 오류가 발생해 정상적으로 동작하지 않기 때문에 발생하는 오류이다. 2012. 7. 4.
Xcode에서 커스텀 템플릿 만들기 커스템 템플릿 만드는 방법. 영어 몰라도 대충 이해되는 동영상 ㅋ 직접 해본 결과.. 1. /Developer/Platforms/iPhoneOS.platform/Developer/Library/Xcode/Project Templates/Application 에서 기본 템플릿 중 하나를 복사 2. ~/Library/Application Support/Developer/Shared/Xcode 에 새폴더 생성 폴더 이름은 Project Templates (이미 존재하면 새로 만들 필요 없음) 3. Project Templates 폴더에 이 폴더 안에 아까 복사한 기본 템플릿을 붙여 넣고 원하는 이름으로 변경한다. 이때 지정하는 폴더 이름이 Xcode에서 템플릿 선택시에 나타날 이름이 된다. 4. 템플릿 폴더 .. 2012. 6. 22.
프로젝트에 자신의 커스텀 프로젝트를 추가하자(예제 cocos2d) 자신이 만든 커스텀 프로젝트를 넣어둔 강의를 보신적 있을 겁니다... 그런걸 추가하는 방법을 남겨 볼까 합니다.... 일단 기본적으로 추가할수 있는 폴더가 4군데가 있습니다.(첨부된 파일의 경로를 봐주세요) 1.뉴 프로젝트의 기본프로젝트 경로.png 에 넣으면 나오는곳 2.뉴 프로젝트의 유저템플릿의 경로.png 에 넣으면 나오는곳 3.뉴 파일의 기본프로젝트 경로.png 에 넣으면 나오는곳 요런곳에다가 추가 할수 있습니다.... 자 본격적으로 시작해 볼게요... 기본적으로 2가지만 예를 들어서 해보겠습니다 요거 응용하시면 다른것들도 추가 하실수 있습니다. 첫번째로 게임 만들때 많이 쓰이는 cocos2d입니다. 저는 기본적으로 게임신 메뉴신 요렇게 몇개 만들어진걸 기본적으로 추가해 두고 쓰는중입니다.. ^^.. 2012. 6. 22.
아이폰 정적 라이브러리 템플릿과 기존 프로젝트에 정적 라이브러리 추가하기 출처 : http://lambert.tistory.com/341 다양한 아이폰 프로젝트를 진행하면서, 재사용할 수 있는 라이브러리가 축적되고 있다. 그런데 iOS SDK는 커스텀 프레임워크(Custom Framework)나 동적 라이브러리(Dynamic Library)를 지원하지 않는다. 그래서 비교적 손쉽게, 소스 코드의 재활용을 위해, 선택할 수 있는 방법이 바로 정적 라이브러리(Static Library)를 사용하는 것이다. 자신만의 라이브러리를 사용하는 방법을 다음의 6단계로 간단히 요약할 수 있다. (단계 1은 옵션이다.) 설명은 다음의 단계별로 진행한다. Xcode용 정적 라이브러리 템플릿 추가라이브러리의 모든 소스 코드를 포함한 프로젝트 생성설정을 포함한 정적 라이브러리 타겟 생성라이브러리를.. 2012. 6. 21.
아이폰 용 정적 라이브러리 만들기 출처 : http://lambert.tistory.com/344 이전 포스트 아이폰 정적 라이브러리 템플릿과 기존 프로젝트에 정적 라이브러리 추가하기에 서는 템플릿을 이용해 아이폰 용 정적 라이브러리(Static Library)를 만들고 적용하는 방법을 알아 보았다. 그런데 템플릿을 이용하는 방법을 설명하였기 때문에 정적 라이브러리를 만드는 방법에 대한 설명이 부족했다. 이에 그 부분에 대한 보충 설명을 하고자 한다. [샘플 프로젝트] LPLibrary.zip StaticTest.zip 1. 정적 라이브러리 프로젝트 생성 정적 라이브러리 생성을 위해 프로젝트를 생성한다. 프로젝트 템플릿 선택 창에서 Library > Cocoa Touch Static Library를 선택한 후 이름을"LPLibrary"라.. 2012. 6. 21.