본문 바로가기

Software/iOS & Objective-C

(23)
Audio Unit Hosting Fundamentals Audio Unit Hosting FundamentalsiOS의 모든 Audio 기술은 그림 1-1과 같이 Audio Unit위에 구축되어 있다. Media Player, AV Foundation, Open AL 및 Audio Toolbox와 같은 상위 Level의 기술은 Audio unit을 랩핑하여 특정 작업에 간소화된 API를 제공한다. 고차원 적인 Audio 컨트롤이 아니라면 애플에서는 Audio Unit을 직접적으로 사용하는 것을 권장하지 않으며, 위에서 언급된 랩핑된 Class들을 통해 접근하는 것을 권장한다. Audio Units in iOSiOS는 목적에 따른 7개의 Audio Unit을 제공한다. Effect UnitiOS4 부터 내장 iPod Application에서 사용되는 것과 동일..
Audio Unit Hosting에 대하여... About Audio Unit HostingiOS는 녹음, 재생, 오프라인 렌더링 및 VoIP(Voice over Internet Protocol)와 같은 실시간 대화를 위한, Mixing, equalization, format 변환 및 실시간 입/출력을 지원하는 오디오 처리를 위한 Plug-Ins을 제공한다.이것들을 동적으로 사용(Host) 가능하며, 강력하고 유연한 Plug-ins은 iOS Application에서 제공된다. Audio Units은 일반적으로 그림과 같이 Audio Processing Graph라는 객체의 Context에서 작업이 이루어진다. 그림을 통해 예제를 살펴보면, App은 하나 이상의 Callback 함수를 통해 Graph의 첫 번째 Audio Unit로 오디오를 전송하고 각..
iOS Audio Play Mac OS 또는 iOS에서 Audio를 Play하는 방법은 여러가지가 있다. 방법에는 크게 두가지 방식으로 나뉘는데,- Audio를 컨트롤 위해 추상화 작업이 완료된 API를 이용하는 방법(AVAudioPlayer, MPMediaPlayer) or- Low Level에서 직접 오디오 Unit를 활용하는 방법(Audio Unit, AUGraph)이다.문제 접근의 시작은 이러하였다. AVAudioPlayer나 MPMediaPlayer 와 같은 추상화된 오디오 Class를 통해 Equalizer 기능을 제공하고 싶었다. 하지만 해당 API로는 Equalizer 기능을 수행할 수 없었다.(여기서 말하는 Equalizer는 iOS Setting의 기본 eq 정보를 말합니다.) 자료정보를 찾아보다 알게된 사실인데..
Concurrency Programming Guide 요약 해당 글은 https://byunsooblog.wordpress.com/2013/03/26/concurrency-programming-guide-요약/ 에서 작성되었습니다.Concurrency Programming Guideconcurrency and application design예전에는 일하는 시간이 CPU의 clock 속도로 결정이 됐었다. 칩의 효율이 점점 발전하니까 다른 성능을 발전시킬 방법이 없나 찾게됬고, 결국 해결방법은 각 칩의 프로세서 코어의 숫자를 늘리는 것. 이제 속도는 빨라지게 됬지만, 신경써야 할 점은 어떻게 추가된 코어의 이점을 이용할 것인가가 되었다. 여러개의 코어의 이점을 얻기 위해서는 소프트웨어가 여러가지 일을 동시에 하도록 만들어져야 한다. 여러개의 코어를 사용하는 방법..
[iOS] App 내에서 언어 변경법 링크 참조. http://www.factorialcomplexity.com/blog/2015/01/28/how-to-change-localization-internally-in-your-ios-application.html How To Change Localization Internally In Your iOS Application Unfortunately, there’s no official way provided by Apple for this purpose. Let’s look at two methods for solve this problem. Method 1 Apple provides a way to specify application specific language, by updating th..
클래스 기본 문법 #import // 1. ObjC는 smalltalk 에 영향을 받음 (용어가 다릅니다) // class : 객체를 만들기 위한 틀 // 2. @ 기호는 C언어의 확장문법의 시작. - ObjC 문법 // 3. 객체를 만드는 방법. // 1) ObjC 객체는 힙에 생성해야 한다. // 2) Car* p = [Car alloc]; // Car* p = new Car; // 4. 접근 지정자(메소드는 지원하지 않는다.) // @private @protected(기본) @public // @package(같은 모듈안에서만 접근 가능 64bit, Java) // Car.h @interface Car : NSObject { // @protected // @public // @private int speed; int..
iOS Crash Log 추출 Clash Log란 무엇이며, 어떻게 확인할 수 있는가?iOS 기반에서 돌고 있는 Application이 Clash 났을 경우, Operating system에서 crash report 또는 crash log를 iDevice에 생성한다.사용자는 Application이 종료되는 조건을 포함하여, Clash log를 통해 많은 정보를 획득 할 수 있다.Clash 발생시 해당 thread에서 무슨 일이 벌어지고 있는지 확인을 하고, 발생한 thread를 식별 할 수 있다.또한 추가 Application을 통해 어떤 Code Line에서 해당 문제가 발생했는지 추적이 가능 하다.Clash 로그는 하기 OS 별 repository를 통해 확인이 가능하다.Windows의 경우 iTunes가 설치되어 있어야만 log..
Xcode 개발관련 설정 Alfred (App Store)키보드 런쳐 Sublime Text 3 (http://www.sublimetext.com/3)텍스트 에디터 SourceTree (http://sourcetreeapp.com)git 용 GUI 클라이언트 chrome browser (https://www.google.co.jp/chrome/browser/)설명 필요없슴 cocoapods (http://cocoapods.org)sudo gem install cocoapodsObjective-C 라이브러리 관리 Homebrew (http://brew.sh/index_ko.html)툴ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/ins..