본문 바로가기

iPad9

iPad와 가상현실 가상현실 인터페이스가 한 때 뜬 적이 있었습니다. 보통 가상현실을 구현하기 위해 사용하는 인터페이스로는 HMD(Head-Mounted Display)를 썼죠. 주로 안경이나 헬멧 형태로 공급되었는데, 이걸 뒤집어 쓰고 전원을 켠 다음 눈을 뜨면, 눈 앞에 컴퓨터가 제공하는 가상현실이, 마치 실제 환경인양 제공되는 형태였습니다. 모니터 대신인 거죠. 그러다 증강현실이 떴습니다. 뭐 가상현실까지는 진짜 필요 있느냐. 굳이 가상현실이 필요하다면, 우리가 쓰는 단말과 카메라를 이용해서, 우리가 눈으로 보는 풍경에 정보를 덧 입히면 되는 것이 아니겠느냐. 그래서 나온 것이 증강 현실이었죠. 현실의 풍경에다 스마트폰이나 패드를 갖다대면, 그 화면을 통해 현실 시계의 오브젝트들에 정보를 투사하는 것이 증강 현실입니다.. 2011. 11. 2.
[iPhone/iPad] CALayer에 대한 animation 뷰에 그려지는 내용은, 사실 CALayer 객체 위에 그려집니다. 뷰에 대해서 animation을 적용할 수 있듯이, CALayer 객체에 대해서도 animation을 적용할 수 있습니다. CALayer에 대한 reference를 찾아보시면 아시겠습니다만, CALayer 객체에는 여러 개의 애니메이션 가능한 프라퍼티들이 있습니다. CALayer는 key-value coding을 지원하기 때문에, 키 값을 사용해 이들 프라퍼티에 애니메이션을 지정할 수 있습니다. 이런 애니메이션은 적용하기도 간단합니다. 물론 복잡한 애니메이션을 구현하려면 좀 심각한 코딩을 해야 하겠습니다만, 레이어 하나 위에 이미지를 그리고 그 이미지가 깜빡거리게 만드는 정도는 대단히 간단하게 처리할 수 있습니다. 아래의 코드를 보시죠. .. 2011. 2. 8.
[iPhone/iPad] NSNotificationQueue를 사용한 비동기 프로그래밍 보통 비동기적으로 프로그래밍 한다고 하면 많은 분들이 쓰레드 프로그래밍을 떠올립니다. 네. pThread같이 비교적 알기쉬운 쓰레드 메커니즘을 사용하면 아주 간단하게 비동기적 프로그래밍을 할 수 있죠. 그런데 iPhone이나 iPad는 좀 더 간단한 메커니즘을 제공합니다. 쓰레드 프로그래밍을 단 한줄도 하지 않고서도, 시스템이 제공하는 쓰레드의 도움을 받아 비동기 프로그래밍을 할 수 있죠. 그리고 이렇게 프로그래밍 하면 프로그램을 구성하는 클래스 사이에 의존 관계를 꽤 간단히 끊어버릴 수 있습니다. 결론부터 이야기하자면 NSNotification을 이용하자는 것인데요. 프로그램 내의 한 모듈에서 다른 모듈로 어떤 사건의 발생을 통지하여, 보내는 쪽 클래스의 실행 궤적과 받는 쪽의 실행 궤적이 비동기적으로.. 2011. 2. 8.
[iPhone/iPad] UIScrollView를 사용한 zooming 및 페이지 단위 스크롤링 UIScrollView를 사용하여 Zooming, 페이지 단위 스크롤링을 고려하려면 주의해야 할 것이 있습니다. 그건 바로 "하나의 UIScrollView 하위 클래스에 Zooming 기능과 스크롤링 관련 기능을 동시에 우겨넣으면 안된다"는 것이죠. 같이 우겨넣어 프로그래밍을 할 수 있을지도 모르겠습니다만, 아마 "굉장히" 프로그래밍하기 어려울 겁니다. 그럼 확대/축소도 되고 좌우로 스크롤링도 되는 PDF 뷰어 같은걸 구현하려면 어떻게 해야 하나요? 가장 간단한 방법은 스크롤 뷰를 중첩(nesting)하는 겁니다. 안쪽 스크롤 뷰에는 확대/축소 기능을 넣고, 바깥쪽 스크롤 뷰에는 좌우 스크롤 기능을 구현하는 것이죠. 확대 축소 기능에 대해서는 지난번 글에 잠깐 다루었는데, 좌우 스크롤 기능과 함께 사용하.. 2011. 1. 20.