Korea Android
super.init(version=6)
From Where to Wear
: 모바일 개발자가
워치에서 발견한 인사이트
Android Developer
Softberry
이태희
Slide 2
Slide 2 text
super.init(version=6)
From Where?
Slide 3
Slide 3 text
super.init(version=6)
From Where?
Slide 4
Slide 4 text
super.init(version=6)
From Where?
Slide 5
Slide 5 text
super.init(version=6)
From Where?
Wear OS 개발 경험 없음..
주변에는 다 애플 워치 씀..
레퍼런스도 거의 없음..
워치.. 많이 쓰나..?
Slide 6
Slide 6 text
super.init(version=6)
From Where?
더 유용한 앱들을 많이 사용하고 싶다!
=> 그래서 하나 만들었는데, 경험을 공유하고 싶다!
Slide 7
Slide 7 text
super.init(version=6)
to Wear!
Slide 8
Slide 8 text
From Where to Wear
: 모바일 개발자가 워치에서 발견한 인사이트
Korea Android
super.init(version=6)
Slide 9
Slide 9 text
super.init(version=6)
Contents
ra Wear OS의 특A
3a Wear OS vs Android Mobil9
Ga Wear OS에서만 할 수 있는 것6
Wa Wear OS 앱 최적화 및 모바일 앱 연g
&a 발표자가 만든 앱 시연
Slide 10
Slide 10 text
super.init(version=6)
& Wear OS의 특징
R LTE / 블루투스 지E
R 스피커 / 진동 / 음성 입력 지E
R 다기능 버튼 / 베젤 활P
R 다양한 피트니스 활동 추적
Slide 11
Slide 11 text
super.init(version=6)
& Wear OS의 특징
디자인 원칙
Slide 12
Slide 12 text
super.init(version=6)
& Wear OS의 특징
한두 가지 작업에 집중 손목에 최적화
Slide 13
Slide 13 text
super.init(version=6)
& Wear OS의 특징
항상 시계를 착용 오프라인 지원
Slide 14
Slide 14 text
super.init(version=6)
& Wear OS의 특징
타일 컴플리케이션 알림
Slide 15
Slide 15 text
super.init(version=6)
($ vs Android Mobile
Horologist
Slide 16
Slide 16 text
super.init(version=6)
($ vs Android Mobile
BoxInsetLayout
WearableRecyclerView
SwipeDismissFrameLayout
Slide 17
Slide 17 text
super.init(version=6)
($ vs Android Mobile
리소스
CPU 3.2GHz 1.6GHz
8GB 2GB
512GB 32GB
4,000mAh 300mAh
LTE
5G
RAM
저장용량
네트워크
배터리
갤럭시 S24 갤럭시 워치 7
Slide 18
Slide 18 text
super.init(version=6)
($ vs Android Mobile
메모리 사용 최소화 / 배터리 최적화 / 오프라인 지원
Slide 19
Slide 19 text
super.init(version=6)
($ vs Android Mobile
Slide 20
Slide 20 text
super.init(version=6)
($ vs Android Mobile
vignette
PositionIndicator
Slide 21
Slide 21 text
super.init(version=6)
($ vs Android Mobile
F CurvedLayouB
F SwipeToDismissBo6
F CircularProgressIndicatoW
F ScalingLazyColum1
F AppCard
u Chiw
u CompactChiw
u ToggleChiw
u SplitToggleChiw
u Stepper
Wear Compose Material
Slide 22
Slide 22 text
super.init(version=6)
($ vs Android Mobile
이외에도 다른 점들
x AndroidManifesb
x LifeCycle
x Health Service
x 터치 타겟 크기 / 스와이B
x 앱 배포 등등
Slide 23
Slide 23 text
super.init(version=6)
& Only Wear OS
심박수 측정 수면 측정 자이로스코프
Slide 24
Slide 24 text
super.init(version=6)
Slide 25
Slide 25 text
super.init(version=6)
0" Only Wear OS - BPM
Slide 26
Slide 26 text
super.init(version=6)
0" Only Wear OS - BPM
collect
Slide 27
Slide 27 text
super.init(version=6)
기본적으로 모바일에서 다루는 하드웨어 관련 코드는 동일하다.
But, 워치에 더 특화되었기에 유의미하다고 볼 수 있다.
sc Only Wear OS - GyroScope
Slide 28
Slide 28 text
super.init(version=6)
1! Only Wear OS - GyroScope
Slide 29
Slide 29 text
super.init(version=6)
1! Only Wear OS - GyroScope
Slide 30
Slide 30 text
super.init(version=6)
& Only Wear OS
a Google AssistanR
a 타일, 컴플리케이9
a TTS, 음성 인8
a 워치 페이'
a 등등...
Slide 31
Slide 31 text
super.init(version=6)
$ Optimize!
Slide 32
Slide 32 text
super.init(version=6)
$ Optimize!
가장 중요한 것은 배터리 최적화!
Slide 33
Slide 33 text
super.init(version=6)
$ Optimize!
뭘 할 수 있을까..?
Slide 34
Slide 34 text
super.init(version=6)
$ Optimize!
센서를 사용하는 기능을 낭비하지 말t
백그라운드 작업을 최소화해보t
Wake Lock 사용을 최소화해보t
불필요한 Recomposition을 방지하t
콜드 스타트를 최적화해보t
캐싱으로 네트워크 요청을 최소화하자
핵심 = 아껴쓰자!
Slide 35
Slide 35 text
T 센서를 사용하는 기능을 낭비하지 말F
T 백그라운드 작업을 최소화해보F
T Wake Lock을 제한하F
T 불필요한 Recomposition을 방지하F
T 콜드 스타트를 최적화해보F
T 캐싱으로 네트워크 요청을 최소화하자
핵심 = 아껴쓰자!
super.init(version=6)
Optimize!
Slide 36
Slide 36 text
super.init(version=6)
$ Optimize!
Slide 37
Slide 37 text
super.init(version=6)
# Connect?
Slide 38
Slide 38 text
super.init(version=6)
# Connect?
DataClient : Wearable ←> Mobile, 동기화 작업 (양방향)
: 즉시 전달이 필요한 경우에 적합 (단방향)
: Mobile에서 데이터를 수신하기 위한 서비스
MessageClient
WearableListenerService
Slide 39
Slide 39 text
super.init(version=6)
이래도 안하시겠다고요?
- 갤럭시 워치 유저 살면서 5명 본 사람..
LIE TRUE LIE
TRUE LIE TRUE
LIE TRUE LIE
TRUE LIE TRUE
LIE TRUE LIE
곧 출시 예정!
ddo-lie-wear-os
Slide 40
Slide 40 text
super.init(version=6)
to Wear!
Slide 41
Slide 41 text
감사합니다
Korea Android
super.init(version=6)
in/haeti
Taehee Lee
haeti-dev