SlideShare a Scribd company logo
1 of 49
Download to read offline
Android Wear 개발,
할까요 말까요?
고민하는 스타트업과 개발자들을 위해
!
2014-11-01
GDG Android Conference
!
VCNC(비트윈), 김상우 (kevin@between.us)
김상우 (Kevin)
• VCNC(비트윈)에서 안드로이드 개발과 데이터 분석을 담당
• 호기심: 많음
• 관심거리들: Android, Wearables, Material Design, Scala (Scaloid),
iOS, Swift, 데이터 분석, Spark, Open Source AngularJs …
Android Wear 개발을,
그리고 새로운 플랫폼에 진출을 고민하는
여러분들을 위한 경험 공유
1. Android Wear 개발하기
!
2. 새로운 플랫폼에 뛰어들기
1. Android Wear 개발하기
!
2. 새로운 플랫폼에 뛰어들기
• 연인들을 위한 둘만의 공간
• 곧 1000만 다운로드
• 한국 뿐 아니라 전 세계적으로 많은 사랑을 받고 있다
• 혼자는 못써요.. 죄송
on Android Wear?
Wearable 기기에 대한 생각
Fitbit
싸긴 한데 기능이 아쉽다.
Galaxy Gear
비싸고 쓸모가 없다. (광고도 후지다)
Google Glass
멋지다. 하지만 살수가 없다.
Android Wear
간만에 보는 살만한 거!
Android Wear
폰과의 알림 연동
(이거 꽤 편함)
음성으로 제어
(한글은 망..)
만보계를 포함한 많은 기능
Android Wear
Moto 360
G Watch
Gear Live
G Watch R
Android Wear
Pros!
• 기능이 상당히 편리하다. (알림, 기본 앱들, 음성 제어 ..)
• 개발이 쉽다. (안드로이드)
• 좋은 가격 (20만원 중반)
Cons!
• 대중화 되기에는 아쉬운 배터리 성능 (1~2일)
• 매일같이 사용할 수 있는 앱들이 많이 없다
100 + 20 Project
• 구글의 80 : 20 프로젝트와 비슷하게 원하는 프로젝트에 시
간을 쓸 수 있도록!
• 단 하던일은 다 하면서 하기로 한다. 즉 100 + 20!
• 지나친 퀄리티 추구로 가끔씩 하던일을 하나도 못하기도 한
다. (0 + 20 프로젝트…)
자 이제 개발을 해봅시다.
하지만 아이디어가 없어…
공부부터!
• 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
들,
Android Wear 란..
• 사용자가 실행하지 않아도, 적절한 타이밍에 Notification
• 최소한의 입력으로 많은것을 할 수 있도록
• 폰을 꺼내지 않아도 정보를 확인
• 항상 착용함으로 얻는 이득 (헬스케어 등)
• 생각보다 많은 기능과 가능성
비트윈 아이디어
Wear에서 상대방에게 진동을 보내는거야!
그래서 팀원들이 모였습니다…
Special thanks to
Lako, Furi, Alpaca, Henry
@ Between
+ TI, Hyunse @ Google
심박수 진동을 재현해주기 - 남자친구 느끼기?
미안하다아아~~!!!! 특정 동작 취해서 재미있는것 하기
거짓말 탐지기 (심박)
오빠 나 이거 사줘 알림
우연히 동시에 같은 모션을 하면 알림 - 찌찌뽕? - 지구방위대?
우리가 만나고 헤어질때까지의 걸음수는?
만났는데 손을 안잡고있으면 진동을 울려주자
Concept
커플들이 떨어져 있더라도,
!
항상 착용하는 Wearable을 활용하여
!
함께 있는 느낌을 주자!
Concept
• Feel His/Her Heart : 그대의 심장박동 느끼기
• Where He/She Is : 그/그녀는 어느 방향에 있을까?
• Feel Memories : 언제든 추억을 떠올릴 수 있는 메모리박스
멋지다! 하지만 이 컨셉은 하루만에 망하게 되는데…
Android Wear Bootcamp @ Google
• Google에서 진행하는 Android Wear Bootcamp에 참가
하게 되었다
• 무언가를 준비하기로 하고 전날부터 이것저것 만져보았다
• 그날 밤에 두근두근 남자친구 느끼기 컨셉의 프로토타입이
나왔음 (개발하기 쉽다!!)
다음날: 망했어요
• Bootcamp에서 나눠준, 심박 기능이 있는 Samsung
Gear Live를 처음으로 시험해봄
• 상상속의 심박센서 : 2~3초 이내에 심박 측정 가능
• 현실속의 심박센서 : 10~20초 걸림. 측정하는동안 시계를
올바른 위치에 놓고, 가만히 있어야 함.
최종 계획
Android Wear 에서 구동되는 앱으로써 꼭 필요한 기능을 넣
자
• 목소리로 답변하기 (Hangout 등)
• 시간 되면 이모티콘 답변하기
• 시간 되면 비트윈 메모리박스 (고전이 좋은것..)
애플 워치도 때마침 공개되서 슬쩍 눈치를 봤어요…
Notification
Micro App
Framework
Framework
Wearable!
Extender
Wearable!
Extender
Framework Micro App
이모티콘 전송
Wear Mobile
상대방에게 메시지 옴
Notification 생성
WearableExtender로
웨어용 메시지 추가
Notification 보임
Send Emoticon 메뉴 선택
Notification 보임
PendingIntent 받음
Wear로
Show Emoticon Select Activity
메시지 전송
WearableListenerService
에서 메시지 받아서
EmoticonSelectActivity start
이모티콘 선택,
모바일로 메시지 보냄
WearableListenerService
에서 메시지 받아서
채팅 접속 상태 확인 후 이모티콘 전송
Notification
Micro App
메모리 박스
Wear Mobile
데이터베이스에서 메모리박스 확인
Wear 용의 작은 이미지 로드
Wear Data API 를 이용해서 Bitmap 전송
사진 전송이 완료되면, 완료 메시지 보냄
로딩 뷰 보여줌
모바일로 메모리박스 데이터 요청
메모리박스 메뉴 선택
WearableListenerService
에서 메시지 받아서
데이터 Fetch 시작
Wear Data API 로 Bitmap 로드
GridPagerAdapter에 로드
함정 1 - 코드 품질
• 워낙 early stage project라, 일반적인 사용예가 없다.
• 모바일과의 통신이 많고, 이때문에 코드가 매우 매우 지저분
해진다.
• 끔찍한 코드를 짜고, 양심의 가책을 받는다.
솔루션 1 - 코드 품질
• 안드로이드 웨어 코드랩 (http://goo.gl/Qu7wJG) 수행해
서 전반적인 감을 잡고, 계속해서 리팩터링 하기
• EventBus 와 같은 도구를 적절히 사용하여 코드를 깔끔하
게 하기
함정 2 - 에러 처리
• 꼼꼼하게 에러 처리하기가 은근히 어렵다!
• 성공적으로 메시지 전송된 / 모바일과 연결 끊기는 상황에
대해 ConfirmationActivity를 적절하게 띄워줘야
솔루션 2 - 에러 처리
• 에러 처리는 공통된 부분이 많으므로 적절히 재사용해서 처
리하자
• 꼼꼼하게 하는 수 밖에요..
레이아웃이 정확히
맞지 않습니다.다시
작업해주세요
버튼이 쏠려있군요
함정 3 - 동그란 디바이스
함정 3 - 동그란 디바이스
• 한국에서 구할수가 없다…
• 에뮬레이터로 가능은 하나 폰과 연결이 잘 안되고 끔찍하게
느리다
• 동그란 디바이스 처리하는 프레임웍에 버그가 있다
• 에뮬레이터로는 에러 처리가 힘들다
• G Watch R을 삽시다
• Android Developer 튜토리얼 정독 (https://
developer.android.com/training/wearables/ui/
layouts.html#different-layouts)
• 필요에 따라 WatchViewStub과 BoxInsetLayout을 적절
히 사용
솔루션 3 - 동그란 디바이스
함정4 - Packaging (Auto Install)
• Wear App은 본체 앱을 설치하면 자동으로 같이 설치하게 되어 있음
• build.gradle의 applicationId 를 양쪽 똑같이 맞춰줘야함
• wear app에 선언한 permission을, mobile app에 모두 넣어줘야
함
• 똑같은 key로 sign 해야 함
• 중요한 내용들이 문서화가 부족하므로, 주의
• 빌드 스크립트 복잡하면, 삽질 가능성 ↑ ↑
• 어쩔수 없…
• 먼저 해본 사람에게 물어보세요 (StackOverflow?)
• Workflow:
1. 패키징이 잘 되었는지 (apk 풀어보기 - res/raw에 microapp apk 있어야함)
2. 자동 설치가 되는지 (권한설정 등 점검)
3. 메시지 API 가 잘 작동하는지 (applicationId 맞추기, 같은 key로 sign)
솔루션4 - Packaging
그렇다면, 좋았나요?
• 사용자들이 잘 사용한다면, 만족! (근데, 알수가 없어..)
• Featured in Google Play! (YAY!)
• 개발 과정도 재미 있었어요 (Refreshing!)
조심하세요
• 구글에서 밀고있다고 다 성공하는건 아니다
• 얼마만큼 시간과 자원을 투자할지는 신중하게 생각하기
• 생각보다 개발이 어려울 수 있다
• Google에서 이런 부분을 많이 지원해주고, 문서나 프레임
웍도 계속 보강되고 있어 나아질것
Summary
Pros !
• 구글과의 파트너쉽 기회, 멋지게 잘해내면 글로벌 진출의 가능성도?
• 기존의 안드로이드 개발과 비슷하기에, 낮은 진입장벽
• Wearable에 대한 아이디어!
Cons
• 새로운 플랫폼에 대한 리스크 - 사용자도 많지 않고, 개발 시 참고할 자료가 부족
• 강력한 기능을 구현하기 쉽지 않다
• 완성도 있는 제품을 위해서 생각보다 많은 작업을 해야한다
Best Practice
1. 우선 시계를 하나 구입하거나, 구해서 사용해보세요.
2. 대강의 아이디어를 내보고, 개발할지를 결정하세요.
3. 안드로이드 웨어 코드랩 (http://goo.gl/Qu7wJG) 튜토리얼을 꼭 처음부터 끝까
지 완수하세요. 패키징까지 해보세요.
4. Android Developers Wearables 섹션을 꼼꼼히 보세요. (https://
developer.android.com/training/building-wearables.html)
5. 이제 감이 좀 오면, 제품을 설계하세요.
6. 되도록이면 동그란 디바이스까지 구입하세요.
7. 재사용되는 유틸리티나, 폰과의 통신 코드는 신경써서 잘 준비하세요.
1. Android Wear 개발하기
!
2. 새로운 플랫폼에 뛰어들기
새로운 플랫폼!?
뜰 수 있는 기회
하지만 기회가, 위기가 될 수도 있다!
당신의 시간은 소중하니까요.
새 플랫폼에서의 성공가능성
새 플랫폼을 쓰는 사용자 수
x
새 플랫폼의 강력함
x
이를 잘 구현한 자사의 제품이 줄 수 있는 가치
+
새 플랫폼에서 선도적 위치를 차지한다면, 추가적 기회
Between 이전의 제품들
• 플랫폼의 사용자 수 충분하지 않았음
• 플랫폼이 생각보다 강력하지 않았음
• 자사의 앱이 사용자에게 큰 가치를 주지 못했음
• 선도적 위치 차지하지 못함
News Gallery
Songs for Kids
낡은(?) 플랫폼으로 돌아오다
• 모두가 이미 끝났다고 말한 모바일
• 기회를 잡으려는 생각보다는, 사용
자에게 가치를 주려 노력
• 오로지 퀄리티에 집중
Decision
is
Yours
회사의 상황과 전략에 맞게,
현명한 판단을 해주세요
끝
감사합니다
최고의 복지는,
최고의 동료들과 일하는 것입니다
jobs@vcnc.co.kr 자유로운 형식의 소개서
More Info: http://engineering.vcnc.co.kr/jobs/

More Related Content

Viewers also liked

GKAC 2015 Apr. - Xamarin forms, mvvm and testing
GKAC 2015 Apr. - Xamarin forms, mvvm and testingGKAC 2015 Apr. - Xamarin forms, mvvm and testing
GKAC 2015 Apr. - Xamarin forms, mvvm and testingGDG Korea
 
GKAC 2015 Apr. - Android Looper
GKAC 2015 Apr. - Android LooperGKAC 2015 Apr. - Android Looper
GKAC 2015 Apr. - Android LooperGDG Korea
 
Android Studio 개발 셋팅 + Genymotion
Android Studio 개발 셋팅 + GenymotionAndroid Studio 개발 셋팅 + Genymotion
Android Studio 개발 셋팅 + GenymotionYoungSu Son
 
8년동안 테라에서 배운 8가지 교훈
8년동안 테라에서 배운 8가지 교훈8년동안 테라에서 배운 8가지 교훈
8년동안 테라에서 배운 8가지 교훈Harns (Nak-Hyoung) Kim
 
Java Micro Edition Platform & Android - Seminar on Small and Mobile Devices
Java Micro Edition Platform & Android - Seminar on Small and Mobile DevicesJava Micro Edition Platform & Android - Seminar on Small and Mobile Devices
Java Micro Edition Platform & Android - Seminar on Small and Mobile Devicesjuricde
 
Intro to Android : Making your first App!
Intro to Android : Making your first App!Intro to Android : Making your first App!
Intro to Android : Making your first App!Stacy Devino
 
Async task, threads, pools, and executors oh my!
Async task, threads, pools, and executors oh my!Async task, threads, pools, and executors oh my!
Async task, threads, pools, and executors oh my!Stacy Devino
 
GKAC 2015 Apr. - Battery, 안드로이드를 위한 쉬운 웹 API 호출
GKAC 2015 Apr. - Battery, 안드로이드를 위한 쉬운 웹 API 호출GKAC 2015 Apr. - Battery, 안드로이드를 위한 쉬운 웹 API 호출
GKAC 2015 Apr. - Battery, 안드로이드를 위한 쉬운 웹 API 호출GDG Korea
 
같은 유저수, 다른 수익? 모바일 앱의 수익을 높이는 방법
같은 유저수, 다른 수익? 모바일 앱의 수익을 높이는 방법같은 유저수, 다른 수익? 모바일 앱의 수익을 높이는 방법
같은 유저수, 다른 수익? 모바일 앱의 수익을 높이는 방법GDG Korea
 
디자이너 없어도 괜찮아! (feat.Material Design Guide)
디자이너 없어도 괜찮아! (feat.Material Design Guide)디자이너 없어도 괜찮아! (feat.Material Design Guide)
디자이너 없어도 괜찮아! (feat.Material Design Guide)GDG Korea
 
스프링군살없이세팅하기(The way to setting the Spring framework for web.)
스프링군살없이세팅하기(The way to setting the Spring framework for web.)스프링군살없이세팅하기(The way to setting the Spring framework for web.)
스프링군살없이세팅하기(The way to setting the Spring framework for web.)EunChul Shin
 
GKAC 2015 Apr. - RxAndroid
GKAC 2015 Apr. - RxAndroidGKAC 2015 Apr. - RxAndroid
GKAC 2015 Apr. - RxAndroidGDG Korea
 
GKAC 2014 Nov. - RxJava를 활용한 Functional Reactive Programming
GKAC 2014 Nov. - RxJava를 활용한 Functional Reactive ProgrammingGKAC 2014 Nov. - RxJava를 활용한 Functional Reactive Programming
GKAC 2014 Nov. - RxJava를 활용한 Functional Reactive ProgrammingGDG Korea
 
GKAC 2015 Apr. - 테스트 코드에서 코드 커버리지까지
GKAC 2015 Apr. - 테스트 코드에서 코드 커버리지까지GKAC 2015 Apr. - 테스트 코드에서 코드 커버리지까지
GKAC 2015 Apr. - 테스트 코드에서 코드 커버리지까지GDG Korea
 
Best Practices in Media Playback
Best Practices in Media PlaybackBest Practices in Media Playback
Best Practices in Media PlaybackGDG Korea
 
FIrebase를 이용한 호우호우 미니게임 만들기
FIrebase를 이용한 호우호우 미니게임 만들기FIrebase를 이용한 호우호우 미니게임 만들기
FIrebase를 이용한 호우호우 미니게임 만들기GDG Korea
 
Reinfocement learning
Reinfocement learningReinfocement learning
Reinfocement learningGDG Korea
 
안드로이드 데이터 바인딩
안드로이드 데이터 바인딩안드로이드 데이터 바인딩
안드로이드 데이터 바인딩GDG Korea
 
Introduce Android TV and new features from Google I/O 2016
Introduce Android TV and new features from Google I/O 2016Introduce Android TV and new features from Google I/O 2016
Introduce Android TV and new features from Google I/O 2016GDG Korea
 
funf - Android Sensing Framework
funf - Android Sensing Frameworkfunf - Android Sensing Framework
funf - Android Sensing FrameworkYoungSu Son
 

Viewers also liked (20)

GKAC 2015 Apr. - Xamarin forms, mvvm and testing
GKAC 2015 Apr. - Xamarin forms, mvvm and testingGKAC 2015 Apr. - Xamarin forms, mvvm and testing
GKAC 2015 Apr. - Xamarin forms, mvvm and testing
 
GKAC 2015 Apr. - Android Looper
GKAC 2015 Apr. - Android LooperGKAC 2015 Apr. - Android Looper
GKAC 2015 Apr. - Android Looper
 
Android Studio 개발 셋팅 + Genymotion
Android Studio 개발 셋팅 + GenymotionAndroid Studio 개발 셋팅 + Genymotion
Android Studio 개발 셋팅 + Genymotion
 
8년동안 테라에서 배운 8가지 교훈
8년동안 테라에서 배운 8가지 교훈8년동안 테라에서 배운 8가지 교훈
8년동안 테라에서 배운 8가지 교훈
 
Java Micro Edition Platform & Android - Seminar on Small and Mobile Devices
Java Micro Edition Platform & Android - Seminar on Small and Mobile DevicesJava Micro Edition Platform & Android - Seminar on Small and Mobile Devices
Java Micro Edition Platform & Android - Seminar on Small and Mobile Devices
 
Intro to Android : Making your first App!
Intro to Android : Making your first App!Intro to Android : Making your first App!
Intro to Android : Making your first App!
 
Async task, threads, pools, and executors oh my!
Async task, threads, pools, and executors oh my!Async task, threads, pools, and executors oh my!
Async task, threads, pools, and executors oh my!
 
GKAC 2015 Apr. - Battery, 안드로이드를 위한 쉬운 웹 API 호출
GKAC 2015 Apr. - Battery, 안드로이드를 위한 쉬운 웹 API 호출GKAC 2015 Apr. - Battery, 안드로이드를 위한 쉬운 웹 API 호출
GKAC 2015 Apr. - Battery, 안드로이드를 위한 쉬운 웹 API 호출
 
같은 유저수, 다른 수익? 모바일 앱의 수익을 높이는 방법
같은 유저수, 다른 수익? 모바일 앱의 수익을 높이는 방법같은 유저수, 다른 수익? 모바일 앱의 수익을 높이는 방법
같은 유저수, 다른 수익? 모바일 앱의 수익을 높이는 방법
 
디자이너 없어도 괜찮아! (feat.Material Design Guide)
디자이너 없어도 괜찮아! (feat.Material Design Guide)디자이너 없어도 괜찮아! (feat.Material Design Guide)
디자이너 없어도 괜찮아! (feat.Material Design Guide)
 
스프링군살없이세팅하기(The way to setting the Spring framework for web.)
스프링군살없이세팅하기(The way to setting the Spring framework for web.)스프링군살없이세팅하기(The way to setting the Spring framework for web.)
스프링군살없이세팅하기(The way to setting the Spring framework for web.)
 
GKAC 2015 Apr. - RxAndroid
GKAC 2015 Apr. - RxAndroidGKAC 2015 Apr. - RxAndroid
GKAC 2015 Apr. - RxAndroid
 
GKAC 2014 Nov. - RxJava를 활용한 Functional Reactive Programming
GKAC 2014 Nov. - RxJava를 활용한 Functional Reactive ProgrammingGKAC 2014 Nov. - RxJava를 활용한 Functional Reactive Programming
GKAC 2014 Nov. - RxJava를 활용한 Functional Reactive Programming
 
GKAC 2015 Apr. - 테스트 코드에서 코드 커버리지까지
GKAC 2015 Apr. - 테스트 코드에서 코드 커버리지까지GKAC 2015 Apr. - 테스트 코드에서 코드 커버리지까지
GKAC 2015 Apr. - 테스트 코드에서 코드 커버리지까지
 
Best Practices in Media Playback
Best Practices in Media PlaybackBest Practices in Media Playback
Best Practices in Media Playback
 
FIrebase를 이용한 호우호우 미니게임 만들기
FIrebase를 이용한 호우호우 미니게임 만들기FIrebase를 이용한 호우호우 미니게임 만들기
FIrebase를 이용한 호우호우 미니게임 만들기
 
Reinfocement learning
Reinfocement learningReinfocement learning
Reinfocement learning
 
안드로이드 데이터 바인딩
안드로이드 데이터 바인딩안드로이드 데이터 바인딩
안드로이드 데이터 바인딩
 
Introduce Android TV and new features from Google I/O 2016
Introduce Android TV and new features from Google I/O 2016Introduce Android TV and new features from Google I/O 2016
Introduce Android TV and new features from Google I/O 2016
 
funf - Android Sensing Framework
funf - Android Sensing Frameworkfunf - Android Sensing Framework
funf - Android Sensing Framework
 

Similar to GKAC 2014 Nov. - Android Wear 개발, 할까요 말까요?

Myong june appleandkeyword
Myong june appleandkeywordMyong june appleandkeyword
Myong june appleandkeyword명준 오
 
토이 프로젝트를 하자.Pptx
토이 프로젝트를 하자.Pptx토이 프로젝트를 하자.Pptx
토이 프로젝트를 하자.PptxMyeongin Woo
 
도도와 파이썬: 좋은 선택과 나쁜 선택
도도와 파이썬: 좋은 선택과 나쁜 선택도도와 파이썬: 좋은 선택과 나쁜 선택
도도와 파이썬: 좋은 선택과 나쁜 선택Jc Kim
 
131 deview 2013 yobi-채수원
131 deview 2013 yobi-채수원131 deview 2013 yobi-채수원
131 deview 2013 yobi-채수원NAVER D2
 
Kgc12발표문서
Kgc12발표문서Kgc12발표문서
Kgc12발표문서Mingu Heo
 
프로그래머를 꿈꾸는 학부 후배들에게
프로그래머를 꿈꾸는 학부 후배들에게프로그래머를 꿈꾸는 학부 후배들에게
프로그래머를 꿈꾸는 학부 후배들에게Matthew (정재화)
 
16 학술제 마무리 자료
16 학술제 마무리 자료16 학술제 마무리 자료
16 학술제 마무리 자료Junyoung Jung
 
개발자와 커뮤니티 - 기묘한 이야기
개발자와 커뮤니티 - 기묘한 이야기개발자와 커뮤니티 - 기묘한 이야기
개발자와 커뮤니티 - 기묘한 이야기Lee WonJae
 
CEO & UX Designers' R&R
CEO & UX Designers' R&RCEO & UX Designers' R&R
CEO & UX Designers' R&RBilly Choi
 
K모바일발표 111026 하이브리드ux_배포용
K모바일발표 111026 하이브리드ux_배포용K모바일발표 111026 하이브리드ux_배포용
K모바일발표 111026 하이브리드ux_배포용jinwook shin
 
안드로이드와 아이오에스
안드로이드와 아이오에스안드로이드와 아이오에스
안드로이드와 아이오에스zoosagi12
 
My Way, Your Way
My Way, Your WayMy Way, Your Way
My Way, Your WayChris Ohk
 
2013 공개SW데이 발표 - 구름IDE의 발자취와 미래
2013 공개SW데이 발표 - 구름IDE의 발자취와 미래2013 공개SW데이 발표 - 구름IDE의 발자취와 미래
2013 공개SW데이 발표 - 구름IDE의 발자취와 미래Sung-tae Ryu
 
Google IO 2015 Keynote Summary
Google IO 2015 Keynote SummaryGoogle IO 2015 Keynote Summary
Google IO 2015 Keynote SummarySeunghyun Yu
 
Flutter로 글로벌앱 출시를 위한 꿀팁 - Droidknights2020
Flutter로 글로벌앱 출시를 위한 꿀팁 - Droidknights2020Flutter로 글로벌앱 출시를 위한 꿀팁 - Droidknights2020
Flutter로 글로벌앱 출시를 위한 꿀팁 - Droidknights2020Bansook Nam
 
스위처를 만드는 아이오의 개발팀 이야기
스위처를 만드는 아이오의 개발팀 이야기스위처를 만드는 아이오의 개발팀 이야기
스위처를 만드는 아이오의 개발팀 이야기Mijeong Park
 
[2014-07-04] 세계 정복의 첫걸음
[2014-07-04] 세계 정복의 첫걸음[2014-07-04] 세계 정복의 첫걸음
[2014-07-04] 세계 정복의 첫걸음Ashal aka JOKER
 
INFCON2023-지속 가능한 소프트웨어 개발을 위한 경험과 통찰
INFCON2023-지속 가능한 소프트웨어 개발을 위한 경험과 통찰INFCON2023-지속 가능한 소프트웨어 개발을 위한 경험과 통찰
INFCON2023-지속 가능한 소프트웨어 개발을 위한 경험과 통찰Myeongseok Baek
 
[Hello World 천안아산] 안드로이드 입문
[Hello World 천안아산] 안드로이드 입문[Hello World 천안아산] 안드로이드 입문
[Hello World 천안아산] 안드로이드 입문Taeho Kim
 

Similar to GKAC 2014 Nov. - Android Wear 개발, 할까요 말까요? (20)

Myong june appleandkeyword
Myong june appleandkeywordMyong june appleandkeyword
Myong june appleandkeyword
 
토이 프로젝트를 하자.Pptx
토이 프로젝트를 하자.Pptx토이 프로젝트를 하자.Pptx
토이 프로젝트를 하자.Pptx
 
도도와 파이썬: 좋은 선택과 나쁜 선택
도도와 파이썬: 좋은 선택과 나쁜 선택도도와 파이썬: 좋은 선택과 나쁜 선택
도도와 파이썬: 좋은 선택과 나쁜 선택
 
131 deview 2013 yobi-채수원
131 deview 2013 yobi-채수원131 deview 2013 yobi-채수원
131 deview 2013 yobi-채수원
 
Kgc12발표문서
Kgc12발표문서Kgc12발표문서
Kgc12발표문서
 
프로그래머를 꿈꾸는 학부 후배들에게
프로그래머를 꿈꾸는 학부 후배들에게프로그래머를 꿈꾸는 학부 후배들에게
프로그래머를 꿈꾸는 학부 후배들에게
 
16 학술제 마무리 자료
16 학술제 마무리 자료16 학술제 마무리 자료
16 학술제 마무리 자료
 
개발자와 커뮤니티 - 기묘한 이야기
개발자와 커뮤니티 - 기묘한 이야기개발자와 커뮤니티 - 기묘한 이야기
개발자와 커뮤니티 - 기묘한 이야기
 
CEO & UX Designers' R&R
CEO & UX Designers' R&RCEO & UX Designers' R&R
CEO & UX Designers' R&R
 
K모바일발표 111026 하이브리드ux_배포용
K모바일발표 111026 하이브리드ux_배포용K모바일발표 111026 하이브리드ux_배포용
K모바일발표 111026 하이브리드ux_배포용
 
안드로이드와 아이오에스
안드로이드와 아이오에스안드로이드와 아이오에스
안드로이드와 아이오에스
 
My Way, Your Way
My Way, Your WayMy Way, Your Way
My Way, Your Way
 
Fedevtalk 15 jds
Fedevtalk 15 jdsFedevtalk 15 jds
Fedevtalk 15 jds
 
2013 공개SW데이 발표 - 구름IDE의 발자취와 미래
2013 공개SW데이 발표 - 구름IDE의 발자취와 미래2013 공개SW데이 발표 - 구름IDE의 발자취와 미래
2013 공개SW데이 발표 - 구름IDE의 발자취와 미래
 
Google IO 2015 Keynote Summary
Google IO 2015 Keynote SummaryGoogle IO 2015 Keynote Summary
Google IO 2015 Keynote Summary
 
Flutter로 글로벌앱 출시를 위한 꿀팁 - Droidknights2020
Flutter로 글로벌앱 출시를 위한 꿀팁 - Droidknights2020Flutter로 글로벌앱 출시를 위한 꿀팁 - Droidknights2020
Flutter로 글로벌앱 출시를 위한 꿀팁 - Droidknights2020
 
스위처를 만드는 아이오의 개발팀 이야기
스위처를 만드는 아이오의 개발팀 이야기스위처를 만드는 아이오의 개발팀 이야기
스위처를 만드는 아이오의 개발팀 이야기
 
[2014-07-04] 세계 정복의 첫걸음
[2014-07-04] 세계 정복의 첫걸음[2014-07-04] 세계 정복의 첫걸음
[2014-07-04] 세계 정복의 첫걸음
 
INFCON2023-지속 가능한 소프트웨어 개발을 위한 경험과 통찰
INFCON2023-지속 가능한 소프트웨어 개발을 위한 경험과 통찰INFCON2023-지속 가능한 소프트웨어 개발을 위한 경험과 통찰
INFCON2023-지속 가능한 소프트웨어 개발을 위한 경험과 통찰
 
[Hello World 천안아산] 안드로이드 입문
[Hello World 천안아산] 안드로이드 입문[Hello World 천안아산] 안드로이드 입문
[Hello World 천안아산] 안드로이드 입문
 

More from GDG Korea

접근성(Accessibility)과 안드로이드
접근성(Accessibility)과 안드로이드접근성(Accessibility)과 안드로이드
접근성(Accessibility)과 안드로이드GDG Korea
 
Tensorflow 101
Tensorflow 101Tensorflow 101
Tensorflow 101GDG Korea
 
Building Extraordinary Apps with Firebase Analytics
Building Extraordinary Apps with Firebase AnalyticsBuilding Extraordinary Apps with Firebase Analytics
Building Extraordinary Apps with Firebase AnalyticsGDG Korea
 
GKAC 2014 Nov. - 안드로이드 스튜디오로 생산성 올리기
GKAC 2014 Nov. - 안드로이드 스튜디오로 생산성 올리기GKAC 2014 Nov. - 안드로이드 스튜디오로 생산성 올리기
GKAC 2014 Nov. - 안드로이드 스튜디오로 생산성 올리기GDG Korea
 
GKAC 2014 Nov. - 그루비로 안드로이드 앱 개발하기
GKAC 2014 Nov. - 그루비로 안드로이드 앱 개발하기GKAC 2014 Nov. - 그루비로 안드로이드 앱 개발하기
GKAC 2014 Nov. - 그루비로 안드로이드 앱 개발하기GDG Korea
 
GKAC 2014 Nov. - The Beautiful Design Collection 살펴보기
GKAC 2014 Nov. - The Beautiful Design Collection 살펴보기GKAC 2014 Nov. - The Beautiful Design Collection 살펴보기
GKAC 2014 Nov. - The Beautiful Design Collection 살펴보기GDG Korea
 
GKAC 2014 Nov. - 안드로이드 5.0의 새로운 기능
GKAC 2014 Nov. - 안드로이드 5.0의 새로운 기능GKAC 2014 Nov. - 안드로이드 5.0의 새로운 기능
GKAC 2014 Nov. - 안드로이드 5.0의 새로운 기능GDG Korea
 

More from GDG Korea (7)

접근성(Accessibility)과 안드로이드
접근성(Accessibility)과 안드로이드접근성(Accessibility)과 안드로이드
접근성(Accessibility)과 안드로이드
 
Tensorflow 101
Tensorflow 101Tensorflow 101
Tensorflow 101
 
Building Extraordinary Apps with Firebase Analytics
Building Extraordinary Apps with Firebase AnalyticsBuilding Extraordinary Apps with Firebase Analytics
Building Extraordinary Apps with Firebase Analytics
 
GKAC 2014 Nov. - 안드로이드 스튜디오로 생산성 올리기
GKAC 2014 Nov. - 안드로이드 스튜디오로 생산성 올리기GKAC 2014 Nov. - 안드로이드 스튜디오로 생산성 올리기
GKAC 2014 Nov. - 안드로이드 스튜디오로 생산성 올리기
 
GKAC 2014 Nov. - 그루비로 안드로이드 앱 개발하기
GKAC 2014 Nov. - 그루비로 안드로이드 앱 개발하기GKAC 2014 Nov. - 그루비로 안드로이드 앱 개발하기
GKAC 2014 Nov. - 그루비로 안드로이드 앱 개발하기
 
GKAC 2014 Nov. - The Beautiful Design Collection 살펴보기
GKAC 2014 Nov. - The Beautiful Design Collection 살펴보기GKAC 2014 Nov. - The Beautiful Design Collection 살펴보기
GKAC 2014 Nov. - The Beautiful Design Collection 살펴보기
 
GKAC 2014 Nov. - 안드로이드 5.0의 새로운 기능
GKAC 2014 Nov. - 안드로이드 5.0의 새로운 기능GKAC 2014 Nov. - 안드로이드 5.0의 새로운 기능
GKAC 2014 Nov. - 안드로이드 5.0의 새로운 기능
 

GKAC 2014 Nov. - Android Wear 개발, 할까요 말까요?

  • 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 …
  • 3. Android Wear 개발을, 그리고 새로운 플랫폼에 진출을 고민하는 여러분들을 위한 경험 공유
  • 4. 1. Android Wear 개발하기 ! 2. 새로운 플랫폼에 뛰어들기
  • 5. 1. Android Wear 개발하기 ! 2. 새로운 플랫폼에 뛰어들기
  • 6. • 연인들을 위한 둘만의 공간 • 곧 1000만 다운로드 • 한국 뿐 아니라 전 세계적으로 많은 사랑을 받고 있다 • 혼자는 못써요.. 죄송
  • 8. Wearable 기기에 대한 생각 Fitbit 싸긴 한데 기능이 아쉽다. Galaxy Gear 비싸고 쓸모가 없다. (광고도 후지다) Google Glass 멋지다. 하지만 살수가 없다. Android Wear 간만에 보는 살만한 거!
  • 9. Android Wear 폰과의 알림 연동 (이거 꽤 편함) 음성으로 제어 (한글은 망..) 만보계를 포함한 많은 기능
  • 10. Android Wear Moto 360 G Watch Gear Live G Watch R
  • 11. Android Wear Pros! • 기능이 상당히 편리하다. (알림, 기본 앱들, 음성 제어 ..) • 개발이 쉽다. (안드로이드) • 좋은 가격 (20만원 중반) Cons! • 대중화 되기에는 아쉬운 배터리 성능 (1~2일) • 매일같이 사용할 수 있는 앱들이 많이 없다
  • 12. 100 + 20 Project • 구글의 80 : 20 프로젝트와 비슷하게 원하는 프로젝트에 시 간을 쓸 수 있도록! • 단 하던일은 다 하면서 하기로 한다. 즉 100 + 20! • 지나친 퀄리티 추구로 가끔씩 하던일을 하나도 못하기도 한 다. (0 + 20 프로젝트…)
  • 13. 자 이제 개발을 해봅시다.
  • 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 심박수 진동을 재현해주기 - 남자친구 느끼기? 미안하다아아~~!!!! 특정 동작 취해서 재미있는것 하기 거짓말 탐지기 (심박) 오빠 나 이거 사줘 알림 우연히 동시에 같은 모션을 하면 알림 - 찌찌뽕? - 지구방위대? 우리가 만나고 헤어질때까지의 걸음수는? 만났는데 손을 안잡고있으면 진동을 울려주자
  • 19. Concept 커플들이 떨어져 있더라도, ! 항상 착용하는 Wearable을 활용하여 ! 함께 있는 느낌을 주자!
  • 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. 재사용되는 유틸리티나, 폰과의 통신 코드는 신경써서 잘 준비하세요.
  • 42. 1. Android Wear 개발하기 ! 2. 새로운 플랫폼에 뛰어들기
  • 43. 새로운 플랫폼!? 뜰 수 있는 기회 하지만 기회가, 위기가 될 수도 있다! 당신의 시간은 소중하니까요.
  • 44. 새 플랫폼에서의 성공가능성 새 플랫폼을 쓰는 사용자 수 x 새 플랫폼의 강력함 x 이를 잘 구현한 자사의 제품이 줄 수 있는 가치 + 새 플랫폼에서 선도적 위치를 차지한다면, 추가적 기회
  • 45. Between 이전의 제품들 • 플랫폼의 사용자 수 충분하지 않았음 • 플랫폼이 생각보다 강력하지 않았음 • 자사의 앱이 사용자에게 큰 가치를 주지 못했음 • 선도적 위치 차지하지 못함 News Gallery Songs for Kids
  • 46. 낡은(?) 플랫폼으로 돌아오다 • 모두가 이미 끝났다고 말한 모바일 • 기회를 잡으려는 생각보다는, 사용 자에게 가치를 주려 노력 • 오로지 퀄리티에 집중
  • 47. Decision is Yours 회사의 상황과 전략에 맞게, 현명한 판단을 해주세요
  • 49. 최고의 복지는, 최고의 동료들과 일하는 것입니다 jobs@vcnc.co.kr 자유로운 형식의 소개서 More Info: http://engineering.vcnc.co.kr/jobs/