본문 바로가기

It58

[bada] 바다 SDK 오픈소스 에뮬레이터 빌드 (Build bada SDK Opensource emulator) INTRODUCTION 삼성의 오픈소스 배포 사이트를 통해 bada SDK 소스 코드가 공개되어 있다. 현재 블로그 작성 시점에서 공개된 최신 버전은 2.0.0 으로 바다 에뮬레이터 빌드에도 동일한 버전의 SDK Source code 를 사용하였다.에뮬레이터 빌드를 해보게 된 경위는, BalloonRide 라는 바다 개발자 사이트에 소개된 cocos2dx 기반의 게임 프로젝트를 테스트 해보다가 에뮬레이터에서는 시작화면에서 'START' 로 메인 화면 전환시점에 Exception 도 없이 앱이 뻗어버리는 현상이 발생하여, 혹시 에뮬레이터 메모리 부족으로 인한 문제인가 싶어 메모리 증가를 위해서였다. (에뮬레이터 메모리 관련 옵션 추가 개발은 예정에 없는건가?) 결과는 에뮬레이터 메모리를 2배 정도 증가시켜.. 2012. 3. 27.
[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.
[iOS] Audio Coding How-To's (From developer.apple.com) Referenced from Audio & Video Coding How-To's Translated by metalkin Audio Recording 내장 마이크로부터 오디오 녹음 Audio Queue Services (AudioToolbox/AudioQueue.h) 와 Audio File Services (AudioToolbox/AudioFile.h) 의 인터페이스를 사용. 상세 내용과 샘플코드는 Audio Queue Services Programming Guide 참고. 헤드폰 마이크로부터 오디오 녹음 사용자가 마이크 내장된 헤드폰을 디바이스에 꽂을 경우, 디바이스 시스템이 자동으로 내장 마이크 대신 헤드폰 마이크의 음성을 사용. 녹음 입력 레벨 조정 iPhone OS는 고정된 녹음 입력 레벨을 사.. 2011. 10. 26.
[WM6] 한글 입력시 실시간 검색을 위한 CEdit Handling 에디트 박스에 현재 입력중인 문자열을 DB등에서 실시간으로 바로 검색하여 결과를 출력하는 루틴을 구현하고 할 때, CEdit 에서 영문이나 숫자 입력시에는, EN_CHANGE Notification Event로 문자열 변경된 상태를 통지 받을 수 있다. 해당 Event가 떨어지면, GetWindowText 등으로 해당 문자열을 가져와 DB Query 수행이 가능하다. 다만, 한글이나 기타 Unicode 문자열 입력의 경우에는 IME를 통해 조합(Composition) 되는 과정이 추가되기 때문에, EN_CHANGE Event에 의존할 시에는 현재 입력중인 문자열을 제대로 취득하지 못하는 문제점이 발생한다. SOLUTION 1. IME 조합완료 후, Parent에 완료 통지 /* CEdit Derived .. 2010. 12. 2.