Tip:
Highlight text to annotate it
X
호이 램: 사용자 맞춤형 워치페이스는
안드로이드 웨어에서
가장 기대받는 기능 중 하나입니다
최신 릴리스에서는 워치페이스의 개발이
공식적으로 지원됩니다.
저는 구글의 호이 램이라고 합니다.
이제 워치페이스 개발에 대한 소개를 드리겠습니다.
워치페이스는 백그라운드에 있는 서비스입니다
사용자 맞춤을 위한 간단한 세 단계를
보여드리겠습니다.
먼저, 워치페이스 만들기 단계, 다음엔 인터랙티브 및 대기 모드에서
원하는 대로 바꾸는 단계,
마지막으로는 어떤 조건에서도
볼 수 있는 워치페이스를
만들 수 있게 해 주는
추가 API를 소개해 드리겠습니다.
그럼, 어떻게 시작하냐구요?
가장 쉬운 방법으로, 이 디렉토리에 있는
워치페이스 샘플 중 하나를 열어 주세요.
한 번 시작해 보기에 괜찮아 보이는
디지털과 아날로그 시계가 있네요.
이 단계에서, 설정과 렌더링 룹을 실행할
두 가지 메소드가 있습니다.
온크리에이트에서, 우리는 일반적으로 인스턴스 변수를 설정하는데,
이는 워치페이스나 캔버스에
비트맵 개체를 로드하거나
오브젝트 그리기 실행을 포함합니다.
온드로우에서는, 워치페이스에 표시할
각 프레임을 렌더링합니다.
우리는 캔버스에 그리기 때문에, 표준 비트맵을 사용하거나
모양 그리기 기능을 사용할 수 있습니다
퍼포먼스를 염두에 두는 것이 좋은데,
이 코드가 모든 프레임에서 실행되기 때문입니다.
프로젝트를 만들고 나면,
이제 당신은 두 가지 메인 모드인 인터랙티브와 앰비언트의 양쪽에서
워치페이스를 위한 사용자 맞춤을 할 준비가 되었습니다.
인터랙티브 모드에서 워치페이스는
대부분 풀 컬러에 유체 애니메이션으로 돼있습니다.
사용자가 시계에 주목하고 있는 경우
대개 이런 상태입니다.
앰비언트 모드에서는 그래픽이 제한적인 컬러 팔레트를
사용해야 합니다.
그리고 분당 한 번만 업데이트됩니다.
그럼 이 두가지 모드에서 주요 사용자 맞춤형 옵션은
어떤 것이 있을까요?
인터랙티브 모드에서는 템플릿이
초당 한 번 업데이트가 디폴트 설정으로 돼있습니다.
예를 들어 애니메이션을 재생하기 위해서
업데이트를 좀 더 자주 하려고 한다면,
다음 세 가지를 수행해야 합니다.
먼저, m업데이트타임핸들러를 제거해야 합니다.
그렇지 않은 경우, 온드로우 메소드는
초당 한 번만 불려옵니다.
두 번째로, 온드로우 메소드를 워치페이스가 처음 보일 때
작동시켜야 합니다.
이것은 온비지빌리티체인지 메소드 아래의 프레임을
무효화하면 됩니다.
마지막으로, 온드로우 메소드의 마지막 프레임을
무효화해야 합니다.
이렇게 하면 온드로우 루프를 작동시켜
유체 애니메이션이 표시 가능하게 됩니다
이제 워치페이스가 지속적으로 업데이트됩니다.
중요한 것은, 워치페이스가 앰비언트 모드일 때
프레임을 무효화시키는 것을 확인해야 한다는 것입니다.
그렇지 않은 경우, 업데이트 루프가 앰비언트 모드에서도
백그라운드에서 지속적으로 작동됩니다.
이렇게 되면 배터리 수명에 확연한 영향을 미칩니다.
인터랙티브 모드는 해결됐고,
다음은 앰비언트 모드에 대해 알아보죠.
앰비언트 모드에서 개발자들이 공통적으로 취하는 방식은
첫째, 그레이스케일이나 흑/백 그래픽을 선택한다는 것과,
둘째, 분당 한 번 이상 업데이트되는 화면 요소
이를테면 워치페이스의 시계바늘이나, 초를 나타내는 디지털 표시 등을
제거한다는 거죠.
시계가 앰비언트 모드로 들어가있는지 여부를
확인하고자 할 때, 온앰비언트모드체인지 메소드로
치환할 수 있습니다.
일반적으로 개발자는 시계가 앰비언트 모드인지를 나타내는
인스턴스 변수를 보내고
현재 프레임을 무효화시킬 겁니다.
이는 리드로우를 작동시킵니다.
그렇게 하면, 그 다음 온드로우에서
개발자는 마음대로 할 수 있죠.
기본 맞춤이 해결되고 나면,
다음은 몇 가지 마무리를 지을 차례입니다.
앰비언트 모드에 더해, 워치페이스의 API는
개발자로 하여금 워치페이스가 어떤 조건에서도 잘 보이게 할 수 있는
추가 컨텍스트를 제공합니다.
두 가지 방법을 추천드립니다.
첫째, 일부 안드로이드 웨어 장치는 낮은 비트 앰비언트 모드를 지원하는데,
이는 화면 픽셀이 켜짐/꺼짐 둘 중 하나만 가능합니다.
그레이스케일 디자인을 사용하는 것만으로는
이런 화면에서 제대로 작동하지 않습니다.
예를 들어, 산타 추적에 있는 그레이스케일 디자인을
아무 조정 없이 쓰게 되면,
낮은 비트에서는 이렇게 보입니다.
보시다시피, 보기 좋지 못하죠.
그래서 우리는 이 대체형 흑백 디자인을
구현했습니다.
장치가 낮은 비트를 지원하는지 확인하려면,
온프로퍼티체인지 메소드로 치환하면 됩니다.
여기서 개발자는 시계가
낮은 비트 대기 모드를 지원하는지 확인할 수 있습니다.
두 번째는 제가 개인적으로 제일 좋아하는 방법인데요,
화면에 보기 카드가 포함되어 있는지
확인할 수 있는 기능입니다.
이 방법은 워치페이스 디자인과 올바르게 상호작용하는지
확인할 수 있습니다.
특히 앰비언트 모드에서 중요합니다.
이것 없이는, 왼쪽에서 볼 수 있듯이,
눈금이 보기 카드를 가려서
잘 보이지 않게 됩니다.
최종 디자인에서는 테두리 없는 검은 사각형을 보기 카드 뒤에
그려줘서 더 잘 보이도록 합니다.
추가적으로, 워치페이스 스타일 클래스를 사용해서,
개발자들은 보기 카드가 앰비언트 모드에서
보여지는지 확인할 수 있고,
인터랙티브 모드에서는 불투명한지 반투명한지도
확인할 수 있습니다.
설명서를 참조하시면 더 많은 기능들,
이를테면 표준 시간대를 변화시키는 방법이나,
워치페이스에 실시간 정보를 나타내는 방법,
그리고 워치페이스 설정을 휴대 장치에서
조정하는 방법 등을 확인할 수 있습니다.
이상 호이 램이었습니다. 당신이 제작한 워치페이스를
사용하게 되기를 기대하겠습니다.