Slide 1

Slide 1 text

© Start Today Technologies Inc. 1BHJOH-JCSBSZ0WFSWJFX (PPHMF*0ࢀՃใࠂձ ελʔττΡσΠςΫϊϩδʔζງߐ྄հ

Slide 2

Slide 2 text

© Start Today Technologies Inc. ࣗݾ঺հ w ງߐ྄հ w ελʔττΡσΠςΫϊϩδʔζ w ৽ࣄۀ૑଄෦ϑϩϯτΤϯυνʔϜ w "OESPJEΤϯδχΞ w !)PSJF

Slide 3

Slide 3 text

© Start Today Technologies Inc. ࣗݾ঺հ w #BEHFQJDLVQ͸࣌൒౸ண w Ͱͨ͠

Slide 4

Slide 4 text

© Start Today Technologies Inc. ࣗݾ঺հ એ఻ w 1&",4͞Μ͔ΒຊΛग़͠·͢ʂ w "OESPJEςετશॻ w $*$%ͷষΛࣥච͍ͯ͠·͢

Slide 5

Slide 5 text

© Start Today Technologies Inc. ࠓ೔ͷൃද಺༰ w 1BHJOH-JCSBSZͷ֓ཁʹ͍ͭͯ

Slide 6

Slide 6 text

© Start Today Technologies Inc. -JTU6*T w ϞόΠϧΞϓϦͰΑ͘ݟΒΕΔ6* w ͔ͬ͠Γ࡞Δͷ͸݁ߏେม w ແݶ-JTUͷ࣮૷ ௥Ճϩʔυͷ࢓૊Έ w ύϑΥʔϚϯε w %#Λ࢖ͬͨΩϟογϡ w %J⒎6UJMʹΑΔࠩ෼ߋ৽

Slide 7

Slide 7 text

© Start Today Technologies Inc. 4FTTJPO.BOBHJOH*OpOJUF-JTUTXJUI3FDZDMFS7JFXBOE1BHJOH

Slide 8

Slide 8 text

© Start Today Technologies Inc. 1BHJOH-JCSBSZ

Slide 9

Slide 9 text

© Start Today Technologies Inc. "OESPJE+FUQBDL Use Android Jetpack to Accelerate Your App Development

Slide 10

Slide 10 text

© Start Today Technologies Inc. 3FMFBTFE

Slide 11

Slide 11 text

© Start Today Technologies Inc. 1BHJOH-JCSBSZͷ֓ཁ

Slide 12

Slide 12 text

© Start Today Technologies Inc. 1BHJOH-JCSBSZ w *OUFHSBUFEXJUI3FDZDMFS7JFX w -PBETEBUBHSBEVBMMZ w දࣔʹඞཁͳ෼͚ͩσʔλΛϩʔυ w 3PPNʹΑΔΩϟογϡ w %J⒎6UJMʹΑΔࠩ෼ߋ৽ w -BSHF CPVOEFEBOEVOCPVOEFEMJTUT w ༗ݶɾແݶ-JTUΛαϙʔτ

Slide 13

Slide 13 text

© Start Today Technologies Inc. 1BHJOH-JCSBSZ w 6*ͱ%BUBͷؒʹೖͬͯྑ͍ײ͡ʹ-JTUΛදࣔ 6* 1BHJOH

Slide 14

Slide 14 text

© Start Today Technologies Inc. 1BHJOH-JCSBSZΛߏ੒͢Δ$PNQPOFOU

Slide 15

Slide 15 text

© Start Today Technologies Inc. 1BHJOH-JCSBSZΛߏ੒͢Δ$PNQPOFOU w 1BHFE-JTU w %BUB4PVSDFBOE%BUB4PVSDF'BDUPSZ w -JWF1BHFE-JTU#VJMEFS w #PVOEBSZ$BMMCBDL w 1BHFE-JTU"EBQUFS

Slide 16

Slide 16 text

© Start Today Technologies Inc. 1BHJOH-JCSBSZΛߏ੒͢Δ$PNQPOFOU Android Paging codelab

Slide 17

Slide 17 text

© Start Today Technologies Inc. 1BHFE-JTU w %BUB4PVSDF͔ΒͷඇಉظͳσʔλͷಡΈࠐΈ w -JWF%BUBʹࡌͤ7JFX.PEFMܦ༝Ͱ6*Ͱߪಡ 1BHFE-JTU"EBQUFSʹTVCNNJU

Slide 18

Slide 18 text

© Start Today Technologies Inc. %BUB4PVSDFBOE%BUB4PVSDF'BDUPSZ w 1BHFE-JTUʹσʔλΛಡΈࠐΉ w %BUB4PVSDF'BDUPSZ͕%BUB4PVSDFΛੜ੒͢Δ੹຿Λෛ͏

Slide 19

Slide 19 text

© Start Today Technologies Inc. %BUB4PVSDFBOE%BUB4PVSDF'BDUPSZ w 1BHFE-JTUʹσʔλΛಡΈࠐΉ w %BUB4PVSDF'BDUPSZ͕%BUB4PVSDFΛੜ੒͢Δ੹຿Λෛ͏ w %BUB4PVSDF͸Λࣗ࡞͢Δ͜ͱͰॊೈʹΧελϚΠζՄೳ w ࣍ͷछྨΛ%BUB4PVSDFʹಡΈࠐΉσʔλͷܗࣜʹΑͬͯબ୒ w 1BHF,FZFE%BUB4PVSDF w *UFN,FZFE%BUB4PVSDF w 1PTJUJPOBM%BUB4PVSDF

Slide 20

Slide 20 text

© Start Today Technologies Inc. w -JWF1BHFE-JTU#VJMEFS w %BUB4PVSDF'BDUPSZ͔Β-JWF%BUB1BHFE-JTUΛੜ੒ 1BHFE-JTU#VJMEFS

Slide 21

Slide 21 text

© Start Today Technologies Inc. w -JWF1BHFE-JTU#VJMEFS w 3Y1BHFE-JTU#VJMEFS 1BHFE-JTU#VJMEFS val data: LiveData> = LivePagedListBuilder(dataSourceFactory, 30) val data: Observable> = RxPagedListBuilder(dataSourceFactory, 30)

Slide 22

Slide 22 text

© Start Today Technologies Inc. w 1BHFE-JTU$POpH w 1BHJOHͷڍಈΛௐ੔Մೳ 1BHFE-JTU#VJMEFS val pagingConfig = PagedList.Config.Builder() .setPageSize(50) // 1ϖʔδ͋ͨΓʹදࣔ͢ΔΞΠςϜ਺ .setPrefetchDistance(10) // ௥Ճϩʔυͷᮢ஋ .setInitialLoadSizeHint(50) // ॳճϩʔυΞΠςϜ਺ .setEnablePlaceholders(true) // PlaceholderΛ࢖༻͢Δ͔ .build() val data = LivePagedListBuilder(dataSourceFactory, pagingConfig)

Slide 23

Slide 23 text

© Start Today Technologies Inc. 1MBDFIPMEFS w σʔλ͕औಘͰ͖Δ·Ͱ1MBDFIPMEFSΛදࣔ w σʔλ͕औಘޙࣗಈతʹඳը w ϩʔσΟϯάը૾ෆཁ w "EBQUFSଆͰ͸OVMMΛϋϯυϦϯάͰ͖ΔΑ͏ରԠ w ྫσϑΥϧτ஋Λදࣔ override fun onBindViewHolder(holder: RecyclerView.ViewHolder, position: Int) { val repoItem: Repo? = getItem(position) (holder as RepoViewHolder).bind(repoItem) }

Slide 24

Slide 24 text

© Start Today Technologies Inc. 1MBDFIPMEFSΛ࢖༻͢Δ্Ͱͷ஫ҙ఺ w දࣔ͢ΔΞΠςϜͷ7JFXͷαΠζΛ౳͘͢͠Δ w "EBQUFS͕OVMMΛIBOEMFՄೳʹ͢Δ w %BUB4PVSDF͕Χ΢ϯτՄೳͳσʔληοτΛ࣋ͭ͜ͱ

Slide 25

Slide 25 text

© Start Today Technologies Inc. #PVOEBSZ$BMMCBDL w %BUB4PVSDFͷঢ়ଶʹԠ࣮ͯ͡ߦ

Slide 26

Slide 26 text

© Start Today Technologies Inc. #PVOEBSZ$BMMCBDL w #PVOEBSZ$BMMCBDLPO;FSP*UFNT-PBEFE  w %BUB4PVSDF͕&NQUZͷ৔߹ʹ࣮ߦ w #PVOEBSZ$BMMCBDLPO*UFN"U&OE-PBEFE  w %BUB4PVSDF͔ΒऔಘՄೳͳσʔλΛશͯऔಘͨ͠৔߹ʹ࣮ߦ class RepoBoundaryCallback() : PagedList.BoundaryCallback() { override fun onZeroItemsLoaded() { // API Request } override fun onItemAtEndLoaded(itemAtEnd: Repo) { // API Request } }

Slide 27

Slide 27 text

© Start Today Technologies Inc. #PVOEBSZ$BMMCBDL w 1BHFE-JTU#VMEFSʹTFUͯ͠࢖༻ val data: LiveData> = LivePagedListBuilder(dataSourceFactory, 30) .setBoundaryCallback(boundaryCallback)

Slide 28

Slide 28 text

© Start Today Technologies Inc. 1BHFE-JTU"EBQUFS Android Paging codelab w 1BHFE-JTUΛαϙʔτ͢Δ"EBQUFS 1BHFE-JTU"EBQUFSTVCNJU-JTUͰ-JTUΛߋ৽

Slide 29

Slide 29 text

© Start Today Technologies Inc. 1BHJOH-JCSBSZ͕-JTUΛߋ৽͢ΔྲྀΕ

Slide 30

Slide 30 text

© Start Today Technologies Inc. 1BHJOH-JCSBSZ͕-JTUΛߋ৽͢ΔྲྀΕ Android Paging codelab  -JTUऴ୺·ͰεΫϩʔϧ

Slide 31

Slide 31 text

© Start Today Technologies Inc. 1BHJOH-JCSBSZ͕-JTUΛߋ৽͢ΔྲྀΕ Android Paging codelab  -JTUऴ୺·ͰεΫϩʔϧ  #PVOEBSZ$BMMCBDLͷ
 PO*UFN"U&OE-PBEFEΛ࣮ߦ  σʔλΛऔಘ͠3PPNʹ௥Ճ

Slide 32

Slide 32 text

© Start Today Technologies Inc. 1BHJOH-JCSBSZ͕-JTUΛߋ৽͢ΔྲྀΕ Android Paging codelab  -JTUऴ୺·ͰεΫϩʔϧ  #PVOEBSZ$BMMCBDLͷ
 PO*UFN"U&OE-PBEFEΛ࣮ߦ  σʔλΛऔಘ͠3PPNʹ௥Ճ  ৽͍͠1BHFE-JTU͕࡞੒
 -JWF%BUBͰ఻ୡ  1BHFE-JTU"EBQUFSTVCNJU-JTU
 Ͱ-JTUΛߋ৽

Slide 33

Slide 33 text

© Start Today Technologies Inc. ·ͱΊ

Slide 34

Slide 34 text

© Start Today Technologies Inc. ·ͱΊ w 1BHJOH-JCSBSZΛ࢖͏ͱແݶεΫϩʔϧՄೳͳ-JTU6*Λ؆୯ʹ࡞ΕΔ w 1BHJOH +FUQBDL ͷ࢓૊Έʹ৐͔ͬͬͯ͠·͏ͱָͦ͏ w $PEFMBC͕Θ͔Γ΍͍͢ͷͰ1BHJOHʹֶ͍ͭͯͿʹ͸Φεεϝ w IUUQTDPEFMBCTEFWFMPQFSTHPPHMFDPNDPEFMBCTBOESPJEQBHJOH

Slide 35

Slide 35 text

© Start Today Technologies Inc. ࢀߟࢿྉ w "OESPJE+FUQBDLNBOBHFJOpOJUFMJTUTXJUI3FDZDMFS7JFXBOE1BHJOH (PPHMF*0  w IUUQTXXXZPVUVCFDPNXBUDI W#&CTZ((-G w "SDIJUFDUVSF$PNQPOFOUT1BHJOH-JCSBSZ w IUUQTXXXZPVUVCFDPNXBUDI W27.R$3T#/"UT w "OESPJE1BHJOHDPEFMBC w IUUQTDPEFMBCTEFWFMPQFSTHPPHMFDPNDPEFMBCTBOESPJEQBHJOH w "OESPJE%FWFMPQFST1BHJOHMJCSBSZPWFSWJFX w IUUQTEFWFMPQFSBOESPJEDPNUPQJDMJCSBSJFTBSDIJUFDUVSFQBHJOH w "OESPJE+FU1BDL w IUUQTEFWFMPQFSBOESPJEDPNKFUQBDL

Slide 36

Slide 36 text

© Start Today Technologies Inc. ͋Γ͕ͱ͏͍͟͝·ͨ͠