Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
既存アプリを1時間でWear対応する
Search
Taro Nagasawa
July 16, 2014
Programming
5.8k
2
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
既存アプリを1時間でWear対応する
Android Wear勉強会 #2 (
http://atnd.org/events/53398
)の発表資料です。
Taro Nagasawa
July 16, 2014
More Decks by Taro Nagasawa
See All by Taro Nagasawa
Android開発者のための Kotlin Multiplatform入門
ntaro
0
1.8k
Kotlin 最新動向2022 #tfcon #techfeed
ntaro
1
2.4k
#Ubie 狂気の認知施策と選考設計
ntaro
14
14k
UbieにおけるサーバサイドKotlin活用事例
ntaro
1
1.2k
KotlinでSpring 完全理解ガイド #jsug
ntaro
6
3.7k
Kotlinでサーバサイドを始めよう!
ntaro
1
1.1k
Androidからサーバーサイドまで!プログラミング言語 Kotlinの魅力 #devboost
ntaro
5
3.1k
Kotlin Contracts #m3kt
ntaro
4
4.4k
How_to_Test_Server-side_Kotlin.pdf
ntaro
1
590
Other Decks in Programming
See All in Programming
IBM Bob Dojo #1 仕様駆動開発入門
oniak3ibm
PRO
0
300
AGENTS.md Is Not Enough:Build Skills, Don't Download Them
lx_t
0
130
アクセシビリティから考える情報設計
high_g_engineer
0
420
App Intentsのビルドプロセスを支える技術
kntkymt
0
470
SONY CISC-NEWS NWS-1750 + NWB-225 フレームバッファの NetBSD/news68k ドライバ実装 / OSC2026Hiroshima
tsutsui
0
150
モデルのリファクタリングが難しいと思ったら、そもそも複雑だったのはビジネス仕様だった ? / is-the-business-domain-the-real-complexity
hatsu38
0
420
iOS 27でニュースアプリはどう変わる!? 〜日経電子版の新機能対応と、開発事例から〜
lynnswap
7
13k
Workers Cache を知る
syumai
0
310
iOSDCのペンライトを自動制御したい!
akkeylab
0
130
KiroのSpecで「五目並べ」を作ってみる
satoshi256kbyte
1
290
すこし踏み込む CancellationToken
htkym
2
1.4k
難しいけど、読めた。- OSSの入口に立った話。
sts11142
0
130
Featured
See All Featured
How to train your dragon (web standard)
notwaldorf
97
6.8k
How STYLIGHT went responsive
nonsquared
100
6.3k
How to Think Like a Performance Engineer
csswizardry
28
2.8k
Are puppies a ranking factor?
jonoalderson
2
4k
A Soul's Torment
seathinner
8
3.7k
Build your cross-platform service in a week with App Engine
jlugia
234
19k
Technical Leadership for Architectural Decision Making
baasie
3
580
The Mindset for Success: Future Career Progression
greggifford
PRO
0
520
Into the Great Unknown - MozCon
thekraken
41
2.7k
The Illustrated Children's Guide to Kubernetes
chrisshort
51
53k
Leveraging LLMs for student feedback in introductory data science courses - posit::conf(2025)
minecr
1
410
Why Our Code Smells
bkeepers
PRO
340
58k
Transcript
طଘΞϓϦΛ࣌ؒͰ 8FBSରԠ͢Δ ᖒଠ!OHTX@UBSP
ࣗݾհ w ᖒଠ!OHTX@UBSP w ιϑτΣΞΤϯδχΞ w ࣗশ,PUMJOΤόϯδΣϦετ
झຯͰ։ൃͯ͠ΔΞϓϦ ເͱຐ๏ͷͪ࣌ؒ ເͱຐ๏ͷԦࠃͷͪ࣌ؒ ΛνΣοΫ͢ΔΞϓϦͰ͢ɻ ! ɾສμϯϩʔυ ɾฏۉධՁ ɾ௨ʗΟδΣοτରԠ (PPHMF1MBZΑΓ%-Մ IUUQHPPHM0L)OH
8FBSରԠ͠·ͨ͠
طଘΞϓϦΛ࣌ؒͰ 8FBSରԠ͢Δ
طଘΞϓϦΛ࣌ؒͰ 8FBSରԠ͢Δ ͱʹ͔͘ૣ͘ϦϦʔε ڽͬͨػೳޙճ͠
w௨ฤ w8FBSΞϓϦฤ
·ͣ࢝Ίʹ DPNQJMFDPNBOESPJETVQQPSUBQQDPNQBUW DPNQJMFDPNHPPHMFBOESPJEHNTQMBZTFSWJDFT طଘΞϓϦͷCVJMEHSBEMFͰґଘؔΛߋ৽ ͜͜·Ͱ
௨ฤ
௨Կ͠ͳͯ͘ 8FBSʹදࣔ͞ΕΔΑ
ྫ*OCPY4UZMF
ྫ*OCPY4UZMF ଞʹΞΫγϣϯϘλϯ উखʹ8FBSଆʹදࣔ͞ΕΔ
͙͢ʹͰ͖Δ؆୯ͳରԠ w എܠը૾Λઃఆ w ϖʔδΛՃ w ௨ΛελοΫ͢Δ w ରԠ͠ͳ͍
8FBS༻௨ઃఆͷྲྀΕ WearableExtenderΠϯελϯεΛੜ͢Δ WearableExtenderʹରͯ͠ઃఆΛ͢Δ NotificationCompat.Builder#extendͰ WearableExtenderΛηοτ͢Δ NotificationManagerCompatΛͬͯ௨Λ
ൃߦ͢Δ
8FBS༻௨ઃఆͷྲྀΕ WearableExtenderΠϯελϯεΛੜ͢Δ WearableExtenderʹରͯ͠ઃఆΛ͢Δ NotificationCompat.Builder#extendͰ WearableExtenderΛηοτ͢Δ NotificationManagerCompatΛͬͯ௨Λ
ൃߦ͢Δ
എܠը૾ͷઃఆ wearableExtender.setBackground(bitmap); -BSHFU*DPOΛ֦େͨͭ͠ ΦϦδφϧαΠζ
ϖʔδΛՃ wearableExtender! .addPage(notification)! .addPages(notificationList); DPOUFOU5JUMF DPOUFOU5FYU
௨ΛελοΫ͢Δ notificationCompatBuilder! ! .setGroup(“GroupKey”) ͜͜·Ͱ
8FBSΞϓϦฤ
8FBSΞϓϦՃͷྲྀΕ ϓϩδΣΫτʹ8FBSϞδϡʔϧΛՃ͢Δ 8FBSΞϓϦΛ࡞Δ ຊମϞδϡʔϧʹ8FBSϞδϡʔϧΛόϯυϧ͢Δ ઃఆΛՃ͢Δ Ϗϧυͯ͠ຊମͷBQLΛެ։
8FBSϞδϡʔϧՃ 8FBSΞϓϦΛՃ͍ͨ͠ϓϩδΣΫτΛ "OESPJE4UVEJPͰ։͘ 'JMF/FX.PEVMF Οβʔυ͕ग़ΔͷͰ8FBS༻ʹઃఆ͢Δ
None
None
None
CVJMEHSBEMFͷमਖ਼ DPNQJMF4EL7FSTJPO8 DPNQJMF4EL7FSTJPO ͜͜·Ͱ
8FBSΞϓϦΛ࡞Δ w ຊମΞϓϦ͔ΒσʔλΛड͚औΔ w σʔλΛදࣔ͢Δ ϏϡʔΛ࡞Δ
ຊମΞϓϦ͔ΒσʔλΛड͚औΔ w ڞ௨Ͱ͏Ϋϥε܈ΛϞδϡʔϧʹ͚Δ w ྫ͑"UUSBDUJPOΫϥεͳͲ w ϝοηʔδΛΓऔΓ͢Δ
Ϟδϡʔϧ͚ ྫ w BQQϞδϡʔϧిʗλϒϨοτ༻ΞϓϦ w XFBSϞδϡʔϧ8FBS༻ΞϓϦ w DPNNPOϞδϡʔϧڞ௨σʔλɺϩδοΫͳͲ BQQͱXFBSDPNNPOʹґଘ͢Δ ͜͜·Ͱ
ϝοηʔδΛΓऔΓ͢Δ ৽͍ͪ࣌ؒ͠ใΛཁٻ ͪ࣌ؒใΛฦ͢
ϝοηʔδૹ৴"1* Wearable.NodeApi#getConnectedNodes Wearable.MessageApi#sendMessage Ͱଓ͍ͯ͠ΔϊʔυΛऔಘͯ͠ ͰϝοηʔδΛૹ৴͢Δ Wearable.NodeApi.getConnectedNodes(googleApiClient).setResultCallback(! new ResultCallback<NodeApi.GetConnectedNodesResult>() {! @Override!
public void onResult(final NodeApi.GetConnectedNodesResult nodes) {! for (final Node node : nodes.getNodes()) {! Wearable.MessageApi.sendMessage(client, node.getId(), path, data);! }! }! }! );
ϝοηʔδͷड৴ w MessageApi.MessageListenerΠϯλϑΣʔε Λ࣮͢Δ ! w WearableListenerServiceͷαϒΫϥεΛ࡞ͬ ͯΠϯςϯτΛर͏ PS
ϝοηʔδͷ༰CZUFྻ ΦϒδΣΫτΛੜͯ͠CZUFྻʹม ArrayList<Attraction>ˠbyte[] CZUFྻΛड৴ͯ͠ΦϒδΣΫτʹม byte[]ˠArrayList<Attraction> ͜͜·Ͱ
ϝοηʔδ"1*ͷৄࡉ ! IUUQEFWFMPQFSBOESPJEDPNJOUMKBUSBJOJOH XFBSBCMFTEBUBMBZFSJOEFYIUNM
ϏϡʔΛ࡞Δ w WearableListView8FBS༻ϦετϏϡʔ w GridViewPager(SJEͳ7JFX1BHFS w CardFragmentΧʔυܕϑϥάϝϯτ
8FBSBCMF-JTU7JFX w 8FBSBCMF-JTU7JFX"EBQUFS w 8FBSBCMF-JTU7JFX༻Ξμϓλ w 7JFX)PMEFSΛཧͯ͘͠ΕΔͬΆ͍ ˡ8FBSBCMF-JTU7JFX༻
(SJE7JFX1BHFS $BSE'SBHNFOU w ্ԼࠨӈʹεϫΠϓҠಈͰ͖Δϖʔδϟ w $BSE'SBHNFOU؆୯ʹઃஔՄೳ CardFragment.create(“title",! “description",! R.drawable.ic_launcher); 2JJUBʮ8FBS༻7JFXͷ(SJE7JFX1BHFSΛ͏ʯ
IUUQRJJUBDPNOHTX@UBSPJUFNTCBFGB ͜͜·Ͱ
8FBSϞδϡʔϧΛόϯυϧ w BQQϞδϡʔϧిʗλϒϨοτ༻ΞϓϦ w XFBSϞδϡʔϧ8FBS༻ΞϓϦ BQQϞδϡʔϧͷCVJMEHSBEMF dependencies {! ɾɾɾ! wearApp
project(‘:wear')! } ͜͜·Ͱ
Ϗϧυͯ͠ຊମͷBQLΛެ։ w #VJMEˠ(FOFSBUF4JHOFE"1,ʜ w BQQϞδϡʔϧ ຊମϞδϡʔϧ Λબ w BQQSFMFBTFBQLΛిʹΠϯετʔϧ͢Δͱଓ ͍ͯ͠Δ8FBSʹXFBSΞϓϦ͕ࣗಈతʹΠϯε
τʔϧ͞ΕΔ w BQQSFMFBTFBQLΛσϕίϯʹΞοϓͯ͠ެ։ ͜͜·Ͱ
༨ͬͨʂ
ৄ͍͠จݙ w "OESPJE%FWFMPQFST w μϯϩʔυͰ͖Δ"1*ϦϑΝϨϯε w 4%,ಉࠝͷαϯϓϧ IUUQEFWFMPQFSBOESPJEDPNJOUMKBUSBJOJOHCVJMEJOHXFBSBCMFTIUNM IUUQEFWFMPQFSBOESPJEDPNJOUMKBUSBJOJOHXFBSBCMFTBQQTMBZPVUTIUNM6J-JCSBSZ
͝ਗ਼ௌ͋Γ͕ͱ͏͍͟͝·ͨ͠ʂ