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
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
1000⼈規模のClaude Enterprise運⽤を「Oktaのグループ」と「Slack」に集約する
sansantech
PRO
1
500
会計事務所と顧問先の契約関係をOIDC・OAuthで表現する
terara
0
500
internal/testlog で遊ぼう
rokuosan
0
340
名刺メーカーDevグループ 紹介資料
sansan33
PRO
0
1.2k
hookで自作する Claude Code の「実況ボード」
shinyasaita
2
230
最新技術に積極チャレンジ!EKS共通基盤のこれまでとこれから
daitak
0
250
tamachi.goを支える技術
rymiyamoto
0
110
Claude Codeの体系的な理解と知識のフック
oikon48
8
6k
IHV like なユースケースへのOpenID Connect 関連仕様の適用事例
optim
0
360
AWSとAzureのマルチクラウド活用における強い味方___AWS_Kiroを使った二刀流スキル作成.pdf
duelist2020jp
1
140
LLMアプリ、 雰囲気で運用してませんか? 〜LLMOpsの現在地〜
taka_aki
1
560
atproto spaces概要
yamarten
0
110
Featured
See All Featured
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
31
2.9k
A Tale of Four Properties
chriscoyier
163
24k
Paper Plane
katiecoart
PRO
2
53k
Between Models and Reality
mayunak
4
410
Deep Space Network (abreviated)
tonyrice
0
270
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
254
22k
The MySQL Ecosystem @ GitHub 2015
samlambert
251
13k
Noah Learner - AI + Me: how we built a GSC Bulk Export data pipeline
techseoconnect
PRO
0
400
Building the Perfect Custom Keyboard
takai
2
850
Ethics towards AI in product and experience design
skipperchong
2
350
Stop Working from a Prison Cell
hatefulcrawdad
274
21k
How To Speak Unicorn (iThemes Webinar)
marktimemedia
1
560
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Ͱ෮׆ͯ͘͠ΕཔΉ