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
UI Component Catalog for Android
Search
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
kazutoyo
March 27, 2019
Programming
830
2
Share
UI Component Catalog for Android
AndroidでUI Componentの一覧を表示をする
kazutoyo
March 27, 2019
Other Decks in Programming
See All in Programming
アクセシビリティ試験の"その後"を仕組み化する
yuuumiravy
1
180
Programming with a DJ Controller — not vibe coding
m_seki
3
620
ドメインイベントでビジネスロジックを解きほぐす #phpcon_odawara
kajitack
3
830
PicoRuby for IoT: Connecting to the Cloud with MQTT
yuuu
2
700
書き換えて学ぶTemporal #fukts
pirosikick
1
230
CDK Deployのための ”反響定位”
watany
5
900
Claude CodeでETLジョブ実行テストを自動化してみた
yoshikikasama
0
1k
iOS機能開発のAI環境と起きた変化
ryunakayama
0
190
PCOVから学ぶコードカバレッジ #phpcon_odawara
o0h
PRO
0
280
Offline should be the norm: building local-first apps with CRDTs & Kotlin Multiplatform
renaudmathieu
0
230
Agentic Elixir
whatyouhide
0
420
ハーネスエンジニアリングにどう向き合うか 〜ルールファイルを超えて開発プロセスを設計する〜 / How to approach harness engineering
rkaga
24
16k
Featured
See All Featured
Code Review Best Practice
trishagee
74
20k
XXLCSS - How to scale CSS and keep your sanity
sugarenia
250
1.3M
Paper Plane (Part 1)
katiecoart
PRO
0
6.9k
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
37
6.4k
Stop Working from a Prison Cell
hatefulcrawdad
274
21k
The Mindset for Success: Future Career Progression
greggifford
PRO
0
320
Exploring anti-patterns in Rails
aemeredith
3
340
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
133
19k
Darren the Foodie - Storyboard
khoart
PRO
3
3.3k
30 Presentation Tips
portentint
PRO
1
280
The SEO identity crisis: Don't let AI make you average
varn
0
450
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
231
23k
Transcript
UI Component Catalog for Android ϐοΫΞοϓגࣜձࣾ @kazutoyo
ࣗݾհ ϐοΫΞοϓגࣜձࣾ ౦ւ ๛ ʢ@kazutoyoʣ νϟοτܕখઆͷDMM TELLERͷ iOS/Androidͷ։ൃΛ୲
None
UI Component
None
UI Component • ΞϓϦέʔγϣϯ্Ͱ࠶ར༻Ͱ͖ΔΑ͏ͳViewΛ·ͱΊΔ • ϘλϯɺϦετɺΧʔυ…etc
UI Component Catalog
None
Storybook • React/Vue/AngularͰͷUI Component Catalog • StorybookΛ͏͜ͱͰɺ։ൃऀσβΠφʔίϯϙʔωϯ τ୯ҐͰͦΕͧΕͷ࣮ৼΔ͍Λ֬ೝ͢Δ͜ͱ͕Ͱ͖Δ • ͲΜͳίϯϙʔωϯτ͕͋Δ͔ಈ͔ͯ֬͠ೝ͢Δ͜ͱ͕Ͱ͖
Δ
ΊͬͪΌ͍͍ʂʂ
AndroidͰ͍ͨͯ͘ ʢࡶʹʣͭͬͯ͘Έ·ͨ͠
https://github.com/kazutoyo/ UIComponentCatalog
طଘͷϓϩδΣΫτʹՃͯ͠ΈΔ
طଘͷطଘͷϓϩδΣΫτʹՃͯ͠ΈΔ • TELLERͷΞϓϦͰݱࡏϚϧνϞδϡʔϧʹͳ͍ͬͯͳ͍ • ৽نͰ࡞ΔίϯϙʔωϯτΛ:uicomponentͱͯ͠Ϟδϡʔϧʹ Γग़͢ • UIComponentCatalog༻ͷPhone&TabletϞδϡʔϧΛՃͯ͠ɺ ͦ͜Ͱ:uicomponentϞδϡʔϧΛಡΈࠐΈUIComponentCatalog Λ࣮͢Δ
NewModule → Android Library
͜Μͳײ͡ͰUIComponent༻ͷϞδϡʔϧΛՃ
:uicomponentʹͭͬͨ͘ComponentΛՃ
NewModule → Phone & Tablet Module
UIComponentCatalogϞδϡʔϧΛՃ
ActivityΛՃʢLayout Fileੜ͠ͳ͍ʣ
JitPackϦϙδτϦΛՃ > build.gradle (project) repositories { google() jcenter() maven {
url "https://jitpack.io" } }
UIComponentCatalogͱ :uicomponentϞδϡʔϧΛՃ > uicomponentcatalog/build.gradle dependencies { implementation ‘com.github.kazutoyo:UIComponentCatalog:0.0.+’ implementation project(':uicomponent')
}
ComponentCatalogActivityΫϥεΛܧঝͯ͠ createCollections()Λ࣮͢Δ class TellerUIComponentCatalogActivity : ComponentCatalogActivity() { override fun createCollections():
List<ComponentCatalogCategory> = listOf( ComponentCatalogCategory("Common", listOf( ComponentCatalogSubCategory("ϑΥϩʔϘλϯ", listOf( object : ComponentItem("ϑΥϩʔϘλϯʢະϑΥϩʔʣ") { override fun buildItem(): View { return FollowButton(this@TellerUIComponentCatalogActivity).apply { setIsFollowed(false) } } } )) )) ) }
͔ͭͬͯΈͯ • ߴʹUIίϯϙʔωϯτͷ։ൃͰ͖ΔΑ͏ʹͳͬͨ • ͱ͘ʹຊମΞϓϦ͕Ϟδϡʔϧׂ͞Ε͍ͯͳ͔͔ͬͨΒ͍··ͰΊͪΌͪ͘Ό Ϗϧυ͕͔͔͍͚࣌ؒͬͯͨͲɺUIComponentCategoryͷΞϓϦέʔγϣϯ Ͱ֬ೝͰ͖ΔͷͰϏϧυ͕ͪͳ͘ͳͬͨ • ViewΛίϯϙʔωϯτԽ͢Δบ͕ͭ͘Α͏ͳؾ͕͢Δ •
σβΠφʔ͞Μͱίϯϙʔωϯτ୯ҐͰσβΠϯνΣοΫ͕Ͱ͖ΔͷͰɺΓ ͘͢ͳΓͦ͏
·ͩ·ͩUIComponentCatalog࡞Γ్தͳͷͰ ఏҊPullRequestͳͲܴ͠·͢ʂ
͝ਗ਼ௌ͋Γ͕ͱ͏͍͟͝·ͨ͠ʂ ϐοΫΞοϓגࣜձࣾͰΤϯδχΞΛ ืू͍ͯ͠·͢ͷͰԿଔ