2013 이전 41

iOS6의 화려한 변신은 국내 사용자에겐 그림의 떡(?)

한국시간 9월 20일 iOS6가 정식 출시 되었다.그에 맞추어 전에 썼던 글을 수정해 보았다. 베타 때와 달라진점과 그래도 여전히 부족한 점에 대해 중점적으로 소개해 보겠다. 이번 iOS6에서 중점적인 부분은 구글 맵을 버리고 새롭게 도입한 맵과 좀 더 다양한 기능이 추가된 시리 이다. 먼저 맵, 발표할때만 보더라도 우와~ 우와~ 하면서 보았다. 3D형식의 일반 맵과 FlyOver라는 심시티 스러운 뷰들이 놀라울 다름이었다. 더군다나 tomtom의 네비게이션 기능까지 추가되어 화려하고 완벽한 지도앱으로 탈바꿈 되었다. 베타 때보다는 생각 보다는 많은 것이 지원되었다. 일단 독도! 가 제대로 표현이 되었고, 턴바이턴 네이게이션이 국내에서 동작을하고, 도로명과 상호가 한글화 되었다. 하지만, 아직도 세세한 ..

2013 이전/기타 2017.02.25

[클라우드 서비스] 클라우드 서비스별 장단점

오늘부로 소문만 무성했던 google Drive 서비스가 미국을 시작으로 본격적으로 시작되었다.한국에 정식 서비스는 5월 3일 부터 시작된다고 한다.덕분에 지금 https://drive.google.com/start 를 들어가면 404 Not Found 에러가 보여진다.단, 방법이 있는데google 계정으로 로그인 후에 언어를 영어로 설정해주면 페이지가 보여진다.그랫더니 "Your Google Drive is not ready yet" 라는 메시지가 나와서 조용히 기다리는중....내가 요녀석을 목빠지게 기다리는 이유는... 은근히~ 딱 맘에 드는 클라우드 서비스가 없다..그래서 간단히 클라우드 서비스의 장단점을 다분히 주관적으로 정리해보려고 한다. Drop box세계적으로 가장 많은 사용자를 가지고 있는..

2013 이전/기타 2017.02.25

[iPhone 개발] string 이 URL 형식인지 확인하기

어떤 string이 url인지 판별하는 방법은 여러가지가 있다. 하지만 대부분 http 와 같은 프로토콜을 꼭 포함 시켜야 하거나,"adf.asdf.asdf" 등의 실제로 사용가능한 주소 형식이 아니더라도 주소로 판별되는 경우가 있다.그래서 좀더 정확성 높은 방법을 찾다가정규 표현식을 통한 방법 중에 괜찮은 방법을 찾앗고, 여기에도 문제점이 있어서 수정해서 아래와 같이 사용해 보았다. NSString *ptn = @"(((http|https)://)?([0-9a-z_-]+\\.)+(aero|asia|biz|cat|com|coop|edu|gov|info|int|jobs|mil|mobi|museum|name|net|org|pro|tel|travel|ac|ad|ae|af| ag|ai|al|am|an|ao|aq..

[iPhone 개발] AudioSessionAddPropertyListener 의 해제

audio session 을 사용하다보면 AudioSessionAddPropertyListener 를 통해서 리스너를 등록해서 사용하게 되는데,이 리스너는 해제해주지 않으면 계속 해당 프로퍼티에 대해서 리스너를 유지하고 있다.리스너를 등록한 객체가 release 되더라도, 리스너는 해제되지 않는다. 명시적으로 해지를 해주어야 하는데 AudioSessionRemovePropertyListenerWithUserData위 함수를 통해서 해제를 해주어야 한다. AudioSessionAddPropertyListener 은 계속 추가되는 방식이기 때문에 콜백 함수대신에 NULL을 넣는 등의 방식으로는 해제가 되지 않고 위에 소개된 메소드를 통해서만 해지가 가능하다. 사용법은 AudioSessionAddPropert..

[iPhone 개발] sqlite query 따옴표 처리

sqlite 를 이용해서 쿼리를 사용하다 보면 쿼리에서 스트링을 넣을때 SELECT TEST FROM TEST_TABLE WHERE TEST = 'string' 와 같이 따옴표 안에 string을 넣게 된다. 그런데 스트링에 따옴표를 추가하고 싶으면 어떻해야 할까? 당연히 \' 라고 생각을해서 스트링을 변환을 했더니 되지 않았다. db를 잘 아시는 분들에게는 쉬운 답이겠지만, 찾아 보니 따옴표를 두개를 넣어 줘야 한다. 즉 'string' 이라는 string을 입력하고 싶으면 SELECT TEST FROM TEST_TABLE WHERE TEST = '''string''' 와 같이 처리해 주어야 한다. '''string''' 쌍따옴표가 아니라 모두 홑따옴표 입니다.

[iPhone 개발] audiosession category 의 비밀

사운드를 나오게 하는 앱을 개발하다 보면여러 sound와 관련된 문제에 봉착하게 되는데여기에는 audiosession이 가지고있는 category에 기인하는 경우가 많다. 여기서 먼저 다루어볼 부분은 route 부분이다.현재 iphone audiosession 에는다음과 같은 category가 있다.AVAudioSessionCategoryAmbient; AVAudioSessionCategorySoloAmbient; AVAudioSessionCategoryPlayback; AVAudioSessionCategoryRecord; AVAudioSessionCategoryPlayAndRecord; AVAudioSessionCategoryAudioProcessing; 각각에 대한 좀더 구체적인 설명은 아래 링크를 ..

[iPhone 개발] keyboard 애니메이션 정보 얻기

키보드에 붙어 다니는 뷰를 만들다 보니 keyboard 가 가지고 있는 애니메이션과 동일하게 해당뷰의 애니메이션을 지정해주어야 한다.예전 iOS4 까지는 [UIView setAnimationDuration:0.3]; [UIView setAnimationCurve:UIViewAnimationCurveEaseInOut]; 위와 같은 애니메이션을 주면 키보드와 혼연일체로 움직인다. 하지만 iOS5 로 업데이트 되면서 keyboard 가 빨라 졌다. 테스트를 통해서 확인해 본결과 duration이 0.26으로 줄어 들었다. 게다가 iOS5에는 일본어 키보드에 힌트를 위한 뷰가 키보드위에 생겨났다. 이에 관한 것은 http://hagulu.com/129 포스트를 참고 하길 바란다. 일본어 키보드 때문에 대응해야하..

[iPhone 개발] mov 파일 mp4로 변환하기

안드로이드와 호환이 되는 파일 전송을 구현하다 보니 동영상 전송에 문제가 발생했다. 일반적으로 아이폰 비디오 레코더를 이용을 하게되면,mov라를 확장자의 quickTimeMovie라는 방식으로 저장이 되어 진다.이 파일을 그대로 안드로이드에 전송을 했더니안드로이드에서는 하드웨어 코덱을 통해서는 재생을 할수가 없었다.quick time movie 와 mpeg-4는 외부 포멧만 다를뿐 내부의 영상과 음성 코덱은 유사하다.따라서 빠르게 변환이 가능한 방법이 있지 않을까 하고 찾다가 방법을 찾게 되었다.바로 iOS 4 부터 지원되는 AssetLibrary를 이용하는 방법이다이를 통해서 아래와 같이 구현해 보았다.변환을 원하는 파일의 NSURL 과 저장을 원하는 파일 path의 NSString 을 주면 해당 pa..

[iPhone 개발] UIView 에 간단한 이벤트 적용하기

Button이 아닌 일반 UIView에 각종 터치 체스췌를 등록하는 방법이다.iOS sdk4.0부터 지원되는것으로 알고 있다.UITapGestureRecognizer *tapGesture = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(tapPiece:)]; [piece addGestureRecognizer:tapGesture]; [tapGesture release], tapGesture = nil; UITapGestureRecognizer 를 만들고 액션을 지정해주면 된다.그리고 해당 뷰에 addGestureRecognizer 를통해 등록을 해주면 해당 view에 이벤트를 등록해 줄수 있다. UIPanGestureRecogn..