Apple Watch로 뭔가 재미있는 걸 만들어보고 싶어서 시작한 프로젝트입니다. 유튜브에서 몰래카메라 형식으로 어떤 사람이 걸을 때 징징이 발소리가 나게 하거나, 운동하는데 관절이 삐걱삐걱 거리는 소리를 내서 당황하도록 만드는 영상이 있었는데, 이거에서 영감을 받았습니다.
주요 기능
Apple Watch의 손목 움직임 데이터를 분석해서 걷기와 뛰기를 감지합니다. 가속도계와 자이로스코프 데이터를 사용해서 움직임을 정확하게 파악합니다.
감지된 움직임에 따라 미리 저장된 소리를 재생합니다. 징징이 발소리, 뾱뾱, 슥슥 같은 다양한 소리가 있어서 선택할 수 있습니다. 사용자가 직접 소리를 녹음해서 저장할 수도 있어서 나만의 독특한 소리를 만들 수 있습니다.
iPhone과 Apple Watch 간에 실시간으로 동기화되기 때문에 워치에서만 사용할 수도 있고, 아이폰과 함께 사용할 수도 있습니다.
개발 과정
처음에는 Apple Watch 개발이 생각보다 복잡했습니다. iOS 앱과는 다른 구조이고, 제약사항도 많았습니다. 걷기와 뛰기를 구분하는 게 특히 어려웠습니다. 단순히 가속도계 데이터만으로는 부족해서 자이로스코프 데이터도 함께 사용해야 했습니다.
움직임 감지가 부정확해서 너무 민감하게 반응하거나, 반대로 움직여도 감지 안 되는 경우가 있었습니다. 임계값을 조정하고 여러 센서 데이터를 조합해서 해결했습니다.
움직임을 감지하고 소리를 재생하는 사이에 지연이 있었습니다. 실시간으로 느껴지도록 최적화해야 했습니다. Apple Watch는 배터리와 성능이 제한적이라 효율적인 알고리즘을 사용하고 불필요한 처리를 줄였습니다.
사용한 기술들
Core Motion 프레임워크를 사용해서 Apple Watch의 센서 데이터를 읽었습니다. 가속도계와 자이로스코프 데이터를 조합해서 움직임을 감지했습니다.
소리 재생은 AVAudioPlayer를 사용했고, 커스텀 소리 녹음은 AVAudioRecorder를 사용했습니다. iPhone과 Apple Watch 간 동기화는 WatchConnectivity 프레임워크를 사용했습니다.
현재 상태
Apple Watch 움직임 감지, 발걸음 소리 재생, 커스텀 소리 녹음, iPhone과 Apple Watch 동기화 기능이 구현되어 있고 App Store에 출시했습니다.
아직 더 정교한 움직임 감지, 다양한 소리 효과, 사용자 설정 옵션, 통계 기능 같은 건 추가로 구현해야 합니다.
마무리
Koforawalk는 Apple Watch 개발을 배우기 위한 프로젝트에서 시작해서, 실제로 App Store에 출시할 수 있는 앱이 되었습니다.
Apple Watch 개발의 어려움도 많이 겪었지만, 사용자들이 실제로 사용하는 앱을 만드는 경험을 할 수 있어서 좋았습니다. 아직 완성도는 높지 않지만, 앞으로 계속 개선해나가고 싶습니다.