이 가이드에서는 진행 중인 작업을 스톱워치 형식으로 구성하는 구성요소를 설명합니다. 진행 중인 작업은 사용자가 작업에 참여하고 있는 동안 타임라인에 라이브 카드를 표시하며, 사용자는 정보가 필요할 때 라이브 카드를 넘기거나 나갈 수 있습니다.
또한 자체 Glass 소프트웨어를 빌드하는 데 중요한 설계, 개발, 배포 팁도 배웁니다.
시작하기 전에
스톱워치의 전체 소스는 GitHub에서 확인할 수 있습니다. 이 가이드에서는 이를 많이 언급하므로 시작하기 전에 Android 스튜디오로 가져옵니다.
- 빠른 시작 화면에서 Check out from version Control(버전 제어에서 체크아웃) > Git을 클릭합니다.
- 스톱워치에서 클론 URL을 복사합니다.
- 클론 URL을 Vcs Repository URL(Vcs 저장소 URL)에 붙여넣고 Clone을 클릭합니다.
- 다음 화면에서 Yes를 클릭합니다.
- 다음 화면에서 OK를 클릭합니다.
- 프로젝트를 빌드하고 Play 버튼을 클릭하여 연결된 Glass에서 실행합니다. 샘플의
README
에서 호출 세부정보를 확인하세요.
학습할 내용
Android SDK의 구성요소를 사용하여 대량의 스톱워치 진행 중인 작업을 빌드하고 GDK를 사용하여 Glass 환경에 연결하는 방법을 알아봅니다. 알아볼 주제 목록은 다음과 같습니다.
- 라이브 카드에 그리는 맞춤 뷰 빌드
- 라이브 카드 관리를 위한 서비스 만들기
- 사용자가 타임라인에서 라이브 카드를 삭제할 수 있는 메뉴 제공
- 기본 음성 메뉴에서 스톱워치를 시작하도록 음성 트리거 선언
디자인
개발을 시작하기 전에 시간을 내어 Glass 소프트웨어를 설계합니다. 이렇게 하면 Glass에서 가장 효과적인 UI 흐름, 사용할 음성 명령, 카드의 모양 등을 파악할 수 있습니다.
물론 Glass 소프트웨어 설계는 반복 프로세스이며 현재 설계하는 항목 중 일부는 변경될 것입니다. 하지만 이러한 작업의 상당 부분을 초기에 완료하는 것이 훌륭한 환경을 구축하는 데 중요합니다.
UI 흐름
UI 흐름을 설계하는 것은 간단한 연습이므로 코드를 작성하기 전에 Glass 소프트웨어를 시각화할 수 있습니다. 저희가 만드는 Glass 소프트웨어에 항상 이러한 작업을 하고 있습니다.
스톱워치의 주요 UI 요소를 살펴보면서 UI의 작동 방식과 자체 Glass 소프트웨어를 만들 때 이 프로세스가 얼마나 유용할 수 있는지 알아보겠습니다.
기본 UI
스톱워치에는 상당히 간단한 환경이므로 기본 흐름이 하나만 있습니다.
사용자가 Glass 소프트웨어를 호출하면 실제 스톱워치가 시작되기 전에 3초 카운트다운 전면 광고가 표시됩니다. 그러면 사용자가 중지 메뉴 항목을 사용하여 타임라인에서 스톱워치를 삭제할 때까지 카운트됩니다.
음성 명령
음성 명령은 설계 프로세스 초기에 알아내야 합니다. 음성 명령을 사용하면 사용자는 필요한 경우 Glass 홈(시계 카드) 음성 메뉴에서 Glass 소프트웨어를 시작할 수 있으며, 이는 Glass 소프트웨어 설계 방식의 주요 부분입니다.
예를 들어 업데이트 게시 명령어는 사용자가 텍스트를 말하면 추가 사용자 개입 없이 Glass웨어가 텍스트를 처리하는 Fire-and-Forget 모델에서 잘 작동합니다. 이를 통해 사용자는 하던 일로 빠르게 돌아갈 수 있습니다
반면 게임하기와 같은 앱에서는 일반적으로 사용자가 먼저 방향을 찾을 수 있도록 스플래시 화면을 표시하는 것이 좋습니다. 이 음성 명령은 몰입을 시작할 가능성이 높으므로 게임 시작을 위한 추가 화면과 메뉴 표시도 사용자가 괜찮다고 예상할 수 있습니다. 음성 명령 직후 사용자를 게임 환경으로 내보내면 일반적으로 게임에 좋지 않습니다.
스톱워치에서는 스톱워치 시작 음성 명령을 사용합니다. 사용자가 음성 명령을 호출하면 짧은 전면 광고 카운트다운 화면 직후에 스톱워치가 시작되며, 이는 시작할 메뉴 항목을 제공하는 것보다 낫습니다. 진행 중인 작업의 경우 일반적으로 가능한 한 빠르게 사용자에게 가능한 한 빠르게 환경을 제공하는 데 집중하는 것이 좋습니다.
카드 레이아웃
몰입형 환경을 빌드하든 라이브 카드를 빌드하든 가능하면 CardBuilder
또는 XML 레이아웃을 사용해야 합니다.
종종 자체 레이아웃을 빌드해야 하는 경우가 있으므로 UI 가이드라인을 따르면 가장 멋진 Glass 소프트웨어를 만들 수 있습니다.
스톱워치는 일반 레이아웃 가이드라인을 따르지만 뷰 및 레이아웃과 같은 표준 Android 구성요소를 사용하는 맞춤 UI 레이아웃이 있습니다.
개발
라이브 카드를 개발하려면 Android 개발에서 사용하는 것과 동일한 도구를 사용하여 대부분의 Glass 소프트웨어를 빌드한 다음 GDK 부가기능의 API를 사용하여 라이브 카드 및 음성 명령과 같은 Glass 관련 기능에 액세스합니다.
일반적인 Android 구성요소를 사용하여 Glass 소프트웨어를 만드는 경우가 많지만 일부 개념이 다를 수도 있습니다. 예를 들어 기존 Android 앱에서 서비스를 사용하는 일반적인 방식이 아닌 Android 서비스로 라이브 카드를 렌더링하고 관리합니다. 또 다른 예는 라이브 카드가 자체 UI 컨텍스트를 소유하지 않으므로 라이브 카드 메뉴를 표시하는 셸 활동을 사용해야 합니다. 이 가이드의 뒷부분에서 이러한 구성요소를 빌드하는 방법을 배우게 됩니다.
개발 섹션의 나머지 부분에서는 스톱워치의 구조와 이전에 가져온 프로젝트의 주요 구성요소를 설명합니다. Android 스튜디오를 실행하면 실습을 진행하는 데 도움이 됩니다. 소스 코드 자체에는 주석이 달려 있으므로 이 섹션에서는 각 파일의 대략적인 목적과 자신의 Glass 소프트웨어에 적용할 수 있는 유용한 팁을 살펴봅니다.
음성 명령
사용 중인 명령어를 지정하는 XML 리소스 파일로 음성 명령을 만든 후 AndroidManifest.xml
파일에서 XML 리소스를 지정하여 음성 명령을 만들 수 있습니다.
다음 파일은 스톱워치 음성 명령과 관련된 파일입니다.
res/xml/voice_trigger_start.xml
- 사용할 음성 명령을 선언합니다.AndroidManifest.xml
- 음성 명령을 말하면 라이브 카드 서비스가 시작되도록 선언합니다.
카운트다운 뷰
스톱워치는 실제로 시간이 기록되기 전에 카운트다운을 표시하여 사용자가 곧 경과함을 알립니다.
카운트다운 보기와 연결된 파일은 다음과 같습니다.
res/layout/card_countdown.xml
: 카운트다운 뷰어의 레이아웃을 정의합니다.src/com/google/android/glass/sample/stopwatch/CountDownView.java
- 카운트다운 뷰를 정의합니다.
크로노미터 보기
스톱워치의 기본 보기입니다. 카운트다운 전면 광고가 완료된 후 경과된 시간이 표시됩니다. 다음 파일은 크로노미터 보기와 연결되어 있습니다.
res/layout/card_chronometer.xml
- 스톱워치 뷰의 레이아웃을 정의합니다.src/com/google/android/glass/sample/stopwatch/ChronometerDrawer.java
- 뷰를 렌더링하는 방법을 정의합니다. 라이브 카드 서비스는 이 클래스를 호출하여 라이브 카드 서비스에 그리세요.src/com/google/android/glass/sample/stopwatch/ChronometerView.java
- 이전 레이아웃을 UI로 사용하는 스톱워치 뷰입니다.
스톱워치 서비스
이 서비스는 라이브 카드의 수명 주기와 렌더링을 관리합니다. 다음 파일이 이 서비스와 연결되어 있습니다.
src/com/google/android/glass/sample/stopwatch/StopwatchService.java
- 스톱워치 라이브 카드를 관리하고 서비스 수명 주기를 처리합니다.
메뉴 활동
라이브 카드에는 타임라인의 컨텍스트에서 UI를 렌더링하므로 메뉴를 표시할 자체 UI 컨텍스트가 없습니다.
이 제한을 우회하려면 타임라인 상단에 표시되는 반투명 활동을 만들고 사용자가 라이브 카드를 탭한 직후에 이 활동의 메뉴를 표시합니다.
src/com/google/android/glass/sample/stopwatch/MenuActivity.java
- 활동이 표시되면 즉시 메뉴를 표시하는 반투명 메뉴 활동을 선언합니다.res/values/styles.xml
- 메뉴에 적용되는 반투명 스타일을 정의합니다.res/menu/stopwatch.xml
- 필수 중지 메뉴 항목이 포함된 메뉴 리소스입니다.
Android 매니페스트
AndroidManifest.xml
파일은 시스템에서 Glass 실행 방법을 알 수 있도록 Glass 소프트웨어의 주요 구성요소를 설명합니다. Charades의 매니페스트는 다음을 선언합니다.
- Glass 소프트웨어의 아이콘 및 이름 Glass는 둘 이상의 Glass웨어가 동일한 음성 명령에 응답하면 기본 터치 메뉴에 이 정보를 표시합니다.
- 스톱워치와 관련된 모든 서비스 및 활동입니다. 이는 시스템에서 Glass 소프트웨어 구성요소를 시작하는 방법을 파악하는 데 필요합니다.
- 음성 명령 및 음성 명령을 말할 때 실시간 카드 서비스를 시작하는 인텐트 필터
- Glass 소프트웨어의 버전 코드입니다. 이 코드는 이 APK의 새 버전이 MyGlass에 업로드될 때마다 업데이트되어야 하며 일반적으로 버전 이름도 업데이트해야 합니다.