Slide 1

Slide 1 text

Ո଒ͷຖ೔Λ΋ͬͱসإʹɻ 4XJGUͷ&OVN"TTPDJBUFE7BMVFTΛ ,PUMJOͰΤϛϡϨʔτ͍ͨ͠ ίωώτגࣜձࣾ

Slide 2

Slide 2 text

෋ా݈ೋ !UPNNZLX !UPNNZLX ίωώτגࣜձࣾ"OESPJE&OHJOFFS ϓϩϑΟʔϧ

Slide 3

Slide 3 text

ΞδΣϯμ w 4XJGU&OVN"TTPDJBUFE7BMVFTͱ͸ w ,PUMJOͰΤϛϡϨʔτ͢Δํ๏ w ·ͱΊ

Slide 4

Slide 4 text

Ո଒ͷຖ೔Λ΋ͬͱসإʹɻ 4XJGU&OVN"TTPDJBUFE7BMVFTͱ͸

Slide 5

Slide 5 text

ͦ΋ͦ΋Կʁ 4XJGU&OVN"TTPDJBUFE7BMVFTͱ͸

Slide 6

Slide 6 text

4XJGUͷ&OVNܕʹͯ೚ҙͷܕΛ֨ೲ͢ Δ͜ͱ͕Ͱ͖·͢ 4XJGU&OVN"TTPDJBUFE7BMVFTͱ͸

Slide 7

Slide 7 text

enum ListItemType { case header(Int, String) case row1(Int, String, Int) case row2(Int, String) case row3(Int, String) case footer(Int, String) } 4XJGU&OVN 4XJGU&OVN"TTPDJBUFE7BMVFTͱ͸

Slide 8

Slide 8 text

ศརʂʂ 4XJGU&OVN"TTPDJBUFE7BMVFTͱ͸

Slide 9

Slide 9 text

,PUMJO͸ʜ 4XJGU&OVN"TTPDJBUFE7BMVFTͱ͸

Slide 10

Slide 10 text

enum class ListItemType(val id: Int, val title: String) {
 HEADER(1, "header"),
 ROW1(2, "row1"),
 ROW2(3, "row2"),
 ROW3(4, "row3"),
 FOOTER(5, "footer"),
 } ,PUMJO&OVN 4XJGU&OVN"TTPDJBUFE7BMVFTͱ͸

Slide 11

Slide 11 text

enum class ListItemType(val id: Int, val title: String) {
 HEADER(1, "header"),
 ROW1(2, "row1", “image_url"), // ίϯύΠϧΤϥʔ
 ROW2(3, "row2"),
 ROW3(4, "row3"),
 FOOTER(5, "footer"),
 } ,PUMJO&OVN 4XJGU&OVN"TTPDJBUFE7BMVFTͱ͸

Slide 12

Slide 12 text

,PUMJOʹ͸&OVN"TTPDJBUFE7BMVFT ͷΑ͏ͳػೳ͸ఏڙ͞Ε͍ͯ·ͤΜ 4XJGU&OVN"TTPDJBUFE7BMVFTͱ͸

Slide 13

Slide 13 text

ͪͳΈʹ4XJGU͚ͩͰͳ͘ɺଞݴޠͰ͸όϦΞϯ τܕͱ͍͏ܕͰಉ༷ͷػೳΛ࣮ݱͰ͖ΔΑ͏Ͱ ͢ 4XJGU&OVN"TTPDJBUFE7BMVFTͱ͸

Slide 14

Slide 14 text

ϦετͷϏϡʔλΠϓ΍ΠϕϯτλΠϓΛ ಉ༷ͷػೳΛ࢖ͬͯ,PUMJOͰ؅ཧ͍ͨ͠ʂ 4XJGU&OVN"TTPDJBUFE7BMVFTͱ͸

Slide 15

Slide 15 text

Ո଒ͷຖ೔Λ΋ͬͱসإʹɻ ,PUMJOͰΤϛϡϨʔτ͢Δʹ͸

Slide 16

Slide 16 text

"OESPJE։ൃʹ͓͍ͯɺ3FDZDMFS7JFXͷ ෳ਺ϏϡʔλΠϓΛͲ͏΍ͬͯ؅ཧͯ͠ ͍·͔͢ʁ ,PUMJOͰΤϛϡϨʔτ͢Δʹ͸

Slide 17

Slide 17 text

ϕʔεͱͳΔجఈΫϥεΛ࡞ΓɺͦΕ Λجʹͨ͠αϒΫϥεͰ؅ཧ͢Δ ΞϓϩʔνʢجఈΫϥεʣ ,PUMJOͰΤϛϡϨʔτ͢Δʹ͸

Slide 18

Slide 18 text

ΞϓϩʔνʢجఈΫϥεʣ open class BaseListItem(
 open val id: Int,
 open val title: String
 )
 
 data class ListItem1(
 override val id: Int,
 override val title: String,
 val mainImageUrl: Int
 ) : BaseListItem(id, title)
 
 data class ListItem2(
 override val id: Int,
 override val title: String,
 val mainImageUrl: String,
 val subImageUrl: String
 ) : BaseListItem(id, title) ,PUMJOͰΤϛϡϨʔτ͢Δʹ͸

Slide 19

Slide 19 text

ΞϓϩʔνʢλΠϓ෼͚ʣ λΠϓΫϥεΛ࡞ͬͯ؅ཧ͢Δ ,PUMJOͰΤϛϡϨʔτ͢Δʹ͸

Slide 20

Slide 20 text

ΞϓϩʔνʢλΠϓ෼͚ʣ enum class ListItemType {
 HEADER, ROW1, ROW2, ROW3, FOOTER
 }
 
 data class ListItem(val id: String = "",
 val title: String = "",
 val type: ListItemType = ListItemType.HEADER)
 ,PUMJOͰΤϛϡϨʔτ͢Δʹ͸

Slide 21

Slide 21 text

4XJGUΈ͍ͨʹ&OVNͰ؅ཧͯ͠Έ͍ͨ ͳʜ ,PUMJOͰΤϛϡϨʔτ͢Δʹ͸

Slide 22

Slide 22 text

,PUMJOͰ΋ͬͱ؆୯ʹͰ͖ͳ͍͔ͳʜ ,PUMJOͰΤϛϡϨʔτ͢Δʹ͸

Slide 23

Slide 23 text

4FBMFE$MBTT ,PUMJOͰΤϛϡϨʔτ͢Δʹ͸

Slide 24

Slide 24 text

4FBMFE$MBTT͸ܧঝΛ੍ݶͰ͖ɺωετ͠ ͨΫϥε΍ΦϒδΣΫτʹରͯ͠ར༻Ͱ͖Δ ,PUMJOͰΤϛϡϨʔτ͢Δʹ͸

Slide 25

Slide 25 text

ྻڍܕΛ&OVNͰ͸ͳ͘ɺ4FBMFE $MBTTͰදݱ͢Δ ,PUMJOͰΤϛϡϨʔτ͢Δʹ͸

Slide 26

Slide 26 text

sealed class ListItemType {
 class Header(val id: Int, val title: String) : ListItemType()
 class Footer(val id: Int, val title: String) : ListItemType()
 } ,PUMJOͰΤϛϡϨʔτ͢Δʹ͸

Slide 27

Slide 27 text

3FMBYFE3VMFTGPS4FBMFE$MBTTFT TJODF ,PUMJOͰΤϛϡϨʔτ͢Δʹ͸

Slide 28

Slide 28 text

,PUMJO͔Β4FBMFE$MBTTͰ%BUB $MBTTΛར༻Ͱ͖ΔΑ͏ʹͳΓ·ͨ͠ ,PUMJOͰΤϛϡϨʔτ͢Δʹ͸

Slide 29

Slide 29 text

sealed class ListItemType {
 data class Header(val id: Int, val title: String) : ListItemType()
 data class Row1(val id: Int, val title: String, val imageUrl: String) : ListItemType()
 data class Row2(val id: Int, val title: String) : ListItemType()
 data class Row3(val id: Int, val title: String) : ListItemType()
 data class Footer(val id: Int, val title: String) : ListItemType()
 } ,PUMJOͰΤϛϡϨʔτ͢Δʹ͸

Slide 30

Slide 30 text

%BUB$MBTTʹ͸ɺFRVBMTɺIBTI$PEFɺ DPNQPOFOUɺDPQZͳͲ͕͋ͬͯศརʂ ,PUMJOͰΤϛϡϨʔτ͢Δʹ͸

Slide 31

Slide 31 text

%BUB$MBTT͸σʔλͷ੔߹ੑΛकΔͨ ΊʹҾ਺͕ඞཁͱͳΓ·͢ ,PUMJOͰΤϛϡϨʔτ͢Δʹ͸

Slide 32

Slide 32 text

sealed class ListItemType {
 data class Header(val id: Int, val title: String) : ListItemType()
 data class Row1(val id: Int, val title: String, val imageUrl: String) : ListItemType()
 data class Row2(val id: Int, val title: String) : ListItemType()
 data class Row3(val id: Int, val title: String) : ListItemType()
 data class Footer() : ListItemType() // ίϯύΠϧΤϥʔ
 } ,PUMJOͰΤϛϡϨʔτ͢Δʹ͸

Slide 33

Slide 33 text

Ҿ਺ͷͳ͍΋ͷʹ͍ͭͯ͸ɺ$MBTTͰ ఆٛ͢Ε͹ྑͦ͞͏ ,PUMJOͰΤϛϡϨʔτ͢Δʹ͸

Slide 34

Slide 34 text

sealed class ListItemType {
 data class Header(val id: Int, val title: String) : ListItemType()
 data class Row1(val id: Int, val title: String, val imageUrl: String) : ListItemType()
 data class Row2(val id: Int, val title: String) : ListItemType()
 data class Row3(val id: Int, val title: String) : ListItemType()
 class Footer() : ListItemType()
 } ,PUMJOͰΤϛϡϨʔτ͢Δʹ͸

Slide 35

Slide 35 text

ϦετͷϏϡʔλΠϓ΍ΠϕϯτλΠ ϓͷ؅ཧָ͕ʹͳΓ·͢Ͷʂ ,PUMJOͰΤϛϡϨʔτ͢Δʹ͸

Slide 36

Slide 36 text

Ո଒ͷຖ೔Λ΋ͬͱসإʹɻ ·ͱΊ

Slide 37

Slide 37 text

4XJGU&OVN"TTPDJBUFE7BMVFTͷ୅ସҊͱ͠ ͯɺ4FBMFE$MBTTͱ%BUB$MBTTΛ࢖ͬͯΈΔͷ ͸͍͔͕Ͱ͠ΐ͏͔ ·ͱΊ

Slide 38

Slide 38 text

Ո଒ͷຖ೔Λ΋ͬͱসإʹɻ ίωώτגࣜձࣾ ͝ਗ਼ௌ͋Γ͕ͱ͏͍͟͝·ͨ͠