인터넷을 노닐다 어떤 포스트를 접하게 되었습니다. 큰 무리없는 내용이지만 본문에 오류가 하나 있어서 답글을 적다 포스팅까지 하네요. http://ithings.kr/357 저는 이 포스트를 공격할 의도는 전혀 없습니다. 단지 문제가 있어 보이는 한 문장만 꼬투리를 잡고 싶을 뿐입니다. 일단 문제가 있는 부분은 이 부분입니다. 많은 개발자들이나, 개발자를 꿈꾸는 사람들은 “탈옥된 아이폰이나 아이패드가 순정 만큼이나 안전하다”고 주장한다. 또한 이러한 [...]
UIWebView는 HTML뿐 아니라 Excel, Keynote, Numbers, Pages, PDF, Powerpoint, Word 문서를 표시할 수 있습니다. 물론 제약이 있지만 기본적인 것은 대부분 표현 가능합니다. 일반적인 HTML 문서와 같은 방식으로 파일 바이너리를 로드하면 되며, iOS 3.0부터는 RTF, iWork ’09 의 파일 포맷도 지원합니다. 참조: http://developer.apple.com/library/ios/#qa/qa2008/qa1630.html
C는 함수형 언어가 아니므로 완전히 함수형으로 사용할 수는 없습니다. 하지만 pure-function과 immutability 같은 주요 함수형 스타일의 이점은 포기하기에는 너무 달콤합니다. 게임 로직과 같이 복잡한 프로그램은 함수형 스타일로 작성하는 쪽이 훨씬 더 쉽고 빠릅니다. 하지만 C를 함수형 스타일을 네이티브하게 지원하지 못합니다. 그래서 몇 가지 방법을 생각해 보았습니다. 먼서 게임 로직은 틱이라는 실행 단위로 명확히 구분됩니다. 틱은 [...]
UI 그래픽을 다룰 때, 화면 픽셀을 제대로 다루는 것은 생각외로 어렵습니다. 왜냐면 화면 픽셀이 너무 크기 때문입니다. 픽셀이 너무 커서, 픽셀 사이에 걸쳐진 점을 보간해도 흐릿한 점으로만 보이기 때문입니다. 그래서 보통 그래픽을 다룰 때는 픽셀에 딱 맞추는 것을 중요하게 여겨 이를 픽셀 그리드에 정렬한다라고 합니다. 그래서 보통 기본적으로 좌표나, 사이즈를 정수 단위로 줍니다. 실수로 계산하고, [...]
이번에는 Objective-C의 이름짓기 관습에 대해서 알아보겠습니다. C의 수퍼셋으로 C의 특성을 그대로 물려받은 결과, Objective-C는 private 메서드도 없고, 이름 보호 기능도 없습니다. private 메서드는 그냥 단순히 문서화하지 않은 (즉 헤더파일에 기록되지 않은) 메서드일 뿐입니다. 그래서 서브클래스에서도 이를 아무 제한 없이 호출할 수 있으며, 심지어 오버라이드 할 수도 있습니다. 그러면 이런 시나리오를 생각해 볼 수 있습니다. 수퍼클래스에서 [...]
오늘 OCUnit을 써봤습니다. 다 적절한데, 한가지 문제가 있더군요. 테스트 코드를 디버깅할 수 없다는 겁니다. 테스트는 쉘에서 시행되어 결과만 출력해줍니다. 저같이 실수를 많이 하는 사람은 한 번에 버그 없는 기능을 작성하기는 매우 힘들고, 기능을 작성하는 도중에 테스트와 디버깅을 많이 하게 되는데, 본 앱 코드에서 이런 테스트를 하면 상당히 많은 시간을 낭비하게 됩니다. 하지만 테스트 스위트는 오로지 [...]
프로그래머라면 로우 레벨 언어와 하이 레벨 언어의 구분이 있고, 이 구분이 명확한 것은 아니라는 것은 누구나 다 알 것입니다. 저도 여기까지만 알았었죠. 하지만 최근 들어 크게 느껴지는 게 있습니다. 여러 가지 언어를 같이 써야 한다는 것이죠. 로우레벨 언어의 특징은 고성능과 명료함일 것입니다. 그래서 단단한 하부 시스템을 만드는 데 좋죠. 하지만 복잡한 로직을 만들기는 어렵고, 시간이 [...]
GLES를 초기화하는 방법은 플랫폼마다 조금씩 다릅니다. 아이폰에서 초기화하는 방법을 알아봅니다. 드로잉 영역으로 사용할 UIView를 만듭니다. GL레이어를 얻습니다. 패러미터를 주어 GL레이어를 초기화합니다. GL컨텍스트를 만들고 설정합니다. 버퍼들을 만들고 바인딩합니다. 뷰포트를 설정합니다. 다음에 보여지는 코드들은 이미지네이션사의 PowerVR SDK에서 발췌한 것들입니다. 뷰 만들기 GL의 그래픽 위에 다른 뷰가 있으면 OS가 별도로 이를 처리해야 하므로 성능저하가 발생합니다. 애플의 가이드 문서는 [...]