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
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
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
ラジオの科学
frievea
0
300
Cursor Meetup Sapporo - Cursor物語 続編
cocacola917
0
150
Contract One Engineering Unit 紹介資料
sansan33
PRO
0
19k
生成 AI の基礎 〜 サンプル実装で学ぶ基本原理
enakai00
7
4.4k
サイバー捜査員研修(後半)
nomizone
1
850
【CEDEC2026】次世代デジタルカードゲームのサーバー設計と運用 〜『Shadowverse: Worlds Beyond』の舞台裏~
cygames
PRO
1
1.2k
今こそ聞きたいソフトウェア設計 ドメイン駆動設計再入門
masuda220
PRO
17
7.1k
【5分でわかる】セーフィー エンジニア向け会社紹介
safie_recruit
0
53k
制約理論(ToC)入門 2026版
recruitengineers
PRO
8
2.2k
取引先から届く 「セキュリティチェックシート」の読み解き方
kamadamakoto
0
140
[しろおび夏祭り2026] チャットするAIから、作業するAIへ - 使われ方の変化と、その裏側で起きていること
kk0n
0
1.7k
私がブラウザを自作したくなった理由
supurazako
0
150
Featured
See All Featured
Rails Girls Zürich Keynote
gr2m
96
14k
JAMstack: Web Apps at Ludicrous Speed - All Things Open 2022
reverentgeek
1
550
We Have a Design System, Now What?
morganepeng
55
8.3k
Design of three-dimensional binary manipulators for pick-and-place task avoiding obstacles (IECON2024)
konakalab
0
530
Embracing the Ebb and Flow
colly
88
5.1k
Leo the Paperboy
mayatellez
8
2.1k
Designing for humans not robots
tammielis
254
26k
Measuring Dark Social's Impact On Conversion and Attribution
stephenakadiri
2
250
How To Speak Unicorn (iThemes Webinar)
marktimemedia
1
520
The Cult of Friendly URLs
andyhume
79
7k
A Guide to Academic Writing Using Generative AI - A Workshop
ks91
PRO
1
370
New Earth Scene 8
popppiees
3
2.5k
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
·ͨདྷߦ͔ͤͯ͘ ͍ͩ͞