Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
iQONのWear Notification最適化
Search
Yoichi Nishimura
August 28, 2014
Technology
2
440
iQONのWear Notification最適化
2014年8月28日にグーグル株式会社で行われた「Android Wear Bootcamp」で登壇した際のスライド
Yoichi Nishimura
August 28, 2014
Tweet
Share
More Decks by Yoichi Nishimura
See All by Yoichi Nishimura
Material Designの作り方 〜Bottom Sheets編〜
nissiy
1
690
はじめてのKenBurnsEffect
nissiy
1
1.4k
iQON Engineer Seminar - Android
nissiy
0
4.1k
Other Decks in Technology
See All in Technology
【新卒研修資料】LLM・生成AI研修 / Large Language Model・Generative AI
brainpadpr
24
17k
生成AIを活用したZennの取り組み事例
ryosukeigarashi
0
200
SREとソフトウェア開発者の合同チームはどのようにS3のコストを削減したか?
muziyoshiz
1
100
生成AIで「お客様の声」を ストーリーに変える 新潮流「Generative ETL」
ishikawa_satoru
1
320
GC25 Recap+: Advancing Go Garbage Collection with Green Tea
logica0419
1
410
Trust as Infrastructure
bcantrill
0
340
動画データのポテンシャルを引き出す! Databricks と AI活用への奮闘記(現在進行形)
databricksjapan
0
150
定期的な価値提供だけじゃない、スクラムが導くチームの共創化 / 20251004 Naoki Takahashi
shift_evolve
PRO
3
310
Large Vision Language Modelを用いた 文書画像データ化作業自動化の検証、運用 / shibuya_AI
sansan_randd
0
110
いま注目しているデータエンジニアリングの論点
ikkimiyazaki
0
600
Why Governance Matters: The Key to Reducing Risk Without Slowing Down
sarahjwells
0
110
「Verify with Wallet API」を アプリに導入するために
hinakko
1
240
Featured
See All Featured
Rebuilding a faster, lazier Slack
samanthasiow
84
9.2k
Writing Fast Ruby
sferik
629
62k
YesSQL, Process and Tooling at Scale
rocio
173
14k
Measuring & Analyzing Core Web Vitals
bluesmoon
9
610
Producing Creativity
orderedlist
PRO
347
40k
Building Flexible Design Systems
yeseniaperezcruz
329
39k
XXLCSS - How to scale CSS and keep your sanity
sugarenia
248
1.3M
Product Roadmaps are Hard
iamctodd
PRO
54
11k
Why Our Code Smells
bkeepers
PRO
339
57k
Speed Design
sergeychernyshev
32
1.1k
Performance Is Good for Brains [We Love Speed 2024]
tammyeverts
12
1.2k
Connecting the Dots Between Site Speed, User Experience & Your Business [WebExpo 2025]
tammyeverts
9
580
Transcript
8FBS/PUJpDBUJPO࠷దԽ גࣜձࣾ7"4*-: ଜ༸Ұ
ࣗݾհ w ଜ༸Ұ w גࣜձࣾ7"4*-:ʢϰΝγϦʔʣ ΤϯδχΞ w ϑΝογϣϯΞϓϦʰJ20/ʱ։ൃऀ w "OESPJE%FWFMPQFSྺ
ϲ݄
ͱʁ
ϑΝογϣϯΞϓϦJ20/ w ঁੑ͚ϑΝογϣϯΞϓϦ w ձһສਓ ݄ݱࡏ ϊϯϓϩϞʔγϣϯͰ͜͜·Ͱདྷ·ͨ͠
None
J20/"OESPJE w ࠃͷJ04γΣΞ૿ʹٯΒͬͯٸத w 1MBZ4UPSFͷϨϏϡʔ ݄ݱࡏ
J20/"OESPJE w ্ظϕετΞϓϦʹબΕ·ͨ͠ʂ
"OESPJEϑΝʔετ ޭͨ͠ࢪࡦ
"OESPJEϑΝʔετ ࣦഊͨ͠ࢪࡦ ✕ J04࣮͠ͳ͍ ؤுͬͯޮՌ͕ग़ͳ͍ࢪࡦ ༰ࣻͳ͘আ
"OESPJEϑΝʔετ w "OESPJEϩʔϧόοΫ͕༰қʂ άϩʔεϋοΫʹ࠷ߴͷϓϥοτϑΥʔϜ w "OESPJEϑΝʔετΛ࣮ફ͢ΔͱJ04Ͱޮతͳ։ ൃ͕Ͱ͖·͢ ͨͪJ04༷͕ؾ࣋ͪΑ͘։ൃͰ͖ΔͨΊʹؤுΔ
None
"OESPJE8FBSରԠ͠·ͨ͠ w ͱ͍ͬͯ /PUJpDBUJPOͷ࠷దԽͷΈ w গ͠ͷมߋͰάοͱมΘΓ·͢ ͦΜͳʹ͔͔Βͳ͍Ͱ͢ w ˎTVQQPSUW ͕ඞཁ
#FGPSF
ݱঢ়ͷ/PUJpDBUJPOΛѲ w J20/"OESPJEͰ छྨͷ/PUJpDBUJPO͕ଘࡏ w ֤/PUJpDBUJPOʹඞͣ ը૾͕ඥ͍͍ͯΔ ˠഎܠؔ࿈ը૾ʹ͠Α͏ʂ
NotificationCompat.BigPictureStyle bigPictureStyle = new NotificationCompat.BigPictureStyle() .bigPicture(backgroundImage) .setBigContentTitle("iQON͔Βͷ͓Βͤ") .setSummaryText(message); ! NotificationManagerCompat
notificationManager = NotificationManagerCompat.from(getApplicationContext()); Notification notification = new NotificationCompat.Builder(getApplicationContext()) .setSmallIcon(R.drawable.icon) .setDefaults(Notification.DEFAULT_SOUND) .setContentTitle("iQON͔Βͷ͓Βͤ") .setContentText(message) .setContentIntent(contentIntent) .setStyle(bigPictureStyle) .setAutoCancel(true) .build(); notificationManager.notify(1, notification); എܠͷ࠷దԽͦͷ w #JH1JDUVSF4UZMFΛઃఆ͢Δ
എܠͷ࠷దԽͦͷ w 8FBSʹഎܠ͕ઃఆ͞Ε͚ͨͲ #JH1JDUVSF4UZMFʹઃఆͨ͠ͷͰεϚϗʹը૾
എܠͷ࠷దԽͦͷ w 8FBS͚ͩʹӨڹΛग़͍ͨ͠߹ 8FBSBCMF&YUFOEFSΛͬͯഎܠΛઃఆ NotificationCompat.WearableExtender wearableExtender = new NotificationCompat.WearableExtender(); if
(backgroundImage != null) { wearableExtender.setBackground(backgroundImage); } ! Notification notification = new NotificationCompat.Builder(getApplicationContext()) .setSmallIcon(R.drawable.icon) .setDefaults(Notification.DEFAULT_SOUND) .setContentTitle(“iQON͔Βͷ͓Βͤ“) .setContentText(message) .setContentIntent(contentIntent) .setAutoCancel(true) .extend(wearableExtender) .build();
എܠͷ࠷దԽͦͷ w 8FBSͷΈʹഎܠ͕ઃఆ͞Εͨ
λΠτϧͷ࠷దԽ w λΠτϧ͕ͯ͘೦ͳܗʹͳ͍ͬͯΔͷͰ ΞϓϦ໊ͷΈʹมߋ #FGPSF
ϏϑΥʔΞϑλʔ #FGPSF "GUFS
RemoteInput remoteInput = new RemoteInput.Builder("VOICE_SEARCH_DISCOUNT_ITEM") .setLabel("ηʔϧΞΠςϜΛݕࡧ") .build(); ! NotificationCompat.Action action
= new NotificationCompat.Action.Builder( R.drawable.ic_big_search, “ηʔϧΞΠςϜΛݕࡧ”, contentIntent) .addRemoteInput(remoteInput) .build(); ! wearableExtender.addAction(action); ΧʔυͷՃͱԻೖྗ w 3FNPUF*OQVUͰԻೖྗΛѻ͏͜ͱ͕Ͱ͖ͯɺ BEE"DUJPOͰΧʔυͷՃΛߦ͏͜ͱ͕Ͱ͖Δ
ΧʔυͷՃͱԻೖྗ
J20/ͷ8FBS։ൃͷల w ʹ"OESPJE8FBS"QQΛϦϦʔε͠·͢ʢ͍ͨ͠ʣ w ఆ͍ͯ͠ΔϢʔεέʔεۭ͖࣌ؒͰͷμϥݟ ίʔσΛଟ͘ݟͤΔΈΛఏڙ 'BODZΑΓ
J20/"OESPJEͷల w ͔ΒλϒϨοτϑΝʔετͷ։ൃʹγϑτ ͦͯ͠ւ֎ల։ w λϒϨοτத৺ͰΞϓϦΛ࠶ઃܭ εϚʔτϑΥϯɺ8FBSBCMFͷ00ڧԽ
·ͱΊ w "OESPJE8FBSରԠ͢ΔͳΒɺ·ͣ/PUJpDBUJPO Λ࠷దԽ গ͠ͷվमͰѹతʹྑ͘ͳΓ·͢ w ͦͷޙʹ8FBSΞϓϦ
͝੩ௌ͋Γ͕ͱ͏͍͟͝·ͨ͠