본문 바로가기

Dev.Mobile/iPhone21

[iOS] ZenPlayer for iOS 음악재생 기능 추가 HTM5+CSS3 조합의 ZenPlayer 를 보면 UI가 매우 수려하다. 해당 UI가 GitHub 에 iOS 용으로 포팅되어 올라왔다. 음악재생등의 기능은 없이 단순히 UI만 구현되어 있는 버전이다. CoreAnimation Layer 를 사용하여 애니메이션 전환이 구현되어 있고, 웹UI와 비교해서는 탐색을 위한 터치 이벤트는 현재 iOS용에서는 구현되어 있지 않다. 만일, 해당 터치이벤트가 추가적으로 구현이 안된다면 따로 구현하여 적용하고 싶을 정도로 훌륭한 UI다. 음악재생 기능을 위한 MPMusicPlayerController 추가 오리지널 ZenPlayer-for-iOS Repo 를 fork 하여, iPod 음악목록을 가져와 랜덤(셔플)하게 재생하는 기능을 구현. MPMediaQuery 로 Mu.. 2012. 7. 24.
[iOS] 'Goto into protected scope' Error xCode 에서 빌드시 'Goto into protected scope' 에러가 발생한다면, 해당 코드의 goto 키워드 아래에 변수가 선언되어 있다는 의미이다. goto 아래에 선언되어 있는 변수들을 goto 위로 올려 선언하여 해결. EXAMPLE -(BOOL) foo { BOOL err = NO; goto EXIT; UInt32 size = 0; // 'Goto into protected scope' Error EXIT: return err; } SOLUTION -(BOOL) foo { BOOL err = NO; UInt32 size = 0; goto EXIT; EXIT: return err; } 2012. 6. 17.
[iOS]Category 를 이용한 UIViewController 에 오버레이되는 View 만들기 UIViewController 를 이용한 메인뷰 또는 특정뷰에서 일련의 백그라운드 작업시 대기상태를 나타내주는 여러 방법(Modal Popup, Spinner, SubView 등...)들 중에, 카테고리를 이용하여 간단한 Method 호출로 UIViewController 에 오버레이되는 View 를 생성해 보자. CREATE CATEGORY UIViewControll+OverlayView.h #import @interface UIViewController (OverlayView) -(void)showLayer:(NSString *)message; -(void)hideLayer; @end UIViewController+OverlayView.m #import "UIViewController+OverlayVi.. 2012. 6. 16.
[iPhone] Objective-C Cheat Sheet 모든 언어를 처음 배울 때 항상 문법 숙지가 걸림돌이 되는데, Objective-C 의 경우 그 특유의 문법과 Syntax 로 유달리 적응하는데 어려움이 많았다. Naming Convention 도 그렇고, Argument 정의나 Category, Protocol 등의 패턴 적용된 Class 구조를 숙지하고 코딩하는데 제법 시간이 걸린듯 하다. 영어권 개발자의 경우는 Objective-C 특유의 한 문장같은 펑션 구조가 오히려 습득하는데 더 유리할지도 모른다. 다음의 Cheat Sheet 들은 PDF 파일로 출력 후, 책상 근처에 붙여놓고 코딩시 참고하면 유용하겠다. 처음 시트는 2페이지로 구성되어 있고, 나머지 2개의 시트는 1페이지의 PDF 파일. 1. Objective-C Cheat Sheet SO.. 2012. 2. 29.
[iPhone] 홈버튼 사용법 아이폰 단일 홈버튼의 디자인 및 조작 편리성은 반대로 단일 버튼에 대한 4가지 다른 액션에 의한 동작에 대한 복잡성을 야기한다. 관련하여 잘 정리된 홈버튼 동작에 대한 그림이 있어 첨부. 출처 : http://backslashn.com/post/1042495329/how-to-use-your-iphones-home-button 2012. 2. 13.
[iOS] Constants 정의 시, 'k' prefix 사용은 적절한가 Core Foundation, Audio Unit 등의 Core Framework 을 사용할 경우, 'k' 로 시작하는 Constants 를 보게 되는데 Core Foundation Design Concepts 문서를 보면 Naming Conventions 항목에 "(An exception to this convention are constants, which put "k" before the type prefix)" 와 같이 Constants 에 대한 설명이 있다. 그렇다면, 사용자 프로젝트에서도 Constants 정의 시에 'k' prefix 를 사용하여 이름을 정하면 되는 걸까? AudioUnitProperties.h [AudioUnit.framework] enum { kAudioUnitScope_.. 2012. 1. 10.
[iOS] Pan/Drag UIImageView Using Storyboards (스토리 보드를 이용한 움직이는 이미지 만들기) 이미지 표시 및 핸들링을 위한 UIImageView Class 의 드래그 기능을 구현하기 위한 방법에는, UIImageView 를 Subclass 하여 Touch Event 를 Overriding 하는 방법과 Gesture Recognizer 를 이용하는 방법이 있다. Apple Document 에 의하면, Touch Event 를 Overriding 하기보다는 Gesture Recognizer 를 해당 Object 에 구현하기를 권고하고 있다. 우선 Touch event Overriding 에 대해서 간략히 알아보고, Pan Gesture Recognizer 와 함께 Storyboards 를 이용하여 귀찮은 코딩작업 없이 최소한의 코딩으로 드래그 가능한 이미지 구현에 대해 알아보자. Using Touc.. 2011. 11. 30.
[iOS] 네트워크 대역폭 (Network Bandwidth) 조정 테스트를 위한 유틸 INTRODUCTION VoIP 나 기타 네트워크 사용 앱에서 여러 네트워크 대역폭 (3G, Edge, Dial-up) 에 대한 시뮬레이터상에서 테스트가 필요할 경우가 있다. Mac OS X Lion xCode 4.1 이상에서는 Network Link Conditioner 라는 툴을 제공하는데 11개의 다양한 대역폭에 따른 프로파일을 제공하고 각각의 프로파일에 대한 세부설정도 가능하다. 또한, Network Link Conditioner 에 비해 덩치가 작고 가벼운 speedlimit 이라는 http://mschrag.github.com/ 에서 제공하는 System Preferences 항목으로 설치되는 툴이 있는데, Host 및 Port 설정도 가능하다. Network Link Conditioner A.. 2011. 11. 16.
[xCode] 어플리케이션 이름(Application Name) 변경 xCode 로 이미 생성한 어플리케이션의 이름의 수정이 필요할 경우, xCode 에서 간단히 변경 가능. 1. 아래 그림의 순서를 참고하여, 우측 Pane의 File Inspecter 화면이 활성화 되면 Project Name 필드 에디트가 가능. '5'번 에디트 창에서 원하는 이름으로 수정 후, Enter (Return). 2. Enter 후 나타나는 다음의 팝업창에서 해당 파일의 수정 유무도 설정 가능. 참고.) 수정 진행중에 드물게 Crash 되는 경우도 있으니, Snapshot 등을 이용해 사전에 백업. 2011. 11. 16.
[iOS] 오디오 입력 레벨 (녹음 게인) 조정 (in iOS5) iOS 5 이전 버젼에서는 오디오 입력 레벨의 조정이 Programmatic 하게 조정이 불가하였으나, iOS 5 에서 해당 기능 지원. Apple 에서 제공하는 문서 What's New in iOS 의 Core Audio 섹션을 보면, 단순히 There is now programmatic support for adjusting the audio input gain. 문구만 달랑 있어 감을 잡기 어려워 관련 내용을 정리. Implementation AudioSessionSetProperty 펑션의 PropertyID 로 kAudioSessionProperty_Mode 를 지정하고, Value 로 kAudioSessionMode_Measurement 지정하여 입력 게인 조정 기능 활성화. 입력 레벨을 조정.. 2011. 11. 10.