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
Play with Android Things
Search
shanonim
February 18, 2019
Technology
6.4k
1
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Play with Android Things
2019.02.18
Cookpad.apk #2
https://cookpad.connpass.com/event/117054/
shanonim
February 18, 2019
More Decks by shanonim
See All by shanonim
実践 Glass EE2 向けアプリ開発 / Practical Glass EE2 app development
shanonim
0
330
What's "Material You"
shanonim
0
420
新規事業のIoTプロダクトをプロトタイピングする技術 / IoT product prototyping in cookpad mart
shanonim
0
280
IoTで美味しい漬け物を作りたい v2 / make good pickles with IoT v2
shanonim
1
520
アルコールモニタリングIoT / Alcohol monitoring IoT
shanonim
0
690
Android Things Now
shanonim
1
670
Kotlin初心者向けハンズオン #3 / Kotlin Hands-on for Beginners
shanonim
2
380
UI模写のすゝめ / Encouragement of UI drawing
shanonim
3
2.4k
食卓を支える技術 ~Oisixのアプリ開発~ / App Development in Oisix
shanonim
0
1.5k
Other Decks in Technology
See All in Technology
「軸足」は 固定しなくていい - 熱量と強みで描く、しなやかなキャリアの形
kakehashi
PRO
1
260
螺旋型キャリアの生存戦略 / kinoko-conf2026
rakus_dev
1
940
技術・能力を向上する原理原則 #きのこセッションa #きのこ2026
bash0c7
0
120
【Snowflake Summit 2026 Recap!!】Snowflake Summit Deep Dive: Security & Governance
civitaspo
1
310
自分が詳しくない領域でAIを使う #プロヒス2026
konifar
20
7.4k
AWS Security Agent といっしょに脅威モデリングをやってみよう
amarelo_n24
1
210
千葉での単身赴任からAWSをやり続け、千葉に戻ってきた話
yama3133
1
120
從開發到部署全都交給 AI:實作 AI 驅動的自動化流程
appleboy
0
160
【セミナー資料】Claude Code をセキュアに使うための考え方と設定の勘どころ / Claude Code Webinar 20260616
masahirokawahara
2
460
[AWS Summit Japan 2026]迷っているあなたへ_小さな一歩が、やがて自分を助けてくれる
sh_fk2
2
400
データレイクの「見えない問題」を可視化する
sansantech
PRO
1
200
アジャイルな経理と Claude Code と経営の未来
kawaguti
PRO
3
190
Featured
See All Featured
Max Prin - Stacking Signals: How International SEO Comes Together (And Falls Apart)
techseoconnect
PRO
0
190
Measuring & Analyzing Core Web Vitals
bluesmoon
9
870
How People are Using Generative and Agentic AI to Supercharge Their Products, Projects, Services and Value Streams Today
helenjbeal
1
220
AI Search: Implications for SEO and How to Move Forward - #ShenzhenSEOConference
aleyda
1
1.3k
We Have a Design System, Now What?
morganepeng
55
8.2k
The B2B funnel & how to create a winning content strategy
katarinadahlin
PRO
1
400
How to Ace a Technical Interview
jacobian
281
24k
GraphQLとの向き合い方2022年版
quramy
50
15k
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
508
140k
Public Speaking Without Barfing On Your Shoes - THAT 2023
reverentgeek
1
430
4 Signs Your Business is Dying
shpigford
187
22k
Java REST API Framework Comparison - PWX 2021
mraible
34
9.4k
Transcript
"OESPJE5IJOHT0WFSWJFX $PPLQBEBQL !TIBOPOJN
ΫοΫύουגࣜձࣾങࣄۀ෦ ࣰݪ߂ޫ !TIBOPOJN "OESPJEJ04*P51SPUPUZQJOH
None
ϚΠίϯ .4UBDL Ͱ*P5ϓϩτλΠϐϯάΛͨ͠Γ͍ͯ͠·͢
w ʹ(PPHMF͕ϦϦʔεͨ͠*P5ػث͚ͷϓϥοτϑΥʔϜ w 3BTQCFSSZ1JͷϛχίϯϐϡʔλͰ"OESPJE͕ಈ͘ w ௨ৗͷ"OESPJEΞϓϦͱ΄΅มΘΒͳ͍։ൃମݧ w ΈࠐΈͷΞϓϦέʔγϣϯΛର w ֤छηϯαʔΛࣗ༝ʹ͑Δ
w Ϟμϯͳٕज़Λαϙʔτ w FHσʔλੳʹ'JSFCBTF($1Λ͏
w ϦϦʔε w ݄WFSTJPOϦϦʔε w ݄$MPVE*P5$PSFϥΠϒϥϦϦϦʔε
None
(JWFOUIFTVDDFTTFTXFIBWFTFFOXJUIPVS QBSUOFSTJOTNBSUTQFBLFSTBOETNBSUEJTQMBZT XFBSFSFGPDVTJOH"OESPJE5IJOHTBTB QMBUGPSNGPS0&.QBSUOFSTUPCVJMEEFWJDFTJO UIPTFDBUFHPSJFTNPWJOHGPSXBSE
None
None
None
None
EFWFMPQFSTDBODSFBUFOFXCVJMET BOEQVTIBQQVQEBUFTGPSVQUP EFWJDFTGPSOPODPNNFSDJBMVTF
1SPEVDUJPOಋೖͷເ͕ઈͨΕͨࠓɺ "OESPJE5IJOHTͷ͍Έͪ ύʔιφϧϢʔε͔͠ͳ͍
ઌि·Ͱͷ"OESPJE5IJOHT
ϋʔυΣΞ 1SPEVDUJPOQMBUGPSNT %FWFMPQNFOUQMBUGPSNT
1SPEVDUJPOQMBUGPSNT %FWFMPQNFOUQMBUGPSNT ϓϩτλΠϐϯά։ൃ ݕূ 1SPEVDUJPO4P.TBSFDFSUJpFE CZ(PPHMFUPNFFUUIFTFDVSJUZSFRVJSFNFOUT %FQMPZ 05"0WFS5IF"JS
ϋʔυΣΞ (2019.2.12 ~) 1SPEVDUJPOQMBUGPSNT %FWFMPQNFOUQMBUGPSNT XJMMOPUCFNBEFBWBJMBCMFUISPVHIUIFQVCMJDEFWFMPQFSQMBUGPSN
w 1SPEVDUJPOQMBUGPSNTͷσόΠε͕͑ͳ͘ͳ͚ͬͨͩ w %FWFMPQNFOUQMBUGPSNTͷσόΠεϥζύΠͱ/911JDPͷαϙʔτੜ͖͍ͯΔʂ ϙΠϯτ
NBLFTPNFUIJOH
"OESPJE5IJOHT0WFSWJFX $PPLQBEBQL !TIBOPOJN
1MBZXJUI"OESPJE5IJOHT $PPLQBEBQL !TIBOPOJN
/911JDPJ.9%͘ΜΛ͍·͢
w (PPHMF*0Ͱ͞Εͨ4UBSUFS,JUʹೖ͍ͬͯΔ։ൃϘʔυ w "OESPJE5IJOHT4UBSUFS,JU։෧ͷّIUUQTIBOPOJNIBUFOBCMPHDPNFOUSZ /911JDPJ.9%
"OESPJE5IJOHTͰԹௐཧثΛ࡞Δ
Թௐཧ w ਅۭௐཧ๏ w ʮম͘ʯʮৠ͢ʯʮࣽΔʯʹ͙࣍ɺୈ࢛ͷௐཧ๏ͱݺΕΔɻ w ੜ͋Δ͍ম͖Λ͚ͭΔͳͲͷԼॲཧΛࢪͨ͠৯ࡐͱௐຯӷΛϑΟϧϜାʹೖΕͯਅۭີ෧ ͠ɺ55ʢUFNQFSBUVSFUJNFʣཧͷग़དྷΔௐཧثͰࡐྉʹԠͨ࣌ؒ͡ͱԹઃఆΛͯ͠ௐཧ͞ ΕΔɻ w
ਅۭύοΫதͰௐཧɺௐຯ͕ߦΘΕΔͨΊࡐྉͷ෩ຯࢫຯΛಀͣ͞ۉҰʹௐཧ͢Δ͜ͱ͕Մ ೳͰ͋Δɻ 8JLJQFEJBΑΓ
࣮ͨ͠Թௐཧث w ࢢൢͷεϩʔΫοΧʔͷిݯΛίϯτϩʔϧͯ͠ɺৗʹҰఆͷԹଳΛอͭ w εϩʔΫοΧʔʹԹηϯαʔΛ࣮ w Թ͕ࢦఆͨ͠ԹΛ͑ͨΒˠεϩʔΫοΧʔͷిݯΛΔʢԹ͕Լ͕Δʣ w ٯʹԹ͕Լ͕Γ͗ͨ͢ΒˠεϩʔΫοΧʔͷిݯΛೖΕΔʢԹ͕࠶্ঢ͢Δʣ
/911JDPJ.9% (SPWF#BSPNFUFS4FOTPS #.1 εϩʔΫοΧʔ ܲ εϚʔτϓϥά )4 UFNQFSBUVSF 8FCIPPL TFOE0/0''FWFOU
None
None
ιϑτΣΞ TVQQPSUFECZ"OESPJE04 w ։ൃڥ w "OESPJE4UVEJP w *OUFMMJ+*%&" w ݴޠ
w +BWB w ,PUMJO
ηϯαʔ͔ΒσʔλΛऔಘ class MainActivity : Activity(), SensorEventListener { companion object {
private val TAG = MainActivity::class.java.simpleName } private val temperatureSensorDriver: Bmx280SensorDriver by lazy { Bmx280SensorDriver("I2C1") } private val sensorManager: SensorManager by lazy { getSystemService(Context.SENSOR_SERVICE) as SensorManager } private val dynamicSensorCallback = object : DynamicSensorCallback() { override fun onDynamicSensorConnected(sensor: Sensor) { if (sensor.type == Sensor.TYPE_AMBIENT_TEMPERATURE) { Log.i(TAG, "Temperature sensor connected") sensorManager.registerListener(this@MainActivity, sensor, SensorManager.SENSOR_DELAY_NORMAL) } } } override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) sensorManager.registerDynamicSensorCallback(dynamicSensorCallback) temperatureSensorDriver.registerTemperatureSensor() } override fun onDestroy() { super.onDestroy() sensorManager.unregisterDynamicSensorCallback(dynamicSensorCallback) sensorManager.unregisterListener(this) temperatureSensorDriver.run { unregisterTemperatureSensor() close() } } override fun onSensorChanged(event: SensorEvent) { // event.values[0] } override fun onAccuracyChanged(sensor: Sensor, accuracy: Int) { Log.i(TAG, "sensor accuracy changed: $accuracy") } }
⚡εϚʔτϓϥά w 51-JOL)4 w 8J'Jଂ w *'555࿈ܞ w XFCIPPLୟ͚ͩ͘Ͱ0/0''੍ޚͰ͖Δ
·ͱΊ w OPODPNNFSDJBMVTFPOMZͰ͋Δ͕ɺ"OESPJEΤϯδχΞʹͱͬͯ։ൃ͍͢͠ϓϥοτϑΥʔ ϜʹมΘΒͳ͍ w Πν͔ΒΈࠐΈษڧ͢ΔΑΓϋʔυϧ͍ʢͱࢥ͏ʣ w 8FCͱͷ࿈ܞָ͕ͩͬͨΓɺN#BB4Λ؆୯ʹ͑ΔͷͰɺͪΌΜͱͨ͠*P5αʔϏε͕؆୯ʹ ࡞ΕΔ w
*0Ͱ෮׆ͯ͘͠ΕཔΉ