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
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
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
430
新規事業の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
700
Android Things Now
shanonim
1
670
Kotlin初心者向けハンズオン #3 / Kotlin Hands-on for Beginners
shanonim
2
380
UI模写のすゝめ / Encouragement of UI drawing
shanonim
3
2.5k
食卓を支える技術 ~Oisixのアプリ開発~ / App Development in Oisix
shanonim
0
1.5k
Other Decks in Technology
See All in Technology
サイバー捜査員研修(前半)
nomizone
1
1.9k
AI時代の強いチームの作り方
yuukiyo
26
16k
ボトムアップ文化が強い組織で セキュリティをどう根付かせていくかの現在進行形の話 / Making Security Stick in a Bottom-Up Organization
yamaguchitk333
0
210
【CEDEC2026】グラフィックスエンジニアのためのニューラルシェーディング入門
cygames
PRO
0
130
SmartHR Engineering Team Deck
smarthr
1
1.5k
新しい SLO が良い感じにハマっている話
z63d
5
2.2k
Issue設計から始める仕様駆動開発 / 20260731 Mizuki Hirata
shift_evolve
PRO
1
150
【CEDEC2026】ゲームシナリオライターを支援するAIツール開発の実践 ― 設計とプロンプトの工夫 ―
cygames
PRO
1
770
【CEDEC2026】次世代デジタルカードゲームのサーバー設計と運用 〜『Shadowverse: Worlds Beyond』の舞台裏~
cygames
PRO
1
980
ブラウザ研修 2026
recruitengineers
PRO
5
800
事業価値と Engineering 2026年度版
recruitengineers
PRO
45
22k
DatadogのBits Chatが開発組織にもたらしたもの / What Bits Chat Has Brought Us
sms_tech
1
130
Featured
See All Featured
Fireside Chat
paigeccino
42
4k
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
37
6.5k
Between Models and Reality
mayunak
4
390
From Legacy to Launchpad: Building Startup-Ready Communities
dugsong
0
290
Redefining SEO in the New Era of Traffic Generation
szymonslowik
1
380
The Impact of AI in SEO - AI Overviews June 2024 Edition
aleyda
5
1.2k
Pawsitive SEO: Lessons from My Dog (and Many Mistakes) on Thriving as a Consultant in the Age of AI
davidcarrasco
0
210
Understanding Cognitive Biases in Performance Measurement
bluesmoon
32
3k
GraphQLとの向き合い方2022年版
quramy
50
15k
Collaborative Software Design: How to facilitate domain modelling decisions
baasie
1
270
AI in Enterprises - Java and Open Source to the Rescue
ivargrimstad
0
1.4k
Joys of Absence: A Defence of Solitary Play
codingconduct
1
430
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Ͱ෮׆ͯ͘͠ΕཔΉ