한국의 개발자들을 위한 Google for Developers 국문 블로그입니다.
구글 캐스트를 지원하는 앱 개발하기
2014년 5월 14일 수요일
2014년 5월 14일, 많은 분들이 기다리고 계셨던 크롬 캐스트가 한국에 정식 출시되었습니다.
크롬 캐스트는 구글 캐스트 기술이 적용된 첫 번째 디바이스 입니다. 구글 캐스트는 사용자들이 비디오와 같은 콘텐츠를 폰, 태블릿, 노트북과 같은 작은 화면에서 TV 와 같은 큰 화면으로 손쉽게 재생할 수 있도록 지원하는 구글의 멀티스크린 기술입니다. 크롬 캐스트 출시를 기념하며, 구글 캐스트 기술에 관한 전반적인 내용에 관해 이야기 해보려고 합니다.
구글 캐스트 개요
구글 캐스트는 크게 센더와 리시버 두 가지 요소로 구성됩니다. 센더 앱은 리모컨 역할 및 수행하며,
폰, 태블릿, PC 등이 센더 앱을 실행 하는 센더 디바이스가 될 수 있습니다.
각 플랫폼에 맞게 제공되는 구글 캐스트 API 를 이용하여 리서버 앱을 찾고 데이터를 주고 받는 센더 앱을 개발하실 수 있습니다. 그리고 물론 여러분의 콘텐츠를 큰 화면으로 캐스팅 하실 수도 있습니다.
크롬 캐스트와 같은 리시버 디바이스 위에서는 리시버 앱이 동작합니다. 리시버 앱은 하나의 HTML, CSS, 자바스크립트 파일로 이루어진 웹 앱입니다. 인터넷 프로토콜을 통해 비디오를 재생하는데 최적화 되어 있으며, 개발자 여러분은 함께 제공되는 리시버 API 를 이용하여 센더와 리시버 앱이 서로 주고 받을 수 있는 커스텀한 메세지를 추가하거나 라이센싱 서버를 통해야 하는 콘텐츠 혹은 가변 비트스트림(Adaptive Bitrate Streaming)을 지원하는 미디어 포맷등을 추가로 지원하실 수도 있습니다.
미디어 콘텐츠는 인터넷 프로토콜을 통해 서버에서 직접 리시버 앱으로 전송되며, 사용자는 TV 로 비디오를 감상하면서도, 평소와 다름없이 휴대폰이나 태블릿을 사용할 수 있습니다. 비디오를 자유롭게 컨트롤 하면서도, 유튜브를 통해 또다른 동영상을 검색해서 TV 로 캐스팅 할 수도 있고,
아니면 아예
이메일을 확인하거나 게임과 같은 다른 종류의 작업도 문제없이 수행할 수 있습니다.
그럼 실제로 구글 캐스트를 지원하는 앱을 만들기 위해서는 어떻게 시작해야하는지 조금 더 자세히 알아보도록 하겠습니다.
개발 시작하기
개발자 분들이 구글 캐스트를 지원하는 앱을 만드실 수 있도록 각 플랫폼에 맞는
구글 캐스트 SDK
가 제공됩니다. API 라이브러리와 개발 관련 문서 그리고 샌더와 리시버 어플리케이션
샘플 코드
가 함께 제공되고 있습니다. 개발자 프리뷰를 거치며, 많은 변화가 있었기 때문에, 이미 구글 캐스트 기술에 익숙한 개발자 분들이라도 다시 한번 개발자 문서를 확인하시는 것을 권장드립니다.
구성 요소
앞에서 설명 드린 것 처럼 캐스트 앱은 크게 두 가지 구성요소로 이루어 집니다. 센더 어플리케이션은 안드로이드, iOS, 크롬 플랫폼 상에서 동작합니다. 각각의 플랫폼 별로 다음과 같은 형식으로 API 가 제공되고 있습니다.
Android API
- 안드로이드 서포트 라이버리리와 구글 플레이 서비스 API 형태로 제공됩니다. 보다 자세한 내용은 개발자 사이트의
Android Sender Applications
항목을 참고 하세요.
iOS API
- 독립적인 API 라이브러리 형태로 제공됩니다. 보다 자세한 내용은 개발자 사이트의
iOS Sender Applications
항목을 참고 하세요.
Chrome API
- 크롬의 구글 캐스트 확장(Extension) 을 설치해야 합니다. 실제 앱 개발을 위해서는 자바 스크립트 라이브러리가 제공되며 구글 서버에 호스팅 되어 있습니다. 보다 자세한 개발자 사이트의
Chrome Sender Applications
내용은 항목을 참고 하세요.
리시버 어플리케이션은 센더와 리시버 디바이스 같의 커뮤니케이션을 처리하며 크게 세 가지 종류의 리시버 앱이 지원됩니다.
Default Media Receiver - 구글이 직접 호스팅하는 기본적인 미디어 리시버 앱으로 mp4, mp3, mov, jpeg 과 같은 대표적인 미디어 포맷을 지원합니다. 리시버 앱을 직접 구현할 필요 없이 API 호출을 통해 콘텐츠를 캐스트 리시버 장치에 캐스팅 할 수 있지만, UI 를 변경하거나 커스텀 메세지 기능등을 활용할 수는 없습니다.
Styled Media Receiver - Default Media Receiver 와 동일하게 기본적인 미디어 포맷만을 지원하지만, 여러분이 호스팅 하는 CSS 스타일 파일을 적용하여 리시버 앱의 모습을 다른 형태로 변경할 수 있습니다. 보다 자세한 내용은 개발자 문서의
Styled Media Receiver
항목을 참고 하시기 바랍니다.
Custom Media Receiver - 개발자 분이 직접 호스팅하는 리시버 앱 입니다. 리시버 앱 UI 를 원하는 형태로 변경할 수 있고, 커스텀 메세지를 정의하고 이를 처리하기 위한 로직을 구현하실 수 있습니다. 함께 제공되는
미디어 플레이어 라이브러리
를 이용하여 라이센싱 서버를 거치는 미디어 혹은 어답티브 스트리밍이 적용된 콘텐츠등 추가적인 미디어 포맷을 지원할 수 있습니다. 보다 자세한 내용은 개발자 문서의
Custom receiver
항목을 참고 하시기 바랍니다.
특정 미디어 포맷은 Custom Media Receiver 를 구현해야지만 지원할 수 있기 때문에, 어떤 리시버 앱을 활용해야 하는지는 여러분의 어플리케이션이 지원해야하는
미디어 타입
에 따라 달라 질 수 있습니다.
개발 환경 설정
구글 캐스트 어플리케이션을 개발하기 전에 몇 가지 사전 작업이 필요합니다.
Chromecast Setup
과정을 통해 개발자 여러분의 크롬 캐스트 디바이스를 설치 합니다.
폰과 같은 센더 디바이스에서 크롬 캐스트 앱을 실행 한 후, 안내에 따라 캐스트 디바이스를 설정 합니다.
개발용으로 크롬 디바이스를 사용하기 위해서는 개인 정보 보호 정책에서 ‘업데이트 확인 시 크롬 캐스트 등록 번호 보내기' 옵션을 선택합니다.
UX 가이드라인
내용을 한 번 확인 합니다. 다른 캐스트 지원 앱과 더불어 사용자에게 동일한 사용자 경험을 제공하기 위해 꼭 기억해야할 원칙들이 소개되어 있습니다.
API 라이브러리와 샘플 앱을
다운로드
합니다.
개발자 문서의 등록 항목
을 참고하여, 구글 캐스트 개발자 콘솔을 통해 개발자 계정을 생성한 후, 여러분의 캐스트 어플리케이션을 등록 합니다.
API 호출 시 사용할 수 있는 리시버 앱 ID 를 발급 받습니다.
이제 모든 준비가 완료되었습니다. 구글 캐스트를 지원하는 여러분 만의 앱을 만들어 보시기 바랍니다.
구글 캐스트 앱 디자인하기
구글 캐스트 기능을 활용하는 것은 기존 앱을 개발하는 것과는 다른 새로운 경험이 될 수 있습니다. 사용자는 센더와 리시버 라는 두 요소 간의 상호작용을 통해 구글 캐스팅 기술을 활용하게 되며, 사용자가 혼란 스럽지 않고 플랫폼 전체적으로 동일한 사용자 경험을 누릴 수 있도록 UX 를 설계할 때도 주의를 기울여야 합니다. 개발자 분들을 위하여
UX 가이드라인
과
디자인 체크리스트
문서가 제공하고 있습니다.
특히, 디자인 체크 리스트 문서는 구글 캐스트 기술을 통해 센더 앱에서 리시버 앱을 발견하고 콘텐츠를 재생하고 컨트롤 하기 까지 각각의 단계 마다 어떤 식으로 앱이 동작해야하는지에 관해 구체적인 스크린샷과 함께 자세히 설명하고 있습니다. 구글 캐스팅 기능이 적용된 앱을 만드시기 전에는 꼭 한번 참고해보시기 바랍니다.
그럼 개발자 분들의 멋진 구글 캐스트 앱을 만나보길 기대하고 있겠습니다. 해피 캐스팅!
Contents
ML/Tensorflow
Android
Flutter
Web/Chrome
Cloud
Google Play
Community
Game
Firebase
검색
Tag
인디게임페스티벌
정책 세미나
창구프로그램
AdMob
AI
Android
Android 12
Android 12L
Android 13
Android 14
Android Assistant
Android Auto
Android Games
Android Jetpack
Android Machine Learning
Android Privacy
Android Studio
Android TV
Android Wear
App Bundle
bootcamp
Business
Chrome
Cloud
Community
compose
Firebase
Flutter
Foldables
Game
gdg
GDSC
google
Google Developer Student Clubs
Google Play
Google Play Games
Interview
Jetpack
Jetpack Compose
kotlin
Large Screens
Library
ma
Material Design
Material You
ML/Tensorflow
mobile games
Now in Android
PC
Play Console
Policy
priva
wa
wear
Wearables
Web
Web/Chrome
Weeklyupdates
WorkManager
Archive
2024
11월
10월
9월
8월
7월
6월
5월
4월
3월
2월
1월
2023
12월
11월
10월
9월
8월
7월
6월
5월
4월
3월
2월
1월
2022
12월
11월
10월
9월
8월
7월
6월
5월
4월
3월
2월
1월
2021
12월
11월
10월
9월
8월
7월
6월
5월
4월
3월
2월
1월
2020
12월
11월
10월
9월
8월
7월
6월
5월
4월
3월
2월
1월
2019
12월
11월
10월
9월
8월
7월
6월
5월
4월
3월
2월
1월
2018
12월
11월
10월
9월
8월
7월
6월
5월
4월
3월
2월
1월
2017
12월
11월
10월
9월
8월
7월
6월
5월
4월
3월
2월
1월
2016
12월
11월
10월
9월
8월
7월
6월
5월
4월
3월
2월
1월
2015
12월
11월
10월
9월
8월
7월
6월
5월
4월
3월
2월
1월
2014
12월
11월
10월
9월
8월
7월
6월
5월
4월
3월
2월
1월
2013
12월
11월
10월
9월
8월
7월
6월
5월
4월
3월
2월
1월
2012
12월
11월
10월
9월
8월
7월
6월
5월
3월
2월
1월
2011
12월
11월
Feed