개요
안드로이드 기반 스마트 워치를 사용하던 친구가 새로운 것을 구매하면서 써 보라고 주었습니다. 스마트 워치를 처음 써 보았는데 다양하게 디자인을 변경할 수 있는 것이 좋았습니다. 문득 괘종시계 앱의 디자인을 넣었으면 좋겠다는 생각이 들었습니다. 그래서 한번 스마트 워치 페이스를 제작해 보기로 했습니다.
정보 수집
안드로이드 스마트 워치의 페이스를 만드는 방법을 알아보니 이전에는 프로그래밍 방식이었고 지금은 WFF(Watch Face Format) 형식으로 정의해서 제작하는 것으로 변경되었다는 것을 알게 되었습니다. 즉, 프로그램 코드는 전혀 들어가지 않습니다.
개발 도구 선택
필자는 Android Studio 를 이용해서 제작할 계획이었습니다. 자료를 찾는 중에 Watch Face Studio 라는 도구가 있고 꼭 개발자가 아니어도 쉽게 제작할 수 있도록 해 주는 것 같았습니다. 필자는 또 다른 도구를 설치하는 것 보다 원래 사용하던 것으로 작업하는 것이 나을 것 같다는 생각이 들어 Android Studio 로 진행하기로 결정했습니다.
제작
Android Studio 에서 New Project > Wear OS > No Activity 를 선택하여 프로젝트를 생성했습니다. 다른 Wear OS 앱은 모르겠는데 워치 페이스는 Activity 가 없어야 aab 파일을 빌드할 수 있습니다.
프로젝트 구조를 살펴보니 기존 앱과 큰 차이가 없었습니다. 프로그래밍 언어로 작업하는 것이 아니어서 build.gradle 파일에서 프로그램 언어와 관련한 부분을 모두 삭제했습니다.
/res/raw/watchface.xml, /xml/watch_face_info.xml 파일을 새롭게 추가하고 형식에 맞추어 시계의 모양을 정의했습니다.
테스트
Wear OS 에뮬레이터를 설치하고 실행해서 일반 안드로이드 앱처럼 테스트를 진행했습니다. 처음에는 원하는 모양이 정확하게 나타나는지 확인했습니다. 그 다음으로 시침, 분침, 초침의 색상 변경, 배경 변경의 기능을 추가했습니다.
어느 정도 구색이 갖추어 지고 실제 스마트 워치에 올려서 테스트를 진행했습니다. 보여지는 것 자체는 문제가 없었는데 시분초침의 색상 테마 변경, 배경 이미지의 변경이 실제로 반영되지 않는 문제가 있었습니다. 이것은 Wear OS의 버전과 WFF 버전간의 불일치 문제였습니다.
필자가 테스트로 사용한 스마트 워치는 Wear OS 5 였고 이 버전이 작업한 WFF 버전을 제대로 지원하지 못하는 문제였습니다. 기기 연동 앱을 통해 연결된 스마트 워치의 모양을 변경하면 제대로 반영이 되므로 그것으로 만족할 수 밖에 없었습니다.
빌드 시 문제
에뮬레이터와 실제 기기에서 문제가 없어서 당연히 빌드에는 문제가 없을 것이라 생각했습니다. 그러나 처음 보는 오류가 많이 발생했습니다. 다른 오류들은 비교적 쉽게 해결이 가능했습니다. 그러나 다음 오류 메시지 해결은 어려웠습니다.
Watch face base module cannot have any components and can only have resources.
결론부터 말하면 이 오류는 AndroidManifest.xml 파일에 activity 가 정의되어 발생한 문제였습니다. 필자가 정의한 AndroidManifest.xml 파일에는 activity 가 없어서 문제 해결에 시간이 많이 소요되었습니다. 이 오류를 해결하는 방법은 하단의 Merged Manifest 탭을 선택해서 activity 가 있는지 확인하고 관련된 라이브러리나 설정을 해제하면 됩니다.
WFF 형식을 검사해 주는 도구도 있으니 반드시 문제가 없는지 확인 후 빌드해야 합니다. wff-validator.jar 이름으로 자료를 찾아보면 됩니다.
구글 플레이 업로드
기본 정보는 다른 일반 앱들과 비슷한데 폼 팩터를 등록해야 한다는 점이 다릅니다. 테스트 및 출시 > 고급 설정 > 폼 팩터 탭 선택하고 폼 팩터 추가 링크를 클릭합니다. Wear OS를 선택하고 진행하면 추가 됩니다.

작업 시 항상 Wear OS 전용이 선택되어 있는지 확인하시기 바랍니다. 필자는 아무 생각 없이 진행하다가 휴대전화, 태블릿… 이것으로 선택된 상태라는 것을 나중에 알았습니다.
개인적으로 Wear OS 관련 설정이 숨어 있어서 혼동이 많이 된다는 생각이 들었습니다. 구글 측에서 이것을 좀 개선해 주었으면 좋겠습니다.
느낀 점
안드로이드 스마트 워치용 페이스를 Android Studio 로 제작하는 데 관련한 정보가 부족하다는 것을 많이 느꼈습니다. 자료를 찾아보거나 AI 도움을 받아보면 이전 프로그래밍 방식으로 제작했을 때의 해결책만 있는 경우가 많았습니다. 그래도 WFF 정의 방식으로 일반 사용자들도 쉽게 만들 수 있게 전환한 점은 활발한 생태계를 위해서 좋은 일이라 생각되었습니다.
처음이라서 헤메이기도 하고 바보 같은 실수도 했지만 또 다른 페이스를 만들 수 있는 기반이 되었다고 생각합니다.
다음 주소에서 확인하실 수 있습니다. 유료 워치 페이스 입니다.
https://play.google.com/store/apps/details?id=jaeyoung.kim.grandfatherclockface



