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
Sliceのアレコレ
Search
Yuki Mima
May 29, 2018
Technology
170
1
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Sliceのアレコレ
Yuki Mima
May 29, 2018
More Decks by Yuki Mima
See All by Yuki Mima
スタディサプリENGLISHの今と攻めの開発 ~MotionLayout入れてみた~
amyu
0
1.9k
RecyclerViewで 折れ線グラフを作る
amyu
2
450
ビルド時間を1分短くするためにやったこと
amyu
0
840
ミスを少なくする明日からのCustom Lint Rules
amyu
0
2k
Other Decks in Technology
See All in Technology
JavaScript 研修 (2026)
recruitengineers
PRO
0
310
PLaMo 3.0 Primeの構造化出力サポート
pfn
PRO
0
190
トヨタ⽣産⽅式(TPS)⼊⾨
recruitengineers
PRO
1
460
[ChatGPT Work LT]事務作業が苦手な人のための バックオフィスの「半」自動化
chimaki_iot
0
200
Flutterをカメラで動かしたかった話
sony
0
120
制約理論(ToC)入門 2026版
recruitengineers
PRO
5
1.4k
20260807_第6回_関東kaggler会LT_claw系bot xangiと始める、"寂しくない" kaggle
sugupoko
0
110
Service Connect 上のサービスに ECS Service の外側から到達できなかった話
ota1022
1
120
NetBoxを利用した作業効率化の試み_NetDevNight4
tnoha
0
470
【CEDEC2026】専門性の高いデフォルメチームが挑んだ人材育成戦略 〜Cygames Academiaの企画から実施まで〜
cygames
PRO
0
440
Retriever と Reranker、結局どうする?
kazuaki
2
670
20260801_スクフェス大阪
kgnkhkr
1
1.2k
Featured
See All Featured
Designing for Timeless Needs
cassininazir
1
430
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
49
10k
The Art of Delivering Value - GDevCon NA Keynote
reverentgeek
16
2.1k
Building Adaptive Systems
keathley
44
3.2k
Building Better People: How to give real-time feedback that sticks.
wjessup
370
20k
Darren the Foodie - Storyboard
khoart
PRO
3
3.5k
From Legacy to Launchpad: Building Startup-Ready Communities
dugsong
0
290
Measuring & Analyzing Core Web Vitals
bluesmoon
9
950
Fashionably flexible responsive web design (full day workshop)
malarkey
408
67k
Ecommerce SEO: The Keys for Success Now & Beyond - #SERPConf2024
aleyda
1
2.1k
コードの90%をAIが書く世界で何が待っているのか / What awaits us in a world where 90% of the code is written by AI
rkaga
63
45k
JAMstack: Web Apps at Ludicrous Speed - All Things Open 2022
reverentgeek
1
530
Transcript
4MJDFTͷΞϨίϨ (PPHMF*0ࢀՃใࠂձ !BNZV@TBO
"CPVUNF w .JNB:VLJ w !BNZV@TBO w /&95$633&/$: */$ w "OESPJE&OHJOFFS
͋Γ͕ͱ͏Ŋฐࣾ
͋Γ͕ͱ͏Ŋฐࣾ
None
"HFOEB w (PPHMF*0ͷײͱݟ w 4MJDFTͷ w ·ͱΊ
(PPHMF*0ͷݟ w ։࠵ͷલલೖΓ͕ྑͦ͞͏ w ࣌ࠩϘέ·͡ਏ͍ w ૣΊͷ#BEHF1JDLVQͰΑΓྑ͍੮Ͱ,FZOPUFΛݟΕΔ w ௨ͷγϟτϧόε͕ग़Δϗςϧ͕Α͍ w
IUUQTXXXDPVOUSZJOOTDPN w #BEHF1JDLVQͷ࣌ؒޕલ࣌͘Β͍͕ྑͦ͞͏ w ன൧͕ޱʹ߹Θͳ͍ w 6CFS࠷ߴ
(PPHMF*0ͷײ w ·ͨདྷߦ͖͍ͨ
4MJDFTͷ
͜͜ͷ෦
None
࡞ͬͯΈͨ
None
PO#JOE4MJDF 4MJDF1SPWJEFS GFUDI"1* 4FSWJDF TUBSU4FSWJDF DPOUFOU3FTPMWFSOPUJGZ$IBOHF VSJ
class CryptoSliceProvider : SliceProvider() { private val path = "/crypto"
override fun onCreateSliceProvider(): Boolean = true override fun onBindSlice(sliceUri: Uri): Slice? = when (sliceUri.path) { path -> { context.startService(Intent(context, CryptoService::class.java)) createCryptoSlice(sliceUri) } else -> null } private fun createCryptoSlice(sliceUri: Uri): Slice? = ListBuilder(context, sliceUri, ListBuilder.INFINITY) .addGridRow { it.apply { addCell { it.apply { addImage(IconCompat.createWithResource(context, R.drawable.ic_bitcoin), SMALL_IMAGE) addTitleText("Bitcoin") addText(CryptoService.bitcoin, true) } } ... } } .build() }
class CryptoSliceProvider : SliceProvider() { private val path = "/crypto"
override fun onCreateSliceProvider(): Boolean = true override fun onBindSlice(sliceUri: Uri): Slice? = when (sliceUri.path) { path -> { context.startService(Intent(context, CryptoService::class.java)) createCryptoSlice(sliceUri) } else -> null } private fun createCryptoSlice(sliceUri: Uri): Slice? = ListBuilder(context, sliceUri, ListBuilder.INFINITY) .addGridRow { it.apply { addCell { it.apply { addImage(IconCompat.createWithResource(context, R.drawable.ic_bitcoin), SMALL_IMAGE) addTitleText("Bitcoin") addText(CryptoService.bitcoin, true) } } ... } } .build() }
class CryptoSliceProvider : SliceProvider() { private val path = "/crypto"
override fun onCreateSliceProvider(): Boolean = true override fun onBindSlice(sliceUri: Uri): Slice? = when (sliceUri.path) { path -> { context.startService(Intent(context, CryptoService::class.java)) createCryptoSlice(sliceUri) } else -> null } private fun createCryptoSlice(sliceUri: Uri): Slice? = ListBuilder(context, sliceUri, ListBuilder.INFINITY) .addGridRow { it.apply { addCell { it.apply { addImage(IconCompat.createWithResource(context, R.drawable.ic_bitcoin), SMALL_IMAGE) addTitleText("Bitcoin") addText(CryptoService.bitcoin, true) } } ... } } .build() }
class CryptoSliceProvider : SliceProvider() { private val path = "/crypto"
override fun onCreateSliceProvider(): Boolean = true override fun onBindSlice(sliceUri: Uri): Slice? = when (sliceUri.path) { path -> { context.startService(Intent(context, CryptoService::class.java)) createCryptoSlice(sliceUri) } else -> null } private fun createCryptoSlice(sliceUri: Uri): Slice? = ListBuilder(context, sliceUri, ListBuilder.INFINITY) .addGridRow { it.apply { addCell { it.apply { addImage(…) addTitleText("Bitcoin") addText(CryptoService.bitcoin, true) } } ... } } .build() }
class CryptoSliceProvider : SliceProvider() { private val path = "/crypto"
override fun onCreateSliceProvider(): Boolean = true override fun onBindSlice(sliceUri: Uri): Slice? = when (sliceUri.path) { path -> { context.startService(Intent(context, CryptoService::class.java)) createCryptoSlice(sliceUri) } else -> null } private fun createCryptoSlice(sliceUri: Uri): Slice? = ListBuilder(context, sliceUri, ListBuilder.INFINITY) .addGridRow { it.apply { addCell { it.apply { addImage(…) addTitleText("Bitcoin") addText(CryptoService.bitcoin, true) } } ... } } .build() }
class CryptoService : Service() { companion object { var bitcoin:
String? = null ... } override fun onBind(p0: Intent?): IBinder? = null override fun onStartCommand(intent: Intent?, flags: Int, startId: Int): Int = START_NOT_STICKY.also { _ -> apiClient.getCryptoList() .doOnFinish { stopSelf() } .subscribe({ bitcoin = "ˇ${it.toNumberformat()}" ... applicationContext.contentResolver.notifyChange(uri, null) }, { }) } }
class CryptoService : Service() { companion object { var bitcoin:
String? = null ... } override fun onBind(p0: Intent?): IBinder? = null override fun onStartCommand(intent: Intent?, flags: Int, startId: Int): Int = START_NOT_STICKY.also { _ -> apiClient.getCryptoList() .doOnFinish { stopSelf() } .subscribe({ bitcoin = "ˇ${it.toNumberformat()}" applicationContext.contentResolver.notifyChange(uri, null) }, { }) } }
class CryptoService : Service() { companion object { var bitcoin:
String? = null ... } override fun onBind(p0: Intent?): IBinder? = null override fun onStartCommand(intent: Intent?, flags: Int, startId: Int): Int = START_NOT_STICKY.also { _ -> apiClient.getCryptoList() .doFinally { stopSelf() } .subscribe({ bitcoin = "ˇ${it.toNumberformat()}" ... applicationContext.contentResolver.notifyChange(uri, null) }, { }) } }
None
ͱͬͯ؆୯ͩͶ
None
·ͱΊ
w IUUQTUFDICMPHQJDBQQJODKQHPPHMFJ P&"&&#& #&"&#&# "&$&"&'TMJD FT&"&&"#EFCC
·ͨདྷߦ͔ͤͯ͘ ͍ͩ͞