1. Android Wear 개발,
할까요 말까요?
고민하는 스타트업과 개발자들을 위해
!
2014-11-01
GDG Android Conference
!
VCNC(비트윈), 김상우 (kevin@between.us)
2. 김상우 (Kevin)
• VCNC(비트윈)에서 안드로이드 개발과 데이터 분석을 담당
• 호기심: 많음
• 관심거리들: Android, Wearables, Material Design, Scala (Scaloid),
iOS, Swift, 데이터 분석, Spark, Open Source AngularJs …
11. Android Wear
Pros!
• 기능이 상당히 편리하다. (알림, 기본 앱들, 음성 제어 ..)
• 개발이 쉽다. (안드로이드)
• 좋은 가격 (20만원 중반)
Cons!
• 대중화 되기에는 아쉬운 배터리 성능 (1~2일)
• 매일같이 사용할 수 있는 앱들이 많이 없다
12. 100 + 20 Project
• 구글의 80 : 20 프로젝트와 비슷하게 원하는 프로젝트에 시
간을 쓸 수 있도록!
• 단 하던일은 다 하면서 하기로 한다. 즉 100 + 20!
• 지나친 퀄리티 추구로 가끔씩 하던일을 하나도 못하기도 한
다. (0 + 20 프로젝트…)
15. 공부부터!
• Google I/O 2014 Keynote - Android Wear (http://
www.youtube.com/watch?v=bI8m_RcBrIg)
• Designing for Android Wear (https://www.google.com/events/io/
io14videos/93fb1995-a8be-e311-b297-00155d5066d7)
• How We Customized Google Apps for Android Wear (https://
www.google.com/events/io/io14videos/bf0f2aa6-b0be-e311-
b297-00155d5066d7)
• 직접 사용해보기! 참고할 만한 앱들이 꽤 있다.
• 추천 앱들: Fancy, Tinder, Evernote, Hangout, Gmail 등 Google App
들,
16. Android Wear 란..
• 사용자가 실행하지 않아도, 적절한 타이밍에 Notification
• 최소한의 입력으로 많은것을 할 수 있도록
• 폰을 꺼내지 않아도 정보를 확인
• 항상 착용함으로 얻는 이득 (헬스케어 등)
• 생각보다 많은 기능과 가능성
18. 그래서 팀원들이 모였습니다…
Special thanks to
Lako, Furi, Alpaca, Henry
@ Between
+ TI, Hyunse @ Google
심박수 진동을 재현해주기 - 남자친구 느끼기?
미안하다아아~~!!!! 특정 동작 취해서 재미있는것 하기
거짓말 탐지기 (심박)
오빠 나 이거 사줘 알림
우연히 동시에 같은 모션을 하면 알림 - 찌찌뽕? - 지구방위대?
우리가 만나고 헤어질때까지의 걸음수는?
만났는데 손을 안잡고있으면 진동을 울려주자
20. Concept
• Feel His/Her Heart : 그대의 심장박동 느끼기
• Where He/She Is : 그/그녀는 어느 방향에 있을까?
• Feel Memories : 언제든 추억을 떠올릴 수 있는 메모리박스
멋지다! 하지만 이 컨셉은 하루만에 망하게 되는데…
21. Android Wear Bootcamp @ Google
• Google에서 진행하는 Android Wear Bootcamp에 참가
하게 되었다
• 무언가를 준비하기로 하고 전날부터 이것저것 만져보았다
• 그날 밤에 두근두근 남자친구 느끼기 컨셉의 프로토타입이
나왔음 (개발하기 쉽다!!)
22. 다음날: 망했어요
• Bootcamp에서 나눠준, 심박 기능이 있는 Samsung
Gear Live를 처음으로 시험해봄
• 상상속의 심박센서 : 2~3초 이내에 심박 측정 가능
• 현실속의 심박센서 : 10~20초 걸림. 측정하는동안 시계를
올바른 위치에 놓고, 가만히 있어야 함.
23. 최종 계획
Android Wear 에서 구동되는 앱으로써 꼭 필요한 기능을 넣
자
• 목소리로 답변하기 (Hangout 등)
• 시간 되면 이모티콘 답변하기
• 시간 되면 비트윈 메모리박스 (고전이 좋은것..)
애플 워치도 때마침 공개되서 슬쩍 눈치를 봤어요…
27. 이모티콘 전송
Wear Mobile
상대방에게 메시지 옴
Notification 생성
WearableExtender로
웨어용 메시지 추가
Notification 보임
Send Emoticon 메뉴 선택
Notification 보임
PendingIntent 받음
Wear로
Show Emoticon Select Activity
메시지 전송
WearableListenerService
에서 메시지 받아서
EmoticonSelectActivity start
이모티콘 선택,
모바일로 메시지 보냄
WearableListenerService
에서 메시지 받아서
채팅 접속 상태 확인 후 이모티콘 전송
Notification
Micro App
28. 메모리 박스
Wear Mobile
데이터베이스에서 메모리박스 확인
Wear 용의 작은 이미지 로드
Wear Data API 를 이용해서 Bitmap 전송
사진 전송이 완료되면, 완료 메시지 보냄
로딩 뷰 보여줌
모바일로 메모리박스 데이터 요청
메모리박스 메뉴 선택
WearableListenerService
에서 메시지 받아서
데이터 Fetch 시작
Wear Data API 로 Bitmap 로드
GridPagerAdapter에 로드
29. 함정 1 - 코드 품질
• 워낙 early stage project라, 일반적인 사용예가 없다.
• 모바일과의 통신이 많고, 이때문에 코드가 매우 매우 지저분
해진다.
• 끔찍한 코드를 짜고, 양심의 가책을 받는다.
30. 솔루션 1 - 코드 품질
• 안드로이드 웨어 코드랩 (http://goo.gl/Qu7wJG) 수행해
서 전반적인 감을 잡고, 계속해서 리팩터링 하기
• EventBus 와 같은 도구를 적절히 사용하여 코드를 깔끔하
게 하기
31. 함정 2 - 에러 처리
• 꼼꼼하게 에러 처리하기가 은근히 어렵다!
• 성공적으로 메시지 전송된 / 모바일과 연결 끊기는 상황에
대해 ConfirmationActivity를 적절하게 띄워줘야
32. 솔루션 2 - 에러 처리
• 에러 처리는 공통된 부분이 많으므로 적절히 재사용해서 처
리하자
• 꼼꼼하게 하는 수 밖에요..
34. 함정 3 - 동그란 디바이스
• 한국에서 구할수가 없다…
• 에뮬레이터로 가능은 하나 폰과 연결이 잘 안되고 끔찍하게
느리다
• 동그란 디바이스 처리하는 프레임웍에 버그가 있다
• 에뮬레이터로는 에러 처리가 힘들다
35. • G Watch R을 삽시다
• Android Developer 튜토리얼 정독 (https://
developer.android.com/training/wearables/ui/
layouts.html#different-layouts)
• 필요에 따라 WatchViewStub과 BoxInsetLayout을 적절
히 사용
솔루션 3 - 동그란 디바이스
36. 함정4 - Packaging (Auto Install)
• Wear App은 본체 앱을 설치하면 자동으로 같이 설치하게 되어 있음
• build.gradle의 applicationId 를 양쪽 똑같이 맞춰줘야함
• wear app에 선언한 permission을, mobile app에 모두 넣어줘야
함
• 똑같은 key로 sign 해야 함
• 중요한 내용들이 문서화가 부족하므로, 주의
• 빌드 스크립트 복잡하면, 삽질 가능성 ↑ ↑
37. • 어쩔수 없…
• 먼저 해본 사람에게 물어보세요 (StackOverflow?)
• Workflow:
1. 패키징이 잘 되었는지 (apk 풀어보기 - res/raw에 microapp apk 있어야함)
2. 자동 설치가 되는지 (권한설정 등 점검)
3. 메시지 API 가 잘 작동하는지 (applicationId 맞추기, 같은 key로 sign)
솔루션4 - Packaging
38. 그렇다면, 좋았나요?
• 사용자들이 잘 사용한다면, 만족! (근데, 알수가 없어..)
• Featured in Google Play! (YAY!)
• 개발 과정도 재미 있었어요 (Refreshing!)
39. 조심하세요
• 구글에서 밀고있다고 다 성공하는건 아니다
• 얼마만큼 시간과 자원을 투자할지는 신중하게 생각하기
• 생각보다 개발이 어려울 수 있다
• Google에서 이런 부분을 많이 지원해주고, 문서나 프레임
웍도 계속 보강되고 있어 나아질것
40. Summary
Pros !
• 구글과의 파트너쉽 기회, 멋지게 잘해내면 글로벌 진출의 가능성도?
• 기존의 안드로이드 개발과 비슷하기에, 낮은 진입장벽
• Wearable에 대한 아이디어!
Cons
• 새로운 플랫폼에 대한 리스크 - 사용자도 많지 않고, 개발 시 참고할 자료가 부족
• 강력한 기능을 구현하기 쉽지 않다
• 완성도 있는 제품을 위해서 생각보다 많은 작업을 해야한다
41. Best Practice
1. 우선 시계를 하나 구입하거나, 구해서 사용해보세요.
2. 대강의 아이디어를 내보고, 개발할지를 결정하세요.
3. 안드로이드 웨어 코드랩 (http://goo.gl/Qu7wJG) 튜토리얼을 꼭 처음부터 끝까
지 완수하세요. 패키징까지 해보세요.
4. Android Developers Wearables 섹션을 꼼꼼히 보세요. (https://
developer.android.com/training/building-wearables.html)
5. 이제 감이 좀 오면, 제품을 설계하세요.
6. 되도록이면 동그란 디바이스까지 구입하세요.
7. 재사용되는 유틸리티나, 폰과의 통신 코드는 신경써서 잘 준비하세요.