$30 off During Our Annual Pro Sale. View Details »

multi-module-no-susume

 multi-module-no-susume

DroidKaigi 2018 - Day1 Room1 16:50~ にて発表する内容です

Shinnosuke Kugimiya

February 08, 2018
Tweet

More Decks by Shinnosuke Kugimiya

Other Decks in Programming

Transcript

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

    View Slide

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

    View Slide

  3. ࣗݾ঺հ

    View Slide

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

    View Slide

  5. "HFOEB

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  24. "OESPJE(SBEMF1MVHJO

    View Slide

  25. "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͸ɺେن໛ͳ
    ϚϧνϞδϡʔϧϓϩδΣΫτͷύϑΥʔϚϯε
    Λେ෯ʹ޲্ͤ͞ΔϝδϟʔΞοϓάϨʔυͰ͢
    ɻ

    View Slide

  26. ,PUMJO/BUJWF

    View Slide

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

    View Slide

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

    View Slide

  29. ݸਓతମݧஊʹجͮ͘࿩

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  33. ࣗ෼͕ϚϧνϞδϡʔϧʹͨ͠ཧ༝
    JOGSB
    EPNBJO
    ্Ґ૚
    ೝূ
    "DDFTT
    5PLFO
    औಘ
    αʔϏε
    JOGSB
    EPNBJO
    ্Ґ૚

    "1*
    ໰͍߹Θͤ
    τʔΫϯ
    ผϞδϡʔϧʹ෼͚Δ͜ͱͰ
    ϨΠϠʔͷ੍໿Λอͭ͜ͱ͕Ͱ͖Δ͚ͩͰͳ͘
    ҙຯ͋Δ͔ͨ·ΓͰ·ͱΊΔ͜ͱ͕Ͱ͖Δ

    View Slide

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

    View Slide

  35. EBUBCJOEJOHͱͷ૬ੑ͕ѱ͍

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  39. 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࡞੒

    View Slide

  40. 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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  44. %BUB#JOEJOH$PNQJMFS7

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  49. ϨΠϠʔͰ෼͚Δ

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  55. ෼͚ํͷ͓͢͢Ί

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  62. $BTF"OOJDU

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  66. ϩάΠϯϩάΞ΢τ

    View Slide

  67. ΞχϝΛݕࡧ

    View Slide

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

    View Slide

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

    View Slide

  70. Τϐιʔυ͝ͱʹه࿥

    View Slide

  71. ϢʔβʔΛϑΥϩʔ

    View Slide

  72. Ϟδϡʔϧʹ෼͚͍ͯ͘

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  88. ͜͏ͳͬͨ
    XPSLEJDUJPOBSZ Ξχϝݕࡧ

    watch
    management
    (ࢹௌ؅ཧ)
    record
    (ϨϏϡʔ)
    core
    app
    auth
    social
    network
    (ϑΥϩʔػೳ)

    View Slide

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

    View Slide

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

    View Slide

  91. /FX.PEVMF͢Ε͹׬ྃ

    View Slide

  92. 'JMF/FX.PEVMF

    View Slide

  93. "OESPJE-JCSBSZPS+BWB-JCSBSZΛબ୒

    View Slide

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

    View Slide

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

    ࢹೝੑ͕ѱ͍ͷͰ
    NPEVMFTEJSΛ࡞ͬͯ
    ͦ͜ʹNPEVMFΛ·ͱΊͯΈΑ͏

    View Slide

  96. 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ΛԼهͷΑ͏ʹ͢Δ

    View Slide

  97. NPEVMFTEJSʹҠಈͯ͠׬ྃʂ

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  111. ଞϞδϡʔϧ͔Β৘ใΛऔಘ͍ͨ͠
    JOGSB
    EPNBJO
    ্Ґ૚
    ೝূ
    "DDFTT
    5PLFO
    औಘ
    αʔϏε
    JOGSB
    EPNBJO
    ্Ґ૚

    "1*
    ໰͍߹Θͤ
    τʔΫϯ
    ࣮͸ɺ͢Ͱʹઌ΄Ͳ͞Βͬͱग़͖ͯͨ
    ԼهͷਤͷΑ͏ʹͯ͠·͢ɻ

    View Slide

  112. ଞϞδϡʔϧ͔Β৘ใΛऔಘ͍ͨ͠
    JOGSB
    EPNBJO
    ্Ґ૚
    ೝূ
    "DDFTT
    5PLFO
    औಘ
    αʔϏε
    JOGSB
    EPNBJO
    ্Ґ૚

    "1*
    ໰͍߹Θͤ
    ଞͷϞδϡʔϧ͔ΒɺEPNBJO΍ΒJOGSB΍ΒͳΜ
    Ͱ΋ݟ͑ΔΑ͏ʹ͢ΔͱࢄΒ͔ͬͯ͠·͏ͷͰ

    View Slide

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

    View Slide

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

    4FSWJDF

    View Slide

  115. ଞϞδϡʔϧ͔Β৘ใΛऔಘ͍ͨ͠
    ͜ΕʹΑͬͯɺϞδϡʔϧؒͷ΍Γͱ
    Γʹடং͕ੜ·Ε·͢ɻ
    JOGSB
    EPNBJO
    ্Ґ૚
    ೝূ
    "DDFTT
    5PLFO
    औಘ
    αʔϏε
    JOGSB
    EPNBJO
    ্Ґ૚

    "1*
    ໰͍߹Θͤ
    τʔΫϯ
    ݟ͑ͳ͍Α͏ʹ͢Δ
    4FSWJDF

    View Slide

  116. ·ͱΊ

    View Slide

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

    View Slide

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

    View Slide