본문 바로가기

iOS개발팁

트윗 WWDC10



이번 세션은 아이폰4에 새롭게 추가된 자이로스코프 센서(이하 자이로센서)를 알아보고 자이로센서와 가속도계 센서가 짬뽕되어 새롭게 탄생한 프레임워크  Core Motion(이하 코어 모션)에 대해서 알아보려고 합니다. 이 코어모션은 정말 대박 중 대박 프레임워크입니다.

  Sensing Device Motion in iOS4
@skyfe79

#wwdc10 #s423 Sensing Device Motion in iOS4 기존 3GS 의 Accelerometer 와 Magnetometer 로 장치 방향을 잡을 때의 한계를 설명하고 왜 자이로스콥센서가 필요한지를 설명합니다.

#wwdc10 #s423 가속도계센서와 자이로스콥센서를 혼합해 얻어 내는 장치 방향 정보는 노이즈가 거의 없는 ideal값에 아주 가까운 값이네요!! 대박! 자이로스콥센서를 써보기 위해서라도 아이폰4를 사야할 것 같은 기분;;;

#wwdc10 #s423 아무튼 어떤 센서를 갖다 붙이는 것도 중요하지만 개발자들이 충분히 이용할 수 있게 멋진 라이브러리를 만들어 주는 것도 무척 중요한 것이지요. 애플이 멋져 보이는 또 하나의 이유랍니다..ㅋ

#wwdc10 #s423 iOS4에서 자이로스콥과 가속도계, 디바이스모션(자이로와 가속도계의 짬뽕값을 주는..)은 CoreMotion이라는 프레임워크로 나오는데

#wwdc10 #s423 이 코어모션만 쓰면 앞으로 가속계의 값이 튀는 것을 막기 위해서 쓰던 필터는 아예 필요가 없습니다. 그러면 센서기반 AR앱만들기도 대박 쉬워지고 게임에서 사용자의 모션을 정확하게 잡을 수 있고 우왕ㅜㅜ! 데모만 봐도 입이 쩍!

#wwdc10 #s423 코어모션의 속성 중 CMAttribute가 있는데요. 무척 좋네요. 장치 방향 정보를 회전행렬, 쿼터니언, 오일러각으로 제공해 주고요. multiplyByInverseOfAttribute 메서드를 제공하는데 이 메서드가 대박!

#wwdc10 #s423 장치의 특정 방향을 CMAttribute로 기억해 놓은 후 디바이스 방향을 바꾼 다음 [attr multiplyByInverseOfAttribute:previousAttr] 로 하면

#wwdc10 #s423 previousAttr 기준으로 좌표계가 설정됩니다. 마치 안드로이드의 센서매니져에 있는 remapCoordinate처럼 말이죠. CMAttribute가 멋진 것은 장치의 특정 방향을 임의 개수로 저장해 놓고 필요할 때마다

#wwdc10 #s423 적용해서 적용해서 사용할 수 있다는 것이고 장치의 특정 방향을 저장하는 것도 savedAttr = [attr retain] 식으로 아주 쉽게 할 수 있다는 것입니다. 사용자가 증강현실앱을 Portrait으로 보고 있다가

#wwdc10 #s423 landscape 모드로 변경한 경우 portrait일 때 저장한 CMAttribute를 사용해서 좌표계를 변환하면 따로 회전이니 각도 보정이니 이런 것이 전혀 필요 없다는 것입니다! 눈물이 나오는 군요ㅜㅜ

'iOS개발팁' 카테고리의 다른 글

ObjC 객체의 retainCount 이야기  (0) 2010.07.16
아리송한 ObjC의 레퍼런스 카운트  (2) 2010.07.15
트윗 WWDC10  (0) 2010.06.19
SIO2와 Blender를 만나다.  (2) 2010.06.14
아이폰, 사용가능한 장치 확인하기.  (2) 2010.06.14