Slide 1

Slide 1 text

ϚϧνϞδϡʔϧͷ͢ʍΊ LHNZTIJO!%SPJE,BJHJ%BZ3PPNd ͜ͷηογϣϯͷΰʔϧ ࿩͞ͳ͍͜ͱ w ϚϧνϞδϡʔϧͰ࣮૷͢Δ͜ ͱͷ༗ޮੑΛཧղ͍ͨͩ͘ w ϚϧνϞδϡʔϧͰͷ࣮૷Πϝʔ δΛ࣋ͬͯ΋Β͏ w *OTUBOU"QQTʹ͍ͭͯৄ͘͠ w ,PUMJOOBUJWFʹ͍ͭͯৄ͘͠ w ϚϧνϞδϡʔϧ΍ͬͯߦ্͘ Ͱͷࡉ͔͍͚Ͳ༗ޮͳUJQT Φ ϑΟεΞϫʔ΍ύʔςΟʔͰฉ͍ͯͩ͘ ͍͞

Slide 2

Slide 2 text

ϚϧνϞδϡʔϧͷ ͢ʍΊ LHNZTIJO!%SPJE,BJHJ%BZ3PPNd

Slide 3

Slide 3 text

ࣗݾ঺հ

Slide 4

Slide 4 text

ࣗݾ঺հ w ఝٶLHNZTIJO༗৅ແ৅ w "OESPJEΤϯδχΞ w ෱Ԭݝ෱Ԭࢢೆ۠໺ଟ໨ ग़਎ w ϦΫϧʔτϚʔέςΟϯά ύʔτφʔζ

Slide 5

Slide 5 text

"HFOEB

Slide 6

Slide 6 text

"HFOEB w ͳͥϚϧνϞδϡʔϧԽ͢Δͷ͔ w ϚϧνϞδϡʔϧԽ͢ΔσϝϦοτ w Ϟδϡʔϧͷ෼͚ํʹ͍ͭͯ w $BTF"OOJDU w ࣮ࡍʹϚϧνϞδϡʔϧʹͯ͠ΈΔ w Ϟδϡʔϧؒͷ࿈ܞʹ͍ͭͯ

Slide 7

Slide 7 text

ͳͥϚϧνϞδϡʔϧԽ͢Δͷ͔

Slide 8

Slide 8 text

঺հ͢Δཧ༝͸ࡾͭ w ࡢࠓͷΞϓϦ͸ෳࡶԽ͖͍ͯͯ͠Δ w ϚϧνϞδϡʔϧԽͷ೾͕͖͍ͯΔ w ݸਓతମݧஊʹجͮ͘࿩

Slide 9

Slide 9 text

঺հ͢Δཧ༝͸ࡾͭ w ࡢࠓͷΞϓϦ͸ෳࡶԽ͖͍ͯͯ͠Δ w ϚϧνϞδϡʔϧԽͷ೾͕͖͍ͯΔ w ݸਓతମݧஊʹجͮ͘࿩

Slide 10

Slide 10 text

ࡢࠓͷΞϓϦ͸ෳࡶԽͯ͠དྷ͍ͯΔ

Slide 11

Slide 11 text

ओཁػೳҎ֎ʹ΋࣮૷͢Δαϒػೳ͕ଟ͋͘Δ

Slide 12

Slide 12 text

αϒػೳͷྫ ϩάΠϯϩάΞ΢τػೳ

Slide 13

Slide 13 text

αϒػೳͷྫ ڧ੍ Ξοϓσʔτػೳ

Slide 14

Slide 14 text

αϒػೳͷྫ ͓஌Βͤػೳ

Slide 15

Slide 15 text

αϒػೳͷྫ Ϣʔβʔϩάऩूػೳ

Slide 16

Slide 16 text

ͨͩͰ͑͞ओཁػೳ͕ෳࡶͳͱ͖ʹ ͜ΕΒΛ޻෉ͳ͠Ͱ࣮૷͢Δͱ ೉қ౓͕͙ͬͱߴ·ͬͯ͠·͏

Slide 17

Slide 17 text

ͦͷ޻෉ͷҰͭͱͯ͠ͷϚϧνϞδϡʔϧԽ wओཁػೳ wϩάΠϯ wΞοϓσʔτ w͓஌Βͤ wϢʔβʔϩά ओཁػೳ ϩάΠϯ Ξοϓσʔτ ͓஌Βͤ Ϣʔβʔϩά ࠞͥΔඞཁͷͳ͍΋ͷΛϞδϡʔϧϨϕϧͰ෼͚ͯ ͦΕͧΕӨڹൣғΛ࠷খԽ͢Δ

Slide 18

Slide 18 text

ϚΠΫϩαʔϏεԽ͕ਐΉʹ͕ͨͬͯ͠ɺ ҙຯͷ͋Δ·ͱ·Γ͝ͱʹΤϯυϙΠϯτ͕ Ͱ͖Δ͜ͱ͕͋Δ

Slide 19

Slide 19 text

αʔόʔଆʹ߹ΘͤͯϞδϡʔϧԽ ΞΧ΢ϯτ"1* ࠞͥΔඞཁͷͳ͍΋ͷΛϞδϡʔϧϨϕϧͰ෼͚ͯ ͦΕͧΕӨڹൣғΛ࠷খԽ͢Δ ֶशه࿥"1* τϨʔχϯά"1* ΞΧ΢ϯτ Ϟδϡʔϧ ֶशه࿥ Ϟδϡʔϧ τϨʔχϯά Ϟδϡʔϧ

Slide 20

Slide 20 text

঺հ͢Δཧ༝͸ࡾͭ w ࡢࠓͷΞϓϦ͸ෳࡶԽ͖͍ͯͯ͠Δ w ϚϧνϞδϡʔϧԽͷ೾͕͖͍ͯΔ w ݸਓతମݧஊʹجͮ͘࿩

Slide 21

Slide 21 text

ϚϧνϞδϡʔϧԽͷ೾͕དྷ͍ͯΔ

Slide 22

Slide 22 text

"OESPJE*OTUBOU"QQT ࠓճ͸આ໌͠·ͤΜ

Slide 23

Slide 23 text

"OESPJE*OTUBOU"QQT "OESPJE*OTUBOU"QQT ʹରԠ͢Δʹ͸ ϚϧνϞδϡʔϧԽ͕ ٻΊΒΕΔ

Slide 24

Slide 24 text

"OESPJE(SBEMF1MVHJO

Slide 25

Slide 25 text

"OESPJE(SBEMF1MVHJO The Android Plugin for Gradle 3.0.0 is a major upgrade that brings significant performance improvements to large multi-module projects. IUUQTEFWFMPQFSBOESPJEDPNTUVEJPCVJMEHSBEMFQMVHJONJHSBUJPOIUNM "OESPJE1MVHJOGPS(SBEMF͸ɺେن໛ͳ ϚϧνϞδϡʔϧϓϩδΣΫτͷύϑΥʔϚϯε Λେ෯ʹ޲্ͤ͞ΔϝδϟʔΞοϓάϨʔυͰ͢ ɻ

Slide 26

Slide 26 text

,PUMJO/BUJWF

Slide 27

Slide 27 text

,PUMJO/BUJWF ࠷௿Ͱ΋DPNNPONPEVMFΛ ࡞Βͳ͚Ε͹ͳΒͳ͍

Slide 28

Slide 28 text

঺հ͢Δཧ༝͸ࡾͭ w ࡢࠓͷΞϓϦ͸ෳࡶԽ͖͍ͯͯ͠Δ w ϚϧνϞδϡʔϧԽͷ೾͕͖͍ͯΔ w ݸਓతମݧஊʹجͮ͘࿩

Slide 29

Slide 29 text

ݸਓతମݧஊʹجͮ͘࿩

Slide 30

Slide 30 text

ࣗ෼͕ϚϧνϞδϡʔϧʹͨ͠ཧ༝ ϨΠϠʔυΞʔΩςΫνϟΛ࠾༻ͯ͠ ҙຯ͋Δ·ͱ·Γ͝ͱʹ ύοέʔδΛ੾͍ͬͯͨ JOGSB EPNBJO ্Ґ૚ ίΞ αϒ BQQ

Slide 31

Slide 31 text

ࣗ෼͕ϚϧνϞδϡʔϧʹͨ͠ཧ༝ JOGSB EPNBJO ্Ґ૚ ೝূ ଞ BQQ ྫ͑͹ɺೝূػೳ͕͋Δ͕࣌ຊ౰ʹਏ͍ "DDFTT 5PLFO

Slide 32

Slide 32 text

ࣗ෼͕ϚϧνϞδϡʔϧʹͨ͠ཧ༝ JOGSB EPNBJO ্Ґ૚ ೝূ ଞ BQQ ೝূػೳʹͱͬͯ͸υϝΠϯͰ΋ ଞϞδϡʔϧ͔Β࢖͏ͱ͖͸*OGSBʹͰ͖ͯͯ͠·͍ ϨΠϠʔͷ੍໿่͕Εͯ͠·͏ "DDFTT 5PLFO "1*

Slide 33

Slide 33 text

ࣗ෼͕ϚϧνϞδϡʔϧʹͨ͠ཧ༝ JOGSB EPNBJO ্Ґ૚ ೝূ "DDFTT 5PLFO औಘ αʔϏε JOGSB EPNBJO ্Ґ૚ ଞ "1* ໰͍߹Θͤ τʔΫϯ ผϞδϡʔϧʹ෼͚Δ͜ͱͰ ϨΠϠʔͷ੍໿Λอͭ͜ͱ͕Ͱ͖Δ͚ͩͰͳ͘ ҙຯ͋Δ͔ͨ·ΓͰ·ͱΊΔ͜ͱ͕Ͱ͖Δ

Slide 34

Slide 34 text

ϚϧνϞδϡʔϧԽ͢ΔσϝϦοτ

Slide 35

Slide 35 text

EBUBCJOEJOHͱͷ૬ੑ͕ѱ͍

Slide 36

Slide 36 text

EBUBCJOEJOHͱͷ૬ੑ͕ѱ͍ྫ ͦ΋ͦ΋গ͠લ·Ͱ͸Ͱ͖ͳ͔ͬͨʜ NPEVMFͰEBUBCJOEJOHΛPOʹͯ͠΋ BQQCVJMEʹͷΈੜ੒͞Εͯ͠·ͬͯ NPEVMFଆͰEBUBCJOEJOHܥͷ ੜ੒ΫϥεΛࢀরͰ͖ͳ͍ ͱ͍͏͜ͱ͕ى͖͍ͯͨ BQQ NPEVMF CJOEJOHPGNPEVMF CJOEJOHPGNPEVMF

Slide 37

Slide 37 text

EBUBCJOEJOHͱͷ૬ੑ͕ѱ͍ྫ ࠓͰ͸ BQQଆʹ΋ NPEVMFଆʹ΋ੜ੒͞ΕΔ BQQ NPEVMF CJOEJOHPGNPEVMF CJOEJOHPGNPEVMF

Slide 38

Slide 38 text

EBUBCJOEJOHͱͷ૬ੑ͕ѱ͍ྫ ͨͩ͠ɺ͍·ͩʹਏ͍ͱ͜Ζ͸͋Δ

Slide 39

Slide 39 text

EBUBCJOEJOHͱͷ૬ੑ͕ѱ͍ྫ @BindingAdapter("items") public void setItems( RecyclerView view, List items ) { : } dependencies { : implementation “com.android.support:recyclerview-v7:26.1.0" : } NPEVMFଆͷEFQFEFODJFTʹSFDZDMFSWJFXΛ௥Ճ #JOEJOH"EBQUFS࡞੒

Slide 40

Slide 40 text

EBUBCJOEJOHͱͷ૬ੑ͕ѱ͍ྫ CVJME͢Δͱɺࣦഊ͢Δ > android.databinding.tool.util.LoggedErrorException: Found data binding errors. Cannot find the setter for attribute 'app:items' with parameter type java.lang.String on android.support.v7.widget.RecyclerView. file:///xxxx/mylibrary/src/main/res/layout/view_test.xml Line:18

Slide 41

Slide 41 text

EBUBCJOEJOHͱͷ૬ੑ͕ѱ͍ྫ BQQ NPEVMF CJOEJOHPGNPEVMF CJOEJOHPGNPEVMF BQQCVJMEʹ NPEVMFͷCJOEJOHܥͷ Ϋϥε͕ੜ੒͞ΕΔ͕ BQQʹSFDZDMFS7JFXͷ EFQFOEFODZ͕ͳ͍ͨΊ Ϗϧυʹࣦഊ͢Δ BQQʹSFDZDMFS7JFXͷEFQFOEFODZΛ௥Ճ͢Ε͹0,

Slide 42

Slide 42 text

EBUBCJOEJOHΛNPEVMFͰ࢖ͬͨ࣌ʹ BQQͱNPEVMFͷEFQFOEFODJFTΛ ௐ੔͠ͳ͍ͱϏϧυ͕௨Βͳ͍ʜ ͦͷ্ɺΤϥʔϝοηʔδ͸ෆ਌੾Ͱ ʮґଘؔ܎͕͓͔͍͠ʯ͜ͱ͸ڭ͑ͯ͘Εͳ͍ʜ

Slide 43

Slide 43 text

͕͔ͩ͠͠ɺ ϚϧνϞδϡʔϧͷ೾͕དྷ͍ͯΔࠓ ͦͷσϝϦοτ΋ղܾ͞ΕΑ͏ͱ͍ͯ͠Δʂ

Slide 44

Slide 44 text

%BUB#JOEJOH$PNQJMFS7

Slide 45

Slide 45 text

%BUB#JOEJOH$PNQJMFS7 "OESPJE(SBEMF1MVHJO$BOBSZ͔Β ௥Ճ͞Εͨ ·ͩਖ਼ࣜϦϦʔε͸͞Εͯͳ͍

Slide 46

Slide 46 text

%BUB#JOEJOH$PNQJMFS7 android.databinding.enableV2=true HSBEMFQSPQFUJFTʹԼهΛ௥Ճ NPEVMFͷCJOEJOHܥͷΫϥε͸NPEVMFCVJMEʹͷΈͰ͖ͯ NPEVMF͚ͩͰ׬݁͢ΔΑ͏ʹͳΔʂ BQQ NPEVMF CJOEJOHPGNPEVMF CJOEJOHPGNPEVMF Ͱ͖ͳ͍

Slide 47

Slide 47 text

Ϟδϡʔϧͷ෼͚ํʹ͍ͭͯ

Slide 48

Slide 48 text

ݸਓతʹ͸෼͚ํʹ͸ೋͭͷ؍఺͕͋Δͱߟ͍͑ͯΔ ϨΠϠʔͰ෼͚Δ ҙຯ͋Δ·ͱ·ΓͰ෼͚Δ

Slide 49

Slide 49 text

ϨΠϠʔͰ෼͚Δ

Slide 50

Slide 50 text

ϨΠϠʔͰ෼͚Δ JOGSB EPNBJO ্Ґ૚ BQQ ϨΠϠʔυΞʔΩςΫνϟͷݪଇ Լͷ૚͸্ͷ૚ͷ͜ͱΛ஌ͬͯ͸ ͍͚ͳ͍

Slide 51

Slide 51 text

ϨΠϠʔͰ෼͚Δ JOGSB EPNBJO ্Ґ૚ BQQ ϞδϡʔϧͰ΍Δ৔߹ ϓϩάϥϚ͕஫ҙͯ͠ ͦͷݪଇΛकΒͳ͚Ε͹ͳΒͳ͍

Slide 52

Slide 52 text

ϨΠϠʔ͝ͱʹ ϞδϡʔϧΛ෼͚Δ͜ͱͰ ͦͷݪଇΛڧ੍͢Δ͜ͱ͕Ͱ͖Δ ϨΠϠʔͰ෼͚Δ JOGSB EPNBJO ্Ґ૚

Slide 53

Slide 53 text

ҙຯ͋Δ·ͱ·ΓͰ෼͚Δ

Slide 54

Slide 54 text

ҙຯ͋Δ·ͱ·ΓͰ෼͚Δ ࠞͥΔඞཁͷͳ͍΋ͷΛϞδϡʔϧϨϕϧͰ෼͚ͯ ͦΕͧΕӨڹൣғΛ࠷খԽ͢Δ ΞΧ΢ϯτ Ϟδϡʔϧ ֶशه࿥ Ϟδϡʔϧ τϨʔχϯά Ϟδϡʔϧ

Slide 55

Slide 55 text

෼͚ํͷ͓͢͢Ί

Slide 56

Slide 56 text

෼͚ํͷ͓͢͢Ί ҙຯ͋Δ·ͱ·Γ PS ϨΠϠʔҙຯ͋Δ·ͱ·Γ

Slide 57

Slide 57 text

ϨΠϠʔ͚ͩͩͱઌͷ໰୊͕࠶ൃ͢ΔͷͰ ͓͢͢Ί͠ͳ͍

Slide 58

Slide 58 text

τϨʔχϯά ݫີʹ΍ΔͳΒϨΠϠʔҙຯ͋Δ·ͱ·Γ ΞΧ΢ϯτ ֶशه࿥ JOGSB EPNBJO ্Ґ૚ JOGSB EPNBJO ্Ґ૚ JOGSB EPNBJO ্Ґ૚

Slide 59

Slide 59 text

τϨʔχϯά ΞΧ΢ϯτ ֶशه࿥ EPNBJO 6* EPNBJO 6* EPNBJO 6* lϢʔβʔϩά͸6*૚Ͱ͔͠ૹΒͳ͍z ͳͲͷ੍໿Λґଘؔ܎Ͱڧ੍Ͱ͖ͨΓ͢Δ Ϣʔβʔϩάʹґଘ Ϣʔβʔϩάʹґଘ Ϣʔβʔϩάʹґଘ ݫີʹ΍ΔͳΒϨΠϠʔҙຯ͋Δ·ͱ·Γ

Slide 60

Slide 60 text

τϨʔχϯά ΞΧ΢ϯτ ֶशه࿥ EPNBJO 6* EPNBJO 6* EPNBJO 6* Ϣʔβʔϩάʹґଘ Ϣʔβʔϩάʹґଘ Ϣʔβʔϩάʹґଘ ϨΠϠʔͰ੾Βͳ͍৔߹ɺ ϓϩάϥϚʹΑͬͯEPNBJOͰૹͬͨΓ6*ͰૹͬͨΓ ͱΧΦεʹͳΓ͔Ͷͳ͍ ݫີʹ΍ΔͳΒϨΠϠʔҙຯ͋Δ·ͱ·Γ

Slide 61

Slide 61 text

ͱ͸͍͑ w ΦʔόʔΩϧ͔Ͳ͏͔͸ओ؍ɺνʔϜͷϝϯόʔ ͷೳྗͳͲͳͲʹΑΔͷͰ֤νʔϜͰ൑அΛ w ໨҆ͱͯ͠ओཁػೳ͕Ҏ্ͷಠཱͨ͠΋ͷͰͰ ͖ͯΔͳΒҙຯ͋Δ·ͱ·ΓͰ෼͚ͨํ͕͍͍ ͔΋ w νʔϜ͕ະख़ͳΒɺϨΠϠʔͰ෼͚ͯґଘؔ܎ Ͱ੍໿Λڧ੍͢ΔͱฏԺΛอͯ·͢

Slide 62

Slide 62 text

$BTF"OOJDU

Slide 63

Slide 63 text

࣮ࡍʹ"OOJDUͱ͍͏αʔϏεͷ ΫϥΠΞϯτΞϓϦΛ࡞Δͱͯ͠ ࣮ࡍʹϞδϡʔϧΛ෼͚ͯΈΑ͏

Slide 64

Slide 64 text

"OOJDUʹ͍ͭͯ ؅ཧऀͰ͋Δ!TIJNCBDP͞ΜͷڐՄ͸͍͍͓ͨͩͯΓ·͢

Slide 65

Slide 65 text

"OOJDUͱ͸ l"OOJDU ΞχΫτ ͸ɺݟͨΞχϝΛه࿥ͨ͠Γɺ ݟͨײ૝Λ༑ୡʹγΣΞ͢Δ͜ͱ͕Ͱ͖Δ8FCαʔ ϏεͰ͢ɻʮࠓͲͷ࡞඼ΛԿ࿩·Ͱݟ͍ͯΔΜͩͬ ͚ʁʯΛղফ͠·͢ɻz

Slide 66

Slide 66 text

ϩάΠϯϩάΞ΢τ

Slide 67

Slide 67 text

ΞχϝΛݕࡧ

Slide 68

Slide 68 text

ݟͯΔɾݟ͍ͨɾݟͨͳͲΛ؅ཧͰ͖Δ

Slide 69

Slide 69 text

ΞχϝͷϨϏϡʔΛॻ͍ͨΓݟͨΓͰ͖Δ

Slide 70

Slide 70 text

Τϐιʔυ͝ͱʹه࿥

Slide 71

Slide 71 text

ϢʔβʔΛϑΥϩʔ

Slide 72

Slide 72 text

Ϟδϡʔϧʹ෼͚͍ͯ͘

Slide 73

Slide 73 text

෼͚ํʹ͍ͭͯ w ͜ͷྲྀΕͰ΍Ε͹ਖ਼ղͱ͍͏΋ͷ͸ͳ͍ w ͨͩɺͲ͏͍͏໰୊Λղܾ͍ͨ͠ͷ͔ʁͱ͍͏ ؍఺Λ࣋ͭͱ͍͍ w ΞϓϦ͸ఏڙ͞ΕΔ"1*ʹ΋ґଘͤ͟ΔΛಘͳ ͍ͷͰͦ͜͸ྟػԠมʹ

Slide 74

Slide 74 text

طଘػೳ͔ΒϢʔεέʔεΛચ͍ग़ͯ͠ΈΔ ϩάΠϯ Ξχϝݕࡧ ࢹௌ؅ཧ Ξχϝ΁ͷ ϨϏϡʔ Τϐιʔυ΁ͷ ϨϏϡʔ ϑΥϩʔ

Slide 75

Slide 75 text

طଘػೳ͔ΒϢʔεέʔεΛચ͍ग़ͯ͠ΈΔ ϢʔβʔΛಛఆ͠ ೝূ͢Δ ͲΜͳ Ξχϝ͕͋Δͷ͔ ஌Γ͍ͨ ݟͯΔɺݟ͍ͨɺ ݟͨ Λ؅ཧ͍ͨ͠ Ξχϝ΁ ϨϏϡʔΛ ࢒͍ͨ͠ݟ͍ͨ Τϐιʔυ΁ ϨϏϡʔΛ ࢒͍ͨ͠ݟ͍ͨ ؾʹͳΔ ϢʔβʔΛ ϑΥϩʔ͍ͨ͠ ͦΕͧΕԿΛ࣮ݱ͢Δػೳͳͷ͔ʁ

Slide 76

Slide 76 text

طଘػೳ͔ΒϢʔεέʔεΛચ͍ग़ͯ͠ΈΔ ϢʔβʔΛಛఆ͠ ೝূ͢Δ ͲΜͳ Ξχϝ͕͋Δͷ͔ ஌Γ͍ͨ ݟͯΔɺݟ͍ͨɺ ݟͨ Λ؅ཧ͍ͨ͠ Ξχϝ΁ ϨϏϡʔΛ ࢒͍ͨ͠ݟ͍ͨ Τϐιʔυ΁ ϨϏϡʔΛ ࢒͍ͨ͠ݟ͍ͨ ؾʹͳΔ ϢʔβʔΛ ϑΥϩʔ͍ͨ͠ ·ͣ͸໌Β͔ʹओཁػೳ͔Β֎ΕΔಠཱͨ͠΋ͷΛ ݟ͚ͭͯΈΔ

Slide 77

Slide 77 text

طଘػೳ͔ΒϢʔεέʔεΛચ͍ग़ͯ͠ΈΔ ϢʔβʔΛಛఆ͠ ೝূ͢Δ ͲΜͳ Ξχϝ͕͋Δͷ͔ ஌Γ͍ͨ ݟͯΔɺݟ͍ͨɺ ݟͨ Λ؅ཧ͍ͨ͠ Ξχϝ΁ ϨϏϡʔΛ ࢒͍ͨ͠ݟ͍ͨ Τϐιʔυ΁ ϨϏϡʔΛ ࢒͍ͨ͠ݟ͍ͨ ؾʹͳΔ ϢʔβʔΛ ϑΥϩʔ͍ͨ͠ ·ͣ͸໌Β͔ʹओཁػೳ͔Β֎ΕΔಠཱͨ͠΋ͷΛ ݟ͚ͭͯΈΔ

Slide 78

Slide 78 text

طଘػೳ͔ΒϢʔεέʔεΛચ͍ग़ͯ͠ΈΔ ࢒ͬͨ΋ͷ͸େମओཁػೳʁ ϢʔβʔΛಛఆ͠ ೝূ͢Δ ͲΜͳ Ξχϝ͕͋Δͷ͔ ஌Γ͍ͨ ݟͯΔɺݟ͍ͨɺ ݟͨ Λ؅ཧ͍ͨ͠ Ξχϝ΁ ϨϏϡʔΛ ࢒͍ͨ͠ݟ͍ͨ Τϐιʔυ΁ ϨϏϡʔΛ ࢒͍ͨ͠ݟ͍ͨ ؾʹͳΔ ϢʔβʔΛ ϑΥϩʔ͍ͨ͠

Slide 79

Slide 79 text

طଘػೳ͔ΒϢʔεέʔεΛચ͍ग़ͯ͠ΈΔ Կ͔ಠཱͨ͠΋ͷ͸ͳ͍͔୳ͯ͠ΈΔ ϢʔβʔΛಛఆ͠ ೝূ͢Δ ͲΜͳ Ξχϝ͕͋Δͷ͔ ஌Γ͍ͨ ݟͯΔɺݟ͍ͨɺ ݟͨ Λ؅ཧ͍ͨ͠ Ξχϝ΁ ϨϏϡʔΛ ࢒͍ͨ͠ݟ͍ͨ Τϐιʔυ΁ ϨϏϡʔΛ ࢒͍ͨ͠ݟ͍ͨ ؾʹͳΔ ϢʔβʔΛ ϑΥϩʔ͍ͨ͠

Slide 80

Slide 80 text

طଘػೳ͔ΒϢʔεέʔεΛચ͍ग़ͯ͠ΈΔ ΞχϝΛ୳͢ͱ͍͏ͷ͸ػೳͱͯ͠ಠཱ͍ͯͦ͠͏ ϢʔβʔΛಛఆ͠ ೝূ͢Δ ͲΜͳ Ξχϝ͕͋Δͷ͔ ஌Γ͍ͨ ݟͯΔɺݟ͍ͨɺ ݟͨ Λ؅ཧ͍ͨ͠ Ξχϝ΁ ϨϏϡʔΛ ࢒͍ͨ͠ݟ͍ͨ Τϐιʔυ΁ ϨϏϡʔΛ ࢒͍ͨ͠ݟ͍ͨ ؾʹͳΔ ϢʔβʔΛ ϑΥϩʔ͍ͨ͠

Slide 81

Slide 81 text

طଘػೳ͔ΒϢʔεέʔεΛચ͍ग़ͯ͠ΈΔ ݟͯΔɺݟ͍ͨɺݟͨͷ؅ཧػೳ͸·ͨಠཱ͍ͯ͠Δ ϢʔβʔΛಛఆ͠ ೝূ͢Δ ͲΜͳ Ξχϝ͕͋Δͷ͔ ஌Γ͍ͨ Ξχϝ΁ ϨϏϡʔΛ ࢒͍ͨ͠ݟ͍ͨ Τϐιʔυ΁ ϨϏϡʔΛ ࢒͍ͨ͠ݟ͍ͨ ؾʹͳΔ ϢʔβʔΛ ϑΥϩʔ͍ͨ͠ ݟͯΔɺݟ͍ͨɺ ݟͨ Λ؅ཧ͍ͨ͠

Slide 82

Slide 82 text

طଘػೳ͔ΒϢʔεέʔεΛચ͍ग़ͯ͠ΈΔ ϢʔβʔΛಛఆ͠ ೝূ͢Δ ͲΜͳ Ξχϝ͕͋Δͷ͔ ஌Γ͍ͨ ݟͯΔɺݟ͍ͨɺ ݟͨ Λ؅ཧ͍ͨ͠ Ξχϝ΁ ϨϏϡʔΛ ࢒͍ͨ͠ݟ͍ͨ Τϐιʔυ΁ ϨϏϡʔΛ ࢒͍ͨ͠ݟ͍ͨ ؾʹͳΔ ϢʔβʔΛ ϑΥϩʔ͍ͨ͠ Ξχϝ͔Τϐιʔυ΁ͷϨϏϡʔ͸ػೳͱͯ͠͸ είʔϓ͕ҧ͏͚ͩͰҰͭͷػೳͩΖ͏

Slide 83

Slide 83 text

طଘػೳ͔ΒϢʔεέʔεΛચ͍ग़ͯ͠ΈΔ ͲΜͳ Ξχϝ͕͋Δͷ͔ ஌Γ͍ͨ ݟͯΔɺݟ͍ͨɺ ݟͨ Λ؅ཧ͍ͨ͠ Ξχϝ΁ ϨϏϡʔΛ ࢒͍ͨ͠ݟ͍ͨ Τϐιʔυ΁ ϨϏϡʔΛ ࢒͍ͨ͠ݟ͍ͨ ͨͩ͠ɺ͜ͷࡾͭͷػೳ͸ґଘؔ܎͕͋Γͦ͏ͩ

Slide 84

Slide 84 text

طଘػೳ͔ΒϢʔεέʔεΛચ͍ग़ͯ͠ΈΔ ೋͭͷػೳ͕Ұͭͷػೳʹґଘ͍ͯ͠Δ Ξχϝݕࡧػೳ ࢹௌ؅ཧ ϨϏϡʔػೳ ґଘ ґଘ

Slide 85

Slide 85 text

طଘػೳ͔ΒϢʔεέʔεΛચ͍ग़ͯ͠ΈΔ ·ͨ৽͍͠ػೳΛ࡞Δͱ͖΋͜͜ʹґଘ͢Δ͜ͱͰ ࡞Δ͜ͱ͕༰қͦ͏ Ξχϝݕࡧػೳ ࢹௌ؅ཧ ϨϏϡʔػೳ ґଘ ґଘ ʁ৽͍͠ػೳʁ ґଘ

Slide 86

Slide 86 text

طଘػೳ͔ΒϢʔεέʔεΛચ͍ग़ͯ͠ΈΔ ໊ݴڞ༗ػೳͱ͔ʂ Ξχϝݕࡧػೳ ݟ͍ͨɺݟͯ ΔɺݟͨΛ ؅ཧ ϨϏϡʔػೳ ґଘ ґଘ ໊ݴڞ༗ػೳ ґଘ

Slide 87

Slide 87 text

࣍͸ w ໰୊ྖҬͱ͍͏؍఺ͰͷϢʔεέʔεɾґଘؔ ܎ͷચ͍ग़͕͠ऴΘͬͨΒɺ࣮૷্ґଘ͠ͳ͚ Ε͹ͳΒͳ͍ͱ͜ΖΛߟྀ͢Δ w ࠓճͷ৔߹ɺೝূػߏ͸"1*ͷؔ܎্Ͳͷ"1* Λୟ͘ʹ΋࢖͏ͷͰɺجຊతʹ͸΄ͱΜͲͷϞ δϡʔϧ͕ґଘ͢Δ

Slide 88

Slide 88 text

͜͏ͳͬͨ XPSLEJDUJPOBSZ Ξχϝݕࡧ watch management (ࢹௌ؅ཧ) record (ϨϏϡʔ) core app auth social network (ϑΥϩʔػೳ)

Slide 89

Slide 89 text

BOOJDUͷྫ·ͱΊ w ϢʔεέʔεΛચ͍ग़ͯ͠ά ϧʔϐϯάͯ͠ґଘؔ܎Λߟ͑ͯ Έͨ w ΞχϝݕࡧϞδϡʔϧ͕ج൫తػೳͰ͋Δ w ج൫ػೳͷ্ʹࢹௌ؅ཧػೳͱϨϏϡʔػೳ͕ϓϥάΠϯͰ͋ Δͱղऍͨ͠ w TPDJBMOFUXPSLϞδϡʔϧ͸࡞඼ͱ͸ಠཱͨ͠΋ͷͱղऍͨ͠ w ະ׬੒Ͱ͕͢ԼهʹϦϙδτϦ͕͋Γ·͢ IUUQTHJUIVCDPNLHNZTIJOBOOJDUBOESPJE

Slide 90

Slide 90 text

࣮ࡍʹϚϧνϞδϡʔϧʹͯ͠ΈΔ

Slide 91

Slide 91 text

/FX.PEVMF͢Ε͹׬ྃ

Slide 92

Slide 92 text

'JMF/FX.PEVMF

Slide 93

Slide 93 text

"OESPJE-JCSBSZPS+BWB-JCSBSZΛબ୒

Slide 94

Slide 94 text

͜ΕͰϚϧνϞδϡʔϧʹ

Slide 95

Slide 95 text

͜ΕͰϚϧνϞδϡʔϧʹ ࢹೝੑ͕ѱ͍ͷͰ NPEVMFTEJSΛ࡞ͬͯ ͦ͜ʹNPEVMFΛ·ͱΊͯΈΑ͏

Slide 96

Slide 96 text

NPEVMFTEJSΛ࡞͍ͬͯ͘ include ':app', ':hoge', ':fuga', ‘:piyo' def modulesRopotDir = new File('modules') project(':hoge').projectDir = new File(modulesRopotDir, 'hoge') project(':fuga').projectDir = new File(modulesRopotDir, 'fuga') project(':piyo').projectDir = new File(modulesRopotDir, 'piyo') TFUUJOHTHSBEMFΛԼهͷΑ͏ʹ͢Δ

Slide 97

Slide 97 text

NPEVMFTEJSʹҠಈͯ͠׬ྃʂ

Slide 98

Slide 98 text

Ϟδϡʔϧؒͷ࿈ܞʹ͍ͭͯ

Slide 99

Slide 99 text

$BTF ϞδϡʔϧΛ·͕ͨͬͯ৘ใΛද͍ࣔͨ͠ͱ͖

Slide 100

Slide 100 text

ͨͱ͑͹͜ͷը໘ ฐࣾΞϓϦ ελσΟαϓϦ&/(-*4) 50&*$š-3ςετରࡦ ͷͱ͋Δ̍ը໘

Slide 101

Slide 101 text

ͨͱ͑͹͜ͷը໘ ͍ΖΜͳ৘ใ͕͋Γ·͢

Slide 102

Slide 102 text

ͨͱ͑͹͜ͷը໘ ˡࠓिͷֶशϓϥϯʹର͢Δ ɹਐ௙৘ใ

Slide 103

Slide 103 text

ͨͱ͑͹͜ͷը໘ ˡࠓ·Ͱͷֶश࣮੷ αʔϏεશମ

Slide 104

Slide 104 text

ͨͱ͑͹͜ͷը໘ ˡΧϦΩϡϥϜϝχϡʔ

Slide 105

Slide 105 text

ͨͱ͑͹͜ͷը໘ ૝૾ͯ͠ݟ͍ͯͩ͘͞ɻ ୟ͘"1*͸ෳ਺ɻ ͍ΖΜͳλονΠϕϯτ͕ൃ ੜɻ ͜͜ͷ࣮૷ɺ޻෉ͳͩ͠ͱେ มͦ͏͡Ό͋Γ·ͤΜ͔ʁ

Slide 106

Slide 106 text

ͨͱ͑͹͜ͷը໘ ˡDPSFNPEVMF $VSSJDVMVN.FOV'SBHNFOU ˡTUVEZ3FDPSENPEVMF 4UVEZ3FDPSE4VNNBSZ'SBHNFOU ˡMFBSOJOH1MBONPEVMF -FBSOJOH1SPHSFTT'SBHNFOU

Slide 107

Slide 107 text

ͨͱ͑͹͜ͷը໘ ҰͭҰͭͷ࣮૷͸؆୯ɻ ֤NPEVMFͷGSBHNFOUͰ࣮ ૷ͯ͠ɺ͓·ͱΊը໘Ͱ͸ ͦΕͧΕͷGSBHNFOUΛΞ λον͢Δ͚ͩʹ͢Δɻ

Slide 108

Slide 108 text

ͨͱ͑͹͜ͷը໘ ͜ΕͰ೉͘͠ͳ͍☺

Slide 109

Slide 109 text

$BTF ଞϞδϡʔϧ͔Β৘ใΛऔಘ͍ͨ͠

Slide 110

Slide 110 text

ଞϞδϡʔϧ͔Β৘ใΛऔಘ͍ͨ͠ ྫ͑͹ɺ͋ΔϞδϡʔϧ͕τʔΫϯΛ ࢖ͬͨ"1*Λୟ͖͍ͨͱ͠·͢ɻ ͢ͰʹτʔΫϯͷऔಘ΍อଘͷ੹຿Λ ΋ͭBVUIϞδϡʔϧ͕͋Δͱͯ͠ɺͲ͏ ΍ͬͯBVUIϞδϡʔϧͱ࿈ܞ͢Δͷ͔ ͱ͍͏͜ͱΛߟ͑·͢ɻ

Slide 111

Slide 111 text

ଞϞδϡʔϧ͔Β৘ใΛऔಘ͍ͨ͠ JOGSB EPNBJO ্Ґ૚ ೝূ "DDFTT 5PLFO औಘ αʔϏε JOGSB EPNBJO ্Ґ૚ ଞ "1* ໰͍߹Θͤ τʔΫϯ ࣮͸ɺ͢Ͱʹઌ΄Ͳ͞Βͬͱग़͖ͯͨ ԼهͷਤͷΑ͏ʹͯ͠·͢ɻ

Slide 112

Slide 112 text

ଞϞδϡʔϧ͔Β৘ใΛऔಘ͍ͨ͠ JOGSB EPNBJO ্Ґ૚ ೝূ "DDFTT 5PLFO औಘ αʔϏε JOGSB EPNBJO ্Ґ૚ ଞ "1* ໰͍߹Θͤ ଞͷϞδϡʔϧ͔ΒɺEPNBJO΍ΒJOGSB΍ΒͳΜ Ͱ΋ݟ͑ΔΑ͏ʹ͢ΔͱࢄΒ͔ͬͯ͠·͏ͷͰ

Slide 113

Slide 113 text

ଞϞδϡʔϧ͔Β৘ใΛऔಘ͍ͨ͠ JOGSB EPNBJO ্Ґ૚ ೝূ 7JFXͱ4FSWJDF͚ͩΛެ։ ݟ͑ͳ͍Α͏ʹ͢Δ 7JFX 4FSWJDF

Slide 114

Slide 114 text

ଞϞδϡʔϧ͔Β৘ใΛऔಘ͍ͨ͠ JOGSB EPNBJO ্Ґ૚ ೝূ 4FSWJDF͸ɺ8FCͰݴ͏ॴͷ"1*ͷΑ͏ͳଘࡏͱͯ͠ѻ͏ɻ EPNBJOͷ΋ͷΛ࢖ΘͣʹQSJNJUJWFͳܕɺ΋͘͠͸%50Λ ࡞ͬͯ΍ΓऔΓΛ͢ΔΑ͏ʹ͢Δɻ ݟ͑ͳ͍Α͏ʹ͢Δ 7JFX "DUJWJUZ 'SBHNFOU 7JFX 4FSWJDF

Slide 115

Slide 115 text

ଞϞδϡʔϧ͔Β৘ใΛऔಘ͍ͨ͠ ͜ΕʹΑͬͯɺϞδϡʔϧؒͷ΍Γͱ Γʹடং͕ੜ·Ε·͢ɻ JOGSB EPNBJO ্Ґ૚ ೝূ "DDFTT 5PLFO औಘ αʔϏε JOGSB EPNBJO ্Ґ૚ ଞ "1* ໰͍߹Θͤ τʔΫϯ ݟ͑ͳ͍Α͏ʹ͢Δ 4FSWJDF

Slide 116

Slide 116 text

·ͱΊ

Slide 117

Slide 117 text

·ͱΊ w ϚϧνϞδϡʔϧԽ͢Δ͜ͱʹΑͬͯɺ֤ػೳͷӨڹൣ ғΛ࠷খԽͰ͖Δ w ϚϧνϞδϡʔϧͷϏϧυ͕ૣ͘ͳͬͨΓͱ೾͕དྷ͍ͯ Δ w EBUBCJOEJOH͸ਏ͍͕ղফதͰ͋Δ w -FU`T/FX.PEVMF w Ϟδϡʔϧؒͷ࿈ܞํ๏ʹ͍ͭͯೋͭͷํ๏Λ঺հͨ͠

Slide 118

Slide 118 text

͝੩ௌ͋Γ͕ͱ͏͍͟͝·ͨ͠ʂʂ Լه͸࿩͔͚ͨͬͨ͠Ͳ࣌ؒͷ౎߹্࿩ͤͳ͔ͬͨ͜ͱͰ͢ɻ w ຖճ࡞Δఆ൪Ϟδϡʔϧ w ϚϧνϞδϡʔϧಋೖͯ͠૝ఆͯ͠ͳ͔ͬͨΑ͔ͬͨ఺ w طଘϓϩδΣΫτΛϚϧνϞδϡʔϧԽ͍ͯ͘͠࿩ ΦϑΟεΞϫʔ΍ύʔςΟʔͰั·͑ͯฉ͍͍ͯͩ͘͞ɻ