진행 중인 태스크 패턴

이 가이드에서는 진행 중인 작업을 구성하는 스톱워치의 구성요소를 설명합니다. 진행 중인 작업은 사용자가 특정 작업을 하고 있으며 정보가 필요한 경우 실시간 카드를 시작하거나 종료할 수 있는 한 실시간 카드를 타임라인에 표시합니다.

또한 자체 Glass 소프트웨어 빌드에 중요한 설계, 개발, 배포 팁도 알아봅니다.

시작하기 전에

스톱워치의 전체 소스는 GitHub에서 확인할 수 있습니다. 이 가이드에서는 자주 언급하므로 시작하기 전에 Android 스튜디오로 가져옵니다.

  1. 빠른 시작 화면에서 버전 제어에서 체크아웃 > Git을 클릭합니다.
  2. 스톱워치에서 클론 URL을 복사합니다.
  3. 클론 URL을 Vcs Repository URL에 붙여넣고 복제를 클릭합니다.
  4. 다음 화면에서 를 클릭합니다.
  5. 다음 화면에서 확인을 클릭합니다.
  6. 프로젝트를 빌드하고 Play 버튼을 클릭하여 연결된 Glass에서 프로젝트를 실행합니다. 호출 세부정보는 샘플의 README를 확인하세요.

학습할 내용

Android SDK의 구성요소를 사용하여 스톱워치 진행 작업의 대부분을 빌드한 다음 GDK를 사용하여 Glass 환경에 연결하는 방법을 알아봅니다. 학습할 주제 목록은 다음과 같습니다.

  • 라이브 카드에 그릴 맞춤 뷰 빌드
  • 라이브 카드를 관리하는 서비스 만들기
  • 사용자가 타임라인에서 라이브 카드를 삭제할 수 있는 메뉴 제공
  • 음성 트리거를 선언하여 기본 음성 메뉴에서 스톱워치를 시작

디자인

개발을 시작하기 전에 잠시 시간을 내어 Gware를 설계하세요. 이렇게 하면 Glass에서 가장 잘 작동하는 UI 흐름, 사용할 음성 명령, 카드 모양을 효과적으로 파악할 수 있습니다.

물론 Glass 소프트웨어 설계는 반복 프로세스입니다. 지금 디자인하는 작업 중 일부는 변경될 수 있지만, 이 작업의 상당 부분을 초기에 실행하는 것은 훌륭한 환경을 빌드하는 데 중요합니다.

UI 흐름

UI 흐름을 설계하는 것은 간단한 연습이며 코드 줄을 작성하기 전에 Glassware를 시각화할 수 있습니다. Google에서 만드는 Glass 소프트웨어에 대해 항상 하고 있습니다.

스톱워치의 주요 UI 요소를 살펴보겠습니다. 그러면 UI가 어떻게 작동하는지, 자체 Glass를 만들 때 이 프로세스가 얼마나 유용한지 알아보겠습니다.

기본 UI

스톱워치는 매우 간단한 환경이므로 기본 흐름이 하나만 포함되어 있습니다.

사용자가 Glass 웨어를 호출하면 실제 스톱워치가 시작되기 전에 3초 카운트다운 전면 광고가 표시됩니다. 스톱워치는 사용자가 타임라인에서 Stop 메뉴 항목을 사용하여 스톱워치를 삭제할 때까지 카운트됩니다.

음성 명령

음성 명령은 설계 프로세스 초기에 상당히 빠르게 파악해야 합니다. 음성 명령을 사용하면 필요한 경우 사용자가 Glass 홈(시계 카드) 음성 메뉴에서 Glassware를 시작할 수 있습니다. 이는 Glass 소프트웨어 설계의 중요한 부분입니다.

예를 들어, 업데이트 게시 명령어는 사용자가 텍스트를 말하면 Glass 소프트웨어가 추가적인 사용자 개입 없이 텍스트를 처리하는 파이어 앤 포겟 모델에서 잘 작동합니다. 이렇게 하면 사용자가 수행 중인 작업으로 빠르게 돌아갈 수 있습니다.

반면 게임하기와 같은 동작에서는 일반적으로 사용자를 스플래시 화면에 배치하여 먼저 방향을 설정하는 것이 좋습니다. 이 음성 명령은 몰입도를 시작할 가능성이 높으므로 사용자가 게임 시작을 위해 추가 화면과 메뉴를 볼 수 있을 것으로 예상할 수 있습니다. 음성 명령 직후 사용자를 게임 환경에 즉시 투입하는 것은 일반적으로 게임에 나쁜 경험입니다.

스톱워치는 스톱워치 시작 음성 명령을 사용합니다. 사용자가 음성 명령을 호출하면 스톱워치는 짧은 전면 카운트다운 화면 직후에 시작하므로 메뉴 항목을 제공하는 것보다 더 좋습니다. 진행 중인 작업의 경우 일반적으로 사용자를 가능한 한 빨리 환경으로 유도하는 데 초점을 맞추는 것이 좋습니다.

카드 레이아웃

몰입형 카드나 실시간 카드 중 무엇을 빌드하든 가능한 경우 CardBuilder 또는 XML 레이아웃을 사용해야 합니다.

경우에 따라 자체 레이아웃을 빌드해야 할 수도 있으므로 UI 가이드라인을 따라 가장 멋진 Glass 웨어를 만드세요.

스톱워치는 일반 레이아웃 가이드라인을 따르지만 뷰 및 레이아웃과 같은 표준 Android 구성요소를 사용하는 맞춤 UI 레이아웃을 포함합니다.

개발

라이브 카드를 개발하려면 Android 개발에 사용하는 도구와 동일한 도구를 사용하여 Glass 소프트웨어의 대부분을 빌드한 다음 GDK 부가기능의 API를 사용하여 실시간 카드 및 음성 명령과 같은 Glass 관련 기능에 액세스합니다.

Glass 소프트웨어 생성에 공통 Android 구성요소를 자주 사용하게 될 수 있지만 몇 가지 개념은 다를 수 있다는 점에 유의하세요. 예를 들어 기존 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 소프트웨어의 주요 구성요소를 설명합니다. Charades의 매니페스트는 다음을 선언합니다.

  • Glass 소프트웨어의 아이콘 및 이름입니다. Glass는 두 개 이상의 Glass 소프트웨어가 동일한 음성 명령에 응답하는 경우 기본 터치 메뉴에 이 정보를 표시합니다.
  • 스톱워치와 관련된 모든 서비스 및 활동입니다. 시스템에서 Glass 소프트웨어 구성요소를 시작하는 방법을 알아야 합니다.
  • 음성 명령을 읽을 때 실시간 카드 서비스를 시작하는 음성 명령 및 인텐트 필터
  • Glass 소프트웨어의 버전 코드입니다. 이 APK의 새 버전이 MyGlass에 업로드될 때마다 이 코드(및 일반적으로 버전 이름도)를 업데이트해야 합니다.