본문 바로가기

연구하기84

Xcode 4 빌드 디렉토리 클리닝 작업 Xcode 3 에서 빌드 디렉토리가 프로젝트 디렉토리 아래에 있던 것과는 달리, Xcode 4 에서는 빌드 디렉토리가 별도의 폴더 아래 있게 되었다.위치는 사용자 디렉토리/Library/Developer/Xcode/DerivedData/ 이다. 사용자 디렉토리 아래의 Library 디렉토리는 hidden 이므로 주의. (쉽게 접근하는 방법은 다음번에 간단히 설명할 예정)일단 이 방법은 빌드 디렉토리가 프로젝트 디렉토리에서 빠지다 보니 커밋 대상에서 간단히 배제되어 Xcode 3 시절처럼 빌드 디렉토리 뺀다고 뻘짓거리 할 필요도 없고 (svn ignore 안해주면 커밋할 떄 빌드 디렉토리가 통째로 추가되는 불상사가...) 프로젝트 압축할 때에도 빌드 디렉토리 지우고 자시고 하는 복잡한 작업을 안해도 되니 .. 2012. 5. 6.
UINavigationController 에서 navigationBar 변경 참고 페이지 http://stackoverflow.com/questions/1869331/set-programmatically-a-custom-subclass-of-uinavigationbar-in-uinavigationcontrol 개요 UINavigationController 기본 클래스는 생성하면 더 이상 navigationBar 및 toolbar 등의 각종 구성 요소들에 대한 변경을 허용하지 않는다. 실제로 API 문서를 보면, 이들 프로퍼티가 readonly 로 되어있음을 확인할 수 있다. 왜 그런지에 대한 고민은 일단 마지막에 하도록 하자 따라서 UINavigaionBar 를 교체하려면 어지간히 골치가 아프다. public 함수들이 극히 제한적인 관계로 오버라이딩해서 프로퍼티를 엎어쓰는 것도 .. 2012. 3. 26.
UIImage 의 imageNamed: iOS 개발 경험이 많지 않은 시점에서 위의 메소드를 사용하다가 종종 비정상종료를 경험한 사람들이 있으리라 생각한다. 오늘은 이에 대해 언급해 볼까 한다. 일반적인 iOS 의 메모리 정책에 따르면, 해당 클래스의 정적 메소드들이 개체값을 반환 시, 자신이 직접 관리하는 형태가 아니라 생성하고 끝내는 형태라면, 해당 개체에 autorelease 를 걸어서 자신이 더 이상 소유권이 없다고 명시하고 반환하는 것을 원칙으로 하고 있다. 따라서, 이러한 개체를 반환받았을 때, 이 개체를 런타임 중에 지속적으로 사용하려 한다면, 해당 개체에 retain 을 걸어 해당 개체의 지속성을 직접 연장해야만 하는 것이 iOS 상의 기본적인 개체 사용 패턴이다. 하지만 위에서 이야기했듯이, 자신이 직접 관리하는 형태, 즉 개.. 2011. 12. 20.
SAI Tool(사이툴) 구입 및 SAI Tool 에서 와콤 타블렛 압력감지가 작동하지 않을 때 해법 SAI Tool 구입. 으 가격 쎄네요. 5750엔이면 얼마여... 아무튼 구입하고 설치까진 좋았는데, 와콤 타블렛의 압력감지가 동작하지 않더군요. 구글에서 검색하니 국내 문서에선 나오지 않아 영어로 검색해 봤더니 좀 찾으니까 나오네요. 해법 요약드리면 다음과 같습니다. 1. 시작 -> 프로그램 -> 와콤 타블렛 -> 와콤 타블렛 설정 유틸리티 실행 2. 내 설정 삭제, 이어서 모든 사용자의 설정도 삭제. (삭제 둘 중 하나라도 누르면 자동으로 프로그램이 닫혀 버리니 재실행해서 다시 삭제해 주시기 바랍니다) 아주 간단하죠. 그런데 이런 경험을 한 사용자가 국내엔 하나도 없었던 건가;; 어째 해법이 하나도 없네요. 해법 찾아낸 곳은 아래 링크 http://sai.detstwo.com/smf/index.ph.. 2011. 8. 28.
디자이어를 써보면서 느끼게 된 안드로이드 OS 의 정황 디자이어를 보면, 구글의 넥서스 원과 마찬가지의 문제들 (어플 저장공간 한계, 이미지 출력이 16비트로 이루어지는 문제, 최대 힙메모리 제한 문제 등) 을 그대로 가지고 있습니다. 이것으로 보아, HTC 에서는 디자이어 개발 시 OS 를 거의 건드리지 않고 그대로 올린 듯 합니다. 뭐 이유는 여러가지가 있을 듯 합니다. 디자이어 발매 후 얼마 있지 않아 잡다한 문제들이 해결되어 나올 2.2 Froyo 가 기다리고 있고, 구글 넥서스원과 내부적으론 거의 동일한데다 동일한 곳에서 생산되고 있는 디자이어는 (아시다시피 구글 넥서스원의 제조사는 디자이어와 마찬가지로 HTC입니다) 아마도 빠른 시일 안에 Froyo 가 이식될 수 있을 것이므로, 굳이 손볼 필요가 없다고 느껴진 것이겠죠. 흥미로운 것은 이러한 잡다.. 2010. 5. 24.
안드로이드 개발하면서 짜증나는 점. 1. 부족한 힙 메모리. 초기 안드로이드 폰은 16메가, 요즘 나오는 폰들은 24메가정도. (모토로이는 특이하게도 28메가) 참고로 윈모 폰은 32메가, 아이폰은 3G 가 45메가. 3GS 는 더 크다는 것만 확인. 해상도 480x800 짜리 폰에 힙메모리 24메가면 뭐 어쩌라는 거요. 2. 부족한 어플 저장 공간 윈모폰과 비슷한 구조로 인해 어플공간이 비좁음. 모토로이나 디자이어는 각각 SKAF 와 UI 덕에 120-150메가대의 용량을 가지는데, 덩치 큰 어플 몇개 깔면 끝. 그나마 최근 나온 갤럭시 A 가 600메가 대라고 들음. 구글에서는 외장 메모리에 데이터를 설치하도록 권고하지만, 어플을 이렇게 서비스하려면 개발자들이 앱스토어에 앱 올리는 거 이외에도 별도의 서버를 굴려서 데이터 제공 서비스를.. 2010. 5. 2.
Scene Engine + Scene Swing Presentation v0.1.1 Scene Engine v0.1.1 + Scene Swing Presentation v0.1.1a 입니다. 아직 구조 변경중이라 소스는 포함되어 있지 않습니다. 변경사항은 다음과 같습니다. Scene Engine Version 0.1.1 2010.02.11 전체 - 이 버전은 Version 0.1.0 과 호환됩니다. 따라서 0.1.0 을 지원하는 프리젠테이션 개체라면 문제없이 사용할 수 있습니다. End User Developer 1. 스크립트 파싱 부분을 전담하는 새로운 클래스 SCEParser 를 추가하였습니다. - SCEParser 는 스크립트를 읽어들여 SCEScript 인스턴스를 생성하고, 스크립트 내 구문 및 구문 내의 명령어와 인자를 분해하는 작업을 수행합니다. - 기존에 이 역할을 수행하던.. 2010. 2. 17.
간단한 그래픽 어드벤처용 엔진 v0.1.0 간단한 그래픽 어드벤처용 엔진 만들어봤습니다. 2년전쯤 조금 건드리다 만 걸 다시 작업한 것입니다. 버전도 그렇고 용량도 그렇고 보시면 아시겠지만, 엔진이라 할 것도 없는 엄청 단순한 레벨의 물건입니다. 그냥 비스무레한 레벨로 구동된다는 거 정도에 의의를 두시면 될 듯. Scene Engine + Swing Presentation 인데, 이름에서 보다시피 2가지 구현체가 합쳐진 겁니다. Scene Engine 이 기본적인 스크립트 파서이고 (사실 얘가 하는일은 별거 없지만) Swing Presentation 은 Java Swing 기반으로 만들어진 GUI 정도로 보시면 되겠습니다. 집 서버도 박살나고 해서 소스 관리가 안되는 관계로 리비전 넘버도 없고 클래스 내 버전번호같은 것도 없습니다. 인라인 코드도.. 2010. 2. 5.
아이패드가 추구하는 목표를 '종이' 라고 언급한 이유. ** 글의 내용은 수정될 수 있습니다. 중요 내용이 수정되었을 경우 그 부분에 대해 언급해 두도록 하겠습니다. 과거의 하드웨어 플랫폼이 이 주도하는 시장과는 달리 현재에는 "컨텐츠" 가 시장을 주도하고 있으며, 그 "컨텐츠 시장" 의 사상을 투영하는 도구로서 하드웨어 플랫폼을 만들어가는 형태가 됨은 이미 여러가지 성공 요소들로 잘 나타나 있습니다. 제목에 언급한 애플의 아이팟-아이튠즈, 아이폰-앱스토어가 그러하죠. 여기서 사상을 투영한 하드웨어 플랫폼이라는 것은 중요합니다. 과거처럼 하드웨어 플랫폼 그 자체가 사상이 되는 시대는 지났지만, 컨텐츠를 바탕으로 하는 사상을 이어받는 하드웨어 플랫폼은 여전히 의미를 가지고 있습니다. 왜일까요? 사람들이 컨텐츠와 접촉하게 하는 역할을 최종적으로는 하드웨어가 수행.. 2010. 1. 29.
반응형