본문 바로가기

전체 글1040

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.
인텐션패널(Intension Panel) 리뷰 아이폰 4S로 교체해서 쓰면서 예전 아이폰 3GS사용할때 부주의로 유리에 기스가 생기는걸 경험하고 오래오래 쓰고자 지문 방지 보호 필름을 구매해서 이용중이었다. 그런데 지문방지 필름을 사용하니 아이폰 특유의 쫀득쫀득한 터치감이 없어져 버렸다. 그래서 다른 좋은 필름이 없나하고 찾아보던중(물론 SGP의 울트라 크리스탈이나 기타 제품들이 있었지만, 지문방지 필름의 촉감에서 한번 실망을 하고 나서는 직접 만져보고 구매하려고 했는데, 의외로 주변에서 사용중인 사람이 없었다.) 인텐션패널(Intension Panel)의 체험리뷰를 모집하는걸 보고 신청했다. 한참 기다려도 연락이 없길래 떨어진줄 알고 그냥 신경 끄고 있었는데어느날 갑자기 집에 택배가 왔다. 뒤늦게 체험단 당첨자 목록을 확인해 보니 당첨. 보통은 보.. 2012. 7. 8.
코어데이터 사용시 마이그레이션 문제가 발생할 경우 App개발시 코어데이터를 사용할 경우 필요에 따라 최초 구성된 데이터 모델을 변경해야 할 경우가 있다 하지만, 변경을 잘못할 경우 NSCocoaErrorDomain Code=134130 와 같은 에러가 발생한다. 해당 부분은 데이터 모델 파일을 버젼추가하지 않고 바로 수정했을 경우에 발생하는 것으로 해결하기 위해서는 수정한 부분을 원래대로 돌려놓고 버젼 추가한후 수정을 하면 된다. 코어데이터는 자체적으로 마이그레이션 기능을 가지고 있는데 버젼 파일이 추가가 아닌 변경될 경우에는 해당 부분에서 오류가 발생해 정상적으로 동작하지 않기 때문에 발생하는 오류이다. 2012. 7. 4.
리눅스에서 오라클 실행. 출처 : http://cspark.egloos.com/667106 예전에 리눅스에서 오라클 실행할줄도 몰라서 쩔쩔매엇던 기억이 난다..-_-;; 이게 또 사용을 안하니깐 기억이 가물가물해질려고해서 간단하게 메모를 남긴다... 최초 오라클 계정으로 접속한 후 (9i 기준) # su - ora9i # sqlplus /nolog SQL> conn /as sysdba SQL> startup 기본적으로 오라클이 실행된다. 그후 리스너를 실행시키자. # lsnrctl start -> 리스너 실행 # lsnrctl status -> 리스너 상태 # lsnrctl stop -> 리스너 정지 기억 주기가 짧아지는거 보면 내가 한두살 더 먹은거 같긴 하다...-_-;;.. 출처:리눅스에서 오라클 실행. 2012. 7. 3.
오라클 실행시 에러가 발생할 경우 /oracle/11g/lib/libclntsh.so.11.1: cannot restore segment prot after reloc: Permission denied 와 유사항 에러가 발생할 경우 root 권한으로 다음과 같이 해준다. /usr/sbin/semanage fcontext -a -t textrel_shlib_t $ORACLE_HOME/lib/libnnz11.so/usr/sbin/semanage fcontext -a -t textrel_shlib_t $ORACLE_HOME/lib/libnque11.so/usr/sbin/semanage fcontext -a -t textrel_shlib_t /oracle/11g/lib/libclntsh.so.11.1 getenforce (Return "Enfo.. 2012. 7. 3.
CentOS 5.x에 Oracle11g R2설치 centos6 에 oracle 11g R2 version을 설치한 결과를 정리한다. Download : http://www.oracle.com/ 1. oracle 설치에 필요한 연관 package를 설치한다. [root@localhost oracle]# yum install binutils compat-libstdc++-33 elfutils-libelf elfutils-libelf-devel elfutils-libelf-devel-static gcc gcc-c++ glibc glibc-common glibc-devel ksh libaio libaio-devel libgcc libgomp libstdc++ libstdc++-devel make sysstat glibc-headers unixODBC unix.. 2012. 7. 3.
X-Window 설치 [root@cms ~]# yum grouplist [root@cms ~]# yum -y groupinstall "X Window System" [root@cms ~]# yum -y groupinstall "GNOME desktop Environment" 2012. 7. 3.
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.
Xcode 프로젝트 템플릿을 이용해 iOS 프로젝트 시작점 제어 여러번 iOS(아이폰, 아이팟터치) 관련 어플을 만들면서 다음과 같은 필요성이 생겼습니다. 1. 공통 라이브러리(클래스 집합) 2. 공통 리소스(XIB 및 이미지, 각종 설정, DB등 집합) 3. 외부 라이브러리 사용 4. 한번에 만들어지는 프로젝트 1번 공통라이브러리는 클래스 집합입니다. 누구나 프로젝트를 진행하다보면 나만의 코드조각, 클래스들이 만들어집니다. 이게 쌓이고 쌓여서 프로젝트때 마다 Xcode상에 기존코드파일을 복사해서 삽입하는 경험을 해보셨나요? 이 부분을 해결할 수 있는 가장 좋은 방법은 정적 라이브러리(static library)를 구성하는 방법입니다. 가장 쉽고 빠르죠. 다음 문서를 보면 바로 이해할 수 있습니다. 아이폰용 정적 라이브러리 만들기 : http://goo.gl/Kq8B.. 2012. 6. 21.
Xcode Code Snippet Library를 통해 코드 문서화 쉽게 하기! 출처 : http://meetkei.com/wordpress/?p=1766 코드 작성만큼 중요한 코드 문서화는 개발자 자신과 인계받을 개발자를 위해 아주X1000000 중요한 작업이다. Xcode에서는 Code Snippet Library를 통해 문서화를 손쉽게 할 수 있다. 우선 Code Snippet Library에 사용하고자 하는 주석들을 등록해야 한다. 1. 사용하고자 하는 주석을 작성한다. (아래의 예제는 Doxygen 스타일의 코드 주석) /** * @brief * @param * @return * @remark * @see * @author Keun young Kim. */ 는 Xcode에서 인식가능한 placeholder로 탭을 통해 입력지점 사이를 이동할 수 있다. 필수 사항은 아니지만 .. 2012. 6. 21.
xcode static library 만들기(스테틱라이브러리만들기) 출처 : http://blog.naver.com/kimminin/20123593848 기본적으로 잘 돌아가는 프로젝트 -> 거기 포함된 .m 파일을 다른 사람들이 보지 못하게 정적라이브러리로 만드는 과정입니다. Target -> add -> New Target static library 선택 자신에게 맞는 이름 설정~(이름을 알아서들) (라이브러리) 프로젝트에서 라이브러리화 할 xxx.m파일을 드레그 해서 아래에 넣어준다.(아직 프로젝트에는 xxx.m 파일이 남아있습니다.) (어플) 타겟에 보면 프로젝트이름 아래에 Compile sources가 있습니다.여기속에 아까 위에서 xxx.m 파일을 찾아서 삭제합니다. 즉 지금까지 한 내용은 프로젝트에 있는 xxx.m파일을 어플을 만들때 컴파일 하는게 아니고 라.. 2012. 6. 21.
jquery 레이어팝업 모듈 $(document).ready(function(){ // center : true 팝업 가운데 출력 // closeButton : 팝업안에 닫기 버튼 아이디 // backgroundDisplay : 팝업 배경 색 출력 // left: 가운데 정렬이 아닐때 가로 위치 지정 // top : 가운데 정렬이 아닐때 세로 위치 지정 var opts = {'center' : false , 'closeButton':'#close','backgroundDisplay' : true} //options add // 클래스명이 pupup 인 Dom 클릭 하면 레이어 아이디가 popupLayr 팝업 호출 . $(".popup").layerPopup("#popupLayer" , opts); }); 2012. 6. 19.
팝업 레이어 - JQuery 사용 여기를 클릭하시면 로그인 레이어가 뜹니다 등록 / 취소 2012. 6. 19.
AlertView Login만들기 UIAlertView *prompt = [[UIAlertView alloc] initWithTitle:@"Username and password" message:@"\n\n\n" // 중요!! 칸을 내려주는 역할을 합니다. delegate:self cancelButtonTitle:@"Cancel" otherButtonTitles:@"Enter", nil]; textFieldName = [[UITextField alloc] initWithFrame:CGRectMake(12.0, 50.0, 260.0, 25.0)]; [textFieldName setBackgroundColor:[UIColor whiteColor]]; [textFieldName setPlaceholder:@"username"]; [prompt.. 2012. 6. 15.