아이폰 6+ 대응하기 위한 이미지 리소스 사용 테스트. 기존 xib에서 자동으로 아이폰6, 6+가 대응되도록 개발되어 있는 환경에서 아이폰6를 대응하기 위해 테스트 해 보았다. \ 위 이미지와 같이 아이폰6까지는 @2x의 이미지를 사용하며, 아이폰6+에서만 @3x이미지를 사용한다. 여기서 특이한 점은 동일한 200px이미지를 아이폰5에서 보았을 때 @2x 처리한 이미지는 깨져서 나오며,@를 처리하지 않은 이미지의 경우 선명하게 나왔다.결국 이미지를 @?x를 써가며 사용할 필요 없이 디자인 가이드에 이미지 크기만 명시되어 있다면이미지 1종에 대해서 추가하면 될 것 같다는 결론이다.
webview와 세션이 30분 유지되는 문제로 인한 강제 할당 방법.문제webview에서 보안을 위해 세션 처리가 되어있지만 30분 지날 경우 세션 해지된다. 해결방안1. 특정 버튼 선택 시 webview를 호출할 경우 세션을 강제로 할당할 수 있는 고유 ID등을 파라메터와 같이 전달한다.2. 추가적인 문제 발생 30분 이후 앱을 실행할 경우 세션이 만료되어 webview가 제대로 동작하지 않는다.3. 마지막으로 웹뷰에 세션 유지를 위해 파라메터 던지는 시점을 기준으로 현재 시간을 저장한다.4. 앱이 background상태에서 foreground상태로 돌아올 경우 시간을 체크하여 webview를 강제로 호출한다.5. 강제 세션 할당 되도록 설정된 webview 호출 함수loadWebViewWithURL를..
무언가를 개발하기 위해 구두로 일 할 수는 없다. 개발이 완료된 다음에 쌍방간에 서로 떠넘길 수 있는 요지가 생기거나, 개발 중간중간 어떻게 해야할지 몰라 막히기 때문이다. 내부 기획서부터 외부기획서 소기업부터 대기업에서 나오는 모든 기획서를 보았지만 역시 대기업에서 받았던 기획서을 토대로 개발할 경우에는 기획서를 정독하게 되며, 따로 기획자에게 물어볼 필요성을 못느끼게 한다. 기획서를 받는 순간 서류의 두께가 말해주고 있음은 물론이고, 나눠진 분류나 스토리 보드만 보고도 대충의 흐름이 파악된다. 반면 부족한 기획서는 화면만 달랑 넣어놓고 버튼 기능설명만 해 놓거나, 전체적인 구조를 알 수 없게 해놓는다. 이 화면에서 저 화면을 어떻게 가는지 중첩이 되는지 예외상황이 발생하면 어떻게 처리해야 하는지등 보..
Tag값을 이용한 객체 속성 변경하기. 전역변수로 설정하지 않더라도 Tag를 이용해 객체의 속성을 변경할 수 있다.단 객체가 addSubView된 객체는 전역으로 설정되어 있어야 한다.객체는 어떠한 것도 가능하며 캐스팅해주어야 한다. (객체타입)[뷰 viewWithTag:??]다음 예제는 View에 UIButton, UIimageView를 생성하고, Button 선택 시 ImageView의 backgroundColor를 교체해주는 소스이다. 12345678910111213141516171819202122232425262728293031323334353637383940414243444546 //팝업 생성.-(void)createPopup{ popupView = [[UIView alloc] initWithF..
원인기존 푸쉬서비스를 이용하지 않은 App ID에 APNS 인증서를 등록하였지만 토큰을 받아오지 못하는 오류. 콘솔에 NSCocoaErrorDomain Code=3000 발생 해결 방법xCode6기준 : xcode > preferences... > acount > apple IDs > 해당 인증서 우클릭 후 인증서 삭제 > 왼쪽 좌측 새로고침인증서를 전체 삭제하더라도 새로고침을 하면 다시 생성된다. Clean 및 xCode를 다시 시작한 후 다시 빌드하니 기존 build Settings의 provisioning Profile 에러가 발생하여 다시 변경 후 실행~토큰이 정상적으로 나온다.
iOS에서 youtube 동영상 재생하기. 기존에는 webview를 통해 youtube영상을 재생했지만 구글에서 라이브러리를 제공해주고 있기에 관련 작업이 있어 사용해 보았다. 구글 참조 문서.https://developers.google.com/youtube/v3/guides/ios_youtube_helper위 문서의 cocoaPods 부분을 제외하고 "Adding a YTPlayerView via Interface Builder or the Storyboard" 해당 부분부터 따라하면 된다. 코코팟을 처음 써봤는데 뭔가 싶어 애좀 먹었다. 셋팅은 가능 했지만 원하는대로 되지 않아 결국 포기하고 라이브러리를 수동으로 설치하였다. 추가로 유투브 라이브러리는 설치가 되지 않았다. 다른건 되는데... 진행 ..
문제. 별도의 로그인을 통해 받은 세션값을 웹뷰에 할당하고, 다른 계정으로 로그인 시 기존 쿠키값이 남아있는 문제가 발생. 이를 해결하기 위해 전체 쿠키 삭제. // 모든 캐쉬 삭제-(void)deleteAllCookie {NSHTTPCookieStorage *storage = [NSHTTPCookieStorage sharedHTTPCookieStorage];for (NSHTTPCookie *cookie in [storage cookies]){[storage deleteCookie:cookie];} } //특정 도메인만 삭제-(void)deleteCookieDomain:(NSString *)domain {NSHTTPCookieStorage *cookies = [NSHTTPCookieStorage shar..
앱 리뷰 신청 결과 8일만에 리젝. 내용은 다음과 같다. Thank you for your resubmission. However, here is our finding: 20.2 Details Your app includes a contest but it does not: - Include official rules for the iPad Giveaway event, which is required. - Indicate that Apple is not involved in any way with the contest. Next Steps It is necessary to: - Include official rules of the contest or sweepstakes in the app - Includ..
버전 관리를 위해 svnX 툴을 이용해 복사해서 브런치에 폴더를 복사했는데 checkout 받고 커밋하려니 커밋이 되지 않는다.콘솔에서 .svn파일을 지우고 다시 업로드 하고 지우고, 몇 번을 했지만 않된다... 사진의 체크박스 부분이 회색으로 되어 있어 체크가 안될경우 우클릭 하여 Add해주면 해결 되는데Add가 나오지도 않는다. 혹시나 싶어 svnX 의 Working Copies에서 업데이트 후 확인해 보니 내가 수정 했던 파일이 수정 되었다고 나오길래해당 파일 선택 후 commit!! 그리고 다시 xCode에서 파일 수정 후 commit!!하니 된다..!!! 이건 뭐... 3시간 삽질 한게 안타까울 뿐...xCode는 예전부터 새로 생성된 저장소에 처음 커밋시 커밋이 안되는 버그가 있었는데 그거랑 ..
새로 입사한 회사에서 대략 4개월정도 투자해서 만들었을만한 앱을 Android, iOS 모두 보게 되었다. iOS야 초장기부터 벌써 4년넘게 봐서 어느정도 능숙하다라고 말할 수 있지만 그렇다고 스스로 잘한다는 생각은 들지 않는다. 소스코드를 보면 그사람의 성격이나 능력 개발 경력등이 보인다.이번 아이폰 소스는 경력이 많지 않은 사람의 것이리라는 생각이 들었다. 대략 1년 정도? 개발자로 생각되었다.그 이유를 들자면 이렇다.1. 기본적인 주석을 한 줄 한 줄 해더파일조차 달아놓았다.2. 오래된 개발 방식으로 개발되었다. xib3. 하나의 클래스에 3천 라인이 넘어간다. 4. 프로토콜을 남발하였다. 프로토콜이 하나의 클래스에서 3~4개 클래스를 거쳐 호출 된다.5. 너무 세분화 시킨 나머지 하나의 화면을 구..