Slide 1

Slide 1 text

UI Component Catalog for Android ϐοΫΞοϓגࣜձࣾ @kazutoyo

Slide 2

Slide 2 text

ࣗݾ঺հ ϐοΫΞοϓגࣜձࣾ ౦ւ ࿨๛ ʢ@kazutoyoʣ νϟοτܕখઆͷDMM TELLERͷ iOS/Androidͷ։ൃΛ୲౰

Slide 3

Slide 3 text

No content

Slide 4

Slide 4 text

UI Component

Slide 5

Slide 5 text

No content

Slide 6

Slide 6 text

UI Component • ΞϓϦέʔγϣϯ্Ͱ࠶ར༻Ͱ͖ΔΑ͏ͳViewΛ·ͱΊΔ • ϘλϯɺϦετɺΧʔυ…etc

Slide 7

Slide 7 text

UI Component Catalog

Slide 8

Slide 8 text

No content

Slide 9

Slide 9 text

Storybook • React/Vue/AngularͰͷUI Component Catalog • StorybookΛ࢖͏͜ͱͰɺ։ൃऀ΍σβΠφʔ͸ίϯϙʔωϯ τ୯ҐͰͦΕͧΕͷ࣮૷΍ৼΔ෣͍Λ֬ೝ͢Δ͜ͱ͕Ͱ͖Δ • ͲΜͳίϯϙʔωϯτ͕͋Δ͔΋ಈ͔ͯ֬͠ೝ͢Δ͜ͱ͕Ͱ͖ Δ

Slide 10

Slide 10 text

ΊͬͪΌ͍͍ʂʂ

Slide 11

Slide 11 text

AndroidͰ΋࢖͍ͨͯ͘ ʢࡶʹʣͭͬͯ͘Έ·ͨ͠

Slide 12

Slide 12 text

https://github.com/kazutoyo/ UIComponentCatalog

Slide 13

Slide 13 text

طଘͷϓϩδΣΫτʹ௥Ճͯ͠ΈΔ

Slide 14

Slide 14 text

طଘͷطଘͷϓϩδΣΫτʹ௥Ճͯ͠ΈΔ • TELLERͷΞϓϦͰ͸ݱࡏϚϧνϞδϡʔϧʹͳ͍ͬͯͳ͍ • ৽نͰ࡞ΔίϯϙʔωϯτΛ:uicomponentͱͯ͠Ϟδϡʔϧʹ੾ Γग़͢ • UIComponentCatalog༻ͷPhone&TabletϞδϡʔϧΛ௥Ճͯ͠ɺ ͦ͜Ͱ:uicomponentϞδϡʔϧΛಡΈࠐΈUIComponentCatalog Λ࣮૷͢Δ

Slide 15

Slide 15 text

NewModule → Android Library

Slide 16

Slide 16 text

͜Μͳײ͡ͰUIComponent༻ͷϞδϡʔϧΛ௥Ճ

Slide 17

Slide 17 text

:uicomponentʹͭͬͨ͘ComponentΛ௥Ճ

Slide 18

Slide 18 text

NewModule → Phone & Tablet Module

Slide 19

Slide 19 text

UIComponentCatalogϞδϡʔϧΛ௥Ճ

Slide 20

Slide 20 text

ActivityΛ௥ՃʢLayout File͸ੜ੒͠ͳ͍ʣ

Slide 21

Slide 21 text

JitPackϦϙδτϦΛ௥Ճ > build.gradle (project) repositories { google() jcenter() maven { url "https://jitpack.io" } }

Slide 22

Slide 22 text

UIComponentCatalogͱ :uicomponentϞδϡʔϧΛ௥Ճ > uicomponentcatalog/build.gradle dependencies { implementation ‘com.github.kazutoyo:UIComponentCatalog:0.0.+’ implementation project(':uicomponent') }

Slide 23

Slide 23 text

ComponentCatalogActivityΫϥεΛܧঝͯ͠ createCollections()Λ࣮૷͢Δ class TellerUIComponentCatalogActivity : ComponentCatalogActivity() { override fun createCollections(): List = listOf( ComponentCatalogCategory("Common", listOf( ComponentCatalogSubCategory("ϑΥϩʔϘλϯ", listOf( object : ComponentItem("ϑΥϩʔϘλϯʢະϑΥϩʔʣ") { override fun buildItem(): View { return FollowButton(this@TellerUIComponentCatalogActivity).apply { setIsFollowed(false) } } } )) )) ) }

Slide 24

Slide 24 text

͔ͭͬͯΈͯ • ߴ଎ʹUIίϯϙʔωϯτͷ։ൃͰ͖ΔΑ͏ʹͳͬͨ • ͱ͘ʹຊମΞϓϦ͕Ϟδϡʔϧ෼ׂ͞Ε͍ͯͳ͔͔ͬͨΒ͍··ͰΊͪΌͪ͘Ό Ϗϧυ͕͔͔͍͚࣌ؒͬͯͨͲɺUIComponentCategoryͷΞϓϦέʔγϣϯ Ͱ֬ೝͰ͖ΔͷͰϏϧυ଴͕ͪͳ͘ͳͬͨ • ViewΛίϯϙʔωϯτԽ͢Δบ͕ͭ͘Α͏ͳؾ͕͢Δ • σβΠφʔ͞Μͱίϯϙʔωϯτ୯ҐͰσβΠϯνΣοΫ͕Ͱ͖ΔͷͰɺ΍Γ ΍͘͢ͳΓͦ͏

Slide 25

Slide 25 text

·ͩ·ͩUIComponentCatalog͸࡞Γ్தͳͷͰ ఏҊ΍PullRequestͳͲ׻ܴ͠·͢ʂ

Slide 26

Slide 26 text

͝ਗ਼ௌ͋Γ͕ͱ͏͍͟͝·ͨ͠ʂ ϐοΫΞοϓגࣜձࣾͰ͸ΤϯδχΞΛ ืू͍ͯ͠·͢ͷͰԿଔ