Pro Yearly is on sale from $80 to $50! »

multi-module-no-susume

 multi-module-no-susume

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

3c4e24fd827c789cb67a9f759f057b06?s=128

Shinnosuke Kugimiya

February 08, 2018
Tweet

Transcript

  1. ϚϧνϞδϡʔϧͷ͢ʍΊ LHNZTIJO!%SPJE,BJHJ%BZ3PPNd ͜ͷηογϣϯͷΰʔϧ ࿩͞ͳ͍͜ͱ w ϚϧνϞδϡʔϧͰ࣮૷͢Δ͜ ͱͷ༗ޮੑΛཧղ͍ͨͩ͘ w ϚϧνϞδϡʔϧͰͷ࣮૷Πϝʔ δΛ࣋ͬͯ΋Β͏

    w *OTUBOU"QQTʹ͍ͭͯৄ͘͠ w ,PUMJOOBUJWFʹ͍ͭͯৄ͘͠ w ϚϧνϞδϡʔϧ΍ͬͯߦ্͘ Ͱͷࡉ͔͍͚Ͳ༗ޮͳUJQT Φ ϑΟεΞϫʔ΍ύʔςΟʔͰฉ͍ͯͩ͘ ͍͞
  2. ϚϧνϞδϡʔϧͷ ͢ʍΊ LHNZTIJO!%SPJE,BJHJ%BZ3PPNd

  3. ࣗݾ঺հ

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

    ύʔτφʔζ
  5. "HFOEB

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

    ࣮ࡍʹϚϧνϞδϡʔϧʹͯ͠ΈΔ w Ϟδϡʔϧؒͷ࿈ܞʹ͍ͭͯ
  7. ͳͥϚϧνϞδϡʔϧԽ͢Δͷ͔

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

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

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

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

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

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

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

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

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

  17. ͦͷ޻෉ͷҰͭͱͯ͠ͷϚϧνϞδϡʔϧԽ wओཁػೳ wϩάΠϯ wΞοϓσʔτ w͓஌Βͤ wϢʔβʔϩά ओཁػೳ ϩάΠϯ Ξοϓσʔτ ͓஌Βͤ

    Ϣʔβʔϩά ࠞͥΔඞཁͷͳ͍΋ͷΛϞδϡʔϧϨϕϧͰ෼͚ͯ ͦΕͧΕӨڹൣғΛ࠷খԽ͢Δ
  18. ϚΠΫϩαʔϏεԽ͕ਐΉʹ͕ͨͬͯ͠ɺ ҙຯͷ͋Δ·ͱ·Γ͝ͱʹΤϯυϙΠϯτ͕ Ͱ͖Δ͜ͱ͕͋Δ

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

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

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

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

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

  24. "OESPJE(SBEMF1MVHJO

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

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

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

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

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

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

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

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

    EPNBJO ্Ґ૚ ଞ "1* ໰͍߹Θͤ τʔΫϯ ผϞδϡʔϧʹ෼͚Δ͜ͱͰ ϨΠϠʔͷ੍໿Λอͭ͜ͱ͕Ͱ͖Δ͚ͩͰͳ͘ ҙຯ͋Δ͔ͨ·ΓͰ·ͱΊΔ͜ͱ͕Ͱ͖Δ
  34. ϚϧνϞδϡʔϧԽ͢ΔσϝϦοτ

  35. EBUBCJOEJOHͱͷ૬ੑ͕ѱ͍

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

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

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

  39. EBUBCJOEJOHͱͷ૬ੑ͕ѱ͍ྫ @BindingAdapter("items") public void setItems( RecyclerView view, List<String> items )

    { : } dependencies { : implementation “com.android.support:recyclerview-v7:26.1.0" : } NPEVMFଆͷEFQFEFODJFTʹSFDZDMFSWJFXΛ௥Ճ #JOEJOH"EBQUFS࡞੒
  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
  41. EBUBCJOEJOHͱͷ૬ੑ͕ѱ͍ྫ BQQ NPEVMF CJOEJOHPGNPEVMF CJOEJOHPGNPEVMF BQQCVJMEʹ NPEVMFͷCJOEJOHܥͷ Ϋϥε͕ੜ੒͞ΕΔ͕ BQQʹSFDZDMFS7JFXͷ EFQFOEFODZ͕ͳ͍ͨΊ

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

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

  44. %BUB#JOEJOH$PNQJMFS7

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

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

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

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

  49. ϨΠϠʔͰ෼͚Δ

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

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

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

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

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

  55. ෼͚ํͷ͓͢͢Ί

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

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

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

    ্Ґ૚ JOGSB EPNBJO ্Ґ૚
  59. τϨʔχϯά ΞΧ΢ϯτ ֶशه࿥ EPNBJO 6* EPNBJO 6* EPNBJO 6* lϢʔβʔϩά͸6*૚Ͱ͔͠ૹΒͳ͍z

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

    Ϣʔβʔϩάʹґଘ Ϣʔβʔϩάʹґଘ ϨΠϠʔͰ੾Βͳ͍৔߹ɺ ϓϩάϥϚʹΑͬͯEPNBJOͰૹͬͨΓ6*ͰૹͬͨΓ ͱΧΦεʹͳΓ͔Ͷͳ͍ ݫີʹ΍ΔͳΒϨΠϠʔ ҙຯ͋Δ·ͱ·Γ
  61. ͱ͸͍͑ w ΦʔόʔΩϧ͔Ͳ͏͔͸ओ؍ɺνʔϜͷϝϯόʔ ͷೳྗͳͲͳͲʹΑΔͷͰ֤νʔϜͰ൑அΛ w ໨҆ͱͯ͠ओཁػೳ͕Ҏ্ͷಠཱͨ͠΋ͷͰͰ ͖ͯΔͳΒҙຯ͋Δ·ͱ·ΓͰ෼͚ͨํ͕͍͍ ͔΋ w νʔϜ͕ະख़ͳΒɺϨΠϠʔͰ෼͚ͯґଘؔ܎

    Ͱ੍໿Λڧ੍͢ΔͱฏԺΛอͯ·͢
  62. $BTF"OOJDU

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

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

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

  66. ϩάΠϯϩάΞ΢τ

  67. ΞχϝΛݕࡧ

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

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

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

  71. ϢʔβʔΛϑΥϩʔ

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

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

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

  75. طଘػೳ͔ΒϢʔεέʔεΛચ͍ग़ͯ͠ΈΔ ϢʔβʔΛಛఆ͠ ೝূ͢Δ ͲΜͳ Ξχϝ͕͋Δͷ͔ ஌Γ͍ͨ ݟͯΔɺݟ͍ͨɺ ݟͨ Λ؅ཧ͍ͨ͠ Ξχϝ΁

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

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

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

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

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

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

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

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

    Τϐιʔυ΁ ϨϏϡʔΛ ࢒͍ͨ͠ݟ͍ͨ ͨͩ͠ɺ͜ͷࡾͭͷػೳ͸ґଘؔ܎͕͋Γͦ͏ͩ
  84. طଘػೳ͔ΒϢʔεέʔεΛચ͍ग़ͯ͠ΈΔ ೋͭͷػೳ͕Ұͭͷػೳʹґଘ͍ͯ͠Δ Ξχϝݕࡧػೳ ࢹௌ؅ཧ ϨϏϡʔػೳ ґଘ ґଘ

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

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

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

  88. ͜͏ͳͬͨ XPSLEJDUJPOBSZ Ξχϝݕࡧ watch management (ࢹௌ؅ཧ) record (ϨϏϡʔ) core app

    auth social network (ϑΥϩʔػೳ)
  89. BOOJDUͷྫ·ͱΊ w ϢʔεέʔεΛચ͍ग़ͯ͠ά ϧʔϐϯάͯ͠ґଘؔ܎Λߟ͑ͯ Έͨ w ΞχϝݕࡧϞδϡʔϧ͕ج൫తػೳͰ͋Δ w ج൫ػೳͷ্ʹࢹௌ؅ཧػೳͱϨϏϡʔػೳ͕ϓϥάΠϯͰ͋ Δͱղऍͨ͠

    w TPDJBMOFUXPSLϞδϡʔϧ͸࡞඼ͱ͸ಠཱͨ͠΋ͷͱղऍͨ͠ w ະ׬੒Ͱ͕͢ԼهʹϦϙδτϦ͕͋Γ·͢ IUUQTHJUIVCDPNLHNZTIJOBOOJDUBOESPJE
  90. ࣮ࡍʹϚϧνϞδϡʔϧʹͯ͠ΈΔ

  91. /FX.PEVMF͢Ε͹׬ྃ

  92. 'JMF/FX.PEVMF

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

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

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

  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ΛԼهͷΑ͏ʹ͢Δ
  97. NPEVMFTEJSʹҠಈͯ͠׬ྃʂ

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    EPNBJO ্Ґ૚ ଞ "1* ໰͍߹Θͤ ଞͷϞδϡʔϧ͔ΒɺEPNBJO΍ΒJOGSB΍ΒͳΜ Ͱ΋ݟ͑ΔΑ͏ʹ͢ΔͱࢄΒ͔ͬͯ͠·͏ͷͰ
  113. ଞϞδϡʔϧ͔Β৘ใΛऔಘ͍ͨ͠ JOGSB EPNBJO ্Ґ૚ ೝূ 7JFXͱ4FSWJDF͚ͩΛެ։ ݟ͑ͳ͍Α͏ʹ͢Δ 7JFX 4FSWJDF

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

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

    αʔϏε JOGSB EPNBJO ্Ґ૚ ଞ "1* ໰͍߹Θͤ τʔΫϯ ݟ͑ͳ͍Α͏ʹ͢Δ 4FSWJDF
  116. ·ͱΊ

  117. ·ͱΊ w ϚϧνϞδϡʔϧԽ͢Δ͜ͱʹΑͬͯɺ֤ػೳͷӨڹൣ ғΛ࠷খԽͰ͖Δ w ϚϧνϞδϡʔϧͷϏϧυ͕ૣ͘ͳͬͨΓͱ೾͕དྷ͍ͯ Δ w EBUBCJOEJOH͸ਏ͍͕ղফதͰ͋Δ w

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