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
830
ミスを少なくする明日からのCustom Lint Rules
amyu
0
2k
Other Decks in Technology
See All in Technology
ボーイスカウトルールでメモリやスキルを改善しよう
azukiazusa1
2
1k
KiCAD講習会②
tutcreators
0
110
はじめてのWDM
miyukichi_ospf
1
140
Road to SRE NEXTの今までとこれから
hiroyaonoe
0
310
ADDF - ループエンジニアリングするフレームワークを作ったら/I Didn't Set Out to Build Loop Engineering, But ADDF Did
fruitriin
0
120
Mastraエージェント、どのクラウドにデプロイする?
minorun365
PRO
2
180
「早く出す」より「事業に効く」 ── 顧客の業務サイクルから逆算するAI時代の二重ループ開発と「変化の設計者」 / devsumi2026
rakus_dev
1
240
インフラ寄りSREでも 開発に踏み出せる〜境界を越えてユーザー体験に向き合いたい〜
sansantech
PRO
2
3.8k
証券システムを10年Scalaで作り続けるということ - 関数型まつり2026
krrrr38
3
840
人を動かすのは時間ではなく、納得感 〜新任EMが入社3ヶ月、組織を2回変えた話〜
kakehashi
PRO
3
220
技術イベント終了後、運営の 事後タスクは丁寧に (心がけています)/ #tamagawadev
nishiuma
1
100
Making sense of Google’s agentic dev tools
glaforge
1
200
Featured
See All Featured
First, design no harm
axbom
PRO
2
1.2k
The Illustrated Children's Guide to Kubernetes
chrisshort
51
53k
Raft: Consensus for Rubyists
vanstee
141
7.6k
A designer walks into a library…
pauljervisheath
211
24k
Future Trends and Review - Lecture 12 - Web Technologies (1019888BNR)
signer
PRO
0
3.6k
Discover your Explorer Soul
emna__ayadi
2
1.2k
GraphQLとの向き合い方2022年版
quramy
50
15k
Building Experiences: Design Systems, User Experience, and Full Site Editing
marktimemedia
0
550
Sharpening the Axe: The Primacy of Toolmaking
bcantrill
46
2.9k
The untapped power of vector embeddings
frankvandijk
2
1.8k
Making the Leap to Tech Lead
cromwellryan
135
10k
Self-Hosted WebAssembly Runtime for Runtime-Neutral Checkpoint/Restore in Edge–Cloud Continuum
chikuwait
0
650
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
·ͨདྷߦ͔ͤͯ͘ ͍ͩ͞