継続的に機能開発を進めながら行うマルチモジュール化

 継続的に機能開発を進めながら行うマルチモジュール化

A continuous process of modularization with feature development / 継続的に機能開発を進めながら行うマルチモジュール化

DroidKaigi2020 にて行われる予定だったスライドの日本語訳versionです.

2017年頃からアプリケーションのマルチモジュール化による利点が多く得られるようになった.特に「差分ビルドのビルド時間短縮化」「InstantAppやDynamicFeatureModuleの導入可能」「モジュール依存関係グラフのDAG化」といった利点が語られる.これらの利点は肥大化したアプリケーション上で高速に開発を行う上での助けになったり,ユーザ体験を向上させる手助けとなったりする.

一方で,これまで大部分をアプリケーションモジュール(:app)で開発されてきたアプリケーションを,容易にマルチモジュール化することは難しい.特にMVVMやFluxといったルールを明確化したアーキテクチャに乗っていない場合は問題が顕著だ.また,並行してマルチモジュール化とは本質的に無関係な機能改善を進めていく必要がある場合,問題はさらにややこしくなる.

本セッションでは上に挙げた実体験を基にどのようにしてマルチモジュール化を進めていったのかを時系列順に,そのハマりどころと解決方法を中心に紹介する.

1. What is a multi-module app? / マルチモジュール化とは?
2. The first step is :app to :legacy / はじめの一歩は:appから:legacyへ
3. A strategy of Gradle in multi-module app / マルチモジュールとGradle戦略
4. Modularization as refactoring / リファクタリングとしてのマルチモジュール化
5. Modularization and Android Jetpack / Jetpackとマルチモジュール
6. A continuous process of modularization with feature development
/ 継続的に機能開発を行いながら進めるために

A445824f9bb334ec104f5c1c7b67fee2?s=128

Kazuki Chigita

February 20, 2020
Tweet

Transcript

  1. ©2020 Wantedly, Inc. Feb 20, 2020 - Kazuki Chigita (@chigichan24)

    Room AppBars ܧଓతʹ
 ػೳ։ൃΛਐΊͳ͕Βߦ͏
 ϚϧνϞδϡʔϧԽ
  2. ©2020 Wantedly, Inc. A continuous process of modularization with feature

    development Feb 20, 2020 - Kazuki Chigita (@chigichan24) Room AppBars
  3. ©2020 Wantedly, Inc. Kazuki Chigita / @chigichan24 Graduate student at

    University of Tsukuba #Android #Kotlin #ApplicationArchitecture #BeyondLegacyCode #MobileInfra #ImageProcessing 1
  4. ©2020 Wantedly, Inc. Kazuki Chigita / @chigichan24 Graduate student at

    University of Tsukuba #Android #Kotlin #ApplicationArchitecture #BeyondLegacyCode #MobileInfra #ImageProcessing 2 Πϯλʔϯγοϓ
 Ͱͷ੒Ռ
  5. ©2020 Wantedly, Inc. 1. What is a multi-module app? /

    ϚϧνϞδϡʔϧԽͱ͸ʁ 2. The first step is :app to :legacy / ͸͡ΊͷҰา͸:app͔Β:legacy΁ • AndroidΛਖ਼͘͠ཧղ͠ͳ͍ͱϋϚΔ࿩ • ࣄྫ঺հ 3. A strategy of Gradle in multi-module app / ϚϧνϞδϡʔϧͱGradleઓུ • Flavor / BuildTypeपΓ͸͜͏͠Α͏ • Α͘࢖͏ઃఆͷڞ༗Λߦ͏ Outline ( 1 / 2 ) 3
  6. ©2020 Wantedly, Inc. 4. Modularization as refactoring / ϦϑΝΫλϦϯάͱͯ͠ͷϚϧνϞδϡʔϧԽ •

    བྷΈ߹ͬͨෳࡶͳؔ܎Λղ͖΄͙ͨ͢ΊʹͰ͖Δ͜ͱ 5. Modularization and Android Jetpack / JetpackͱϚϧνϞδϡʔϧ • NavigationͷಋೖͱޮՌ • ࣄྫ঺հ 6. A continuous process of modularization with feature development
 / ܧଓతʹػೳ։ൃΛߦ͍ͳ͕ΒਐΊΔͨΊʹ • ҰาҰาਐΊΔϞδϡʔϧԽ
 Outline ( 2 / 2 ) 4
  7. ©2020 Wantedly, Inc. Outline 5 Section2 Section3 Section4 Section5 Section6

    Section 1
  8. ©2020 Wantedly, Inc. Outline 6 Section 1 ϚϧνϞδϡʔϧԽͱ͸ʁ ؆୯ʹ֓ཁ΍ར఺ʹ͍ͭͯ৮Ε·͢ɽ Section2

    Section3 Section4 Section5 Section6
  9. ©2020 Wantedly, Inc. Section2 Outline 7 Section3 Section4 Section5 Section6

    Section 1 ͸͡ΊͷҰา໨ ͜Ε͔Βͷൃలͷج൫ߗΊ
  10. ©2020 Wantedly, Inc. Section3 Outline 8 Section2 Section4 Section5 Section6

    Section 1 ϚϧνϞδϡʔϧͰͷbuild.gradle implementationͷҧ͍΍ڞ௨Խʹ͍ͭͯ
  11. ©2020 Wantedly, Inc. Section4 Outline 9 Section5 ϚϧνϞδϡʔϧԽ͢ΔͨΊͷ ϦϑΝΫλϦϯάํ๏΍ࣄྫ Section2

    Section3 Section6 Section 1
  12. ©2020 Wantedly, Inc. Section5 Outline 10 Section2 Section3 Section4 Section6

    Section 1 JetPackΛಋೖͯ͠Έͨ࿩ NavigationΛಋೖ͢Δྫ
  13. ©2020 Wantedly, Inc. Section5 Section6 Outline 11 Section2 Section3 Section4

    Section 1 ػೳ։ൃΛਐΊͳ͕Β Ͳ͏ϞδϡʔϧԽ͢Δ͔ʁ
  14. ©2020 Wantedly, Inc. Outline 12 Section2 Section3 Section4 Section5 Section6

    Section 1 શମͷ࿩ͷྲྀΕͱͯ͜͠ͷΑ͏ͳϑϩʔΛ
 ҙࣝ͢Δͱશମͱͯ͠εοΩϦ͠·͢ɽ
  15. ©2020 Wantedly, Inc. 1. What is a multi-module app? /

    ϚϧνϞδϡʔϧԽͱ͸ʁ 2. The first step is :app to :legacy / ͸͡ΊͷҰา͸:app͔Β:legacy΁ • AndroidΛਖ਼͘͠ཧղ͠ͳ͍ͱϋϚΔ࿩ • ࣄྫ঺հ 3. A strategy of Gradle in multi-module app / ϚϧνϞδϡʔϧͱGradleઓུ • Flavor / BuildTypeपΓ͸͜͏͠Α͏ • Α͘࢖͏ઃఆͷڞ༗Λߦ͏ Outline ( 1 / 2 ) 13
  16. ©2020 Wantedly, Inc. 1. What is a multi-module app? /

    ϚϧνϞδϡʔϧԽͱ͸ʁ 2. The first step is :app to :legacy / ͸͡ΊͷҰา͸:app͔Β:legacy΁ • AndroidΛਖ਼͘͠ཧղ͠ͳ͍ͱϋϚΔ࿩ • ࣄྫ঺հ 3. A strategy of Gradle in multi-module app / ϚϧνϞδϡʔϧͱGradleઓུ • Flavor / BuildTypeपΓ͸͜͏͠Α͏ • Α͘࢖͏ઃఆͷڞ༗Λߦ͏ Outline ( 1 / 2 ) 14
  17. ©2020 Wantedly, Inc. 1. What is a multi-module app? ϚϧνϞδϡʔϧԽͱ͸ʁ

  18. ©2020 Wantedly, Inc. 1. What is a multi-module app? /

    ϚϧνϞδϡʔϧԽͱ͸ʁ :app 15
  19. ©2020 Wantedly, Inc. :app ✂ ✂ ✂ ✂ 1. What

    is a multi-module app? / ϚϧνϞδϡʔϧԽͱ͸ʁ 16
  20. ©2020 Wantedly, Inc. ✂ ✂ ✂ :app ✂ 1. What

    is a multi-module app? / ϚϧνϞδϡʔϧԽͱ͸ʁ 17
  21. ©2020 Wantedly, Inc. :app :feature A :feature B :feature C

    :feature D :library X :library Y :library Z :core :constants :hoge :piyo 1. What is a multi-module app? / ϚϧνϞδϡʔϧԽͱ͸ʁ 18
  22. ©2020 Wantedly, Inc. :app :feature A :feature B :feature C

    :feature D :library X :library Y :library Z :core :constants :hoge :piyo 1. What is a multi-module app? / ϚϧνϞδϡʔϧԽͱ͸ʁ 19
  23. ©2020 Wantedly, Inc. :app :feature A :feature B :feature C

    :feature D :library X :library Y :library Z :core :constants :hoge :piyo 1. What is a multi-module app? / ϚϧνϞδϡʔϧԽͱ͸ʁ 20
  24. ©2020 Wantedly, Inc. :feature A App module / ΞϓϦϞδϡʔϧ :app

    Library module / ϥΠϒϥϦϞδϡʔϧ [1] [1] https://developer.android.com/studio/projects/android-library layout΍navigation౳ͷres/ҎԼͷϑΝΠϧٴͼιʔείʔυΛ
 ؚΉ͜ͱ͕Ͱ͖Δ AAR (Android Archive) Ͱ͋Δɽ ࡉ͔ͳ੍໿͸͋Δ͕ɼجຊతʹ͸:appͱಉ༷ʹ࢖͏͜ͱ͕Ͱ͖Δɽ 1. What is a multi-module app? / ϚϧνϞδϡʔϧԽͱ͸ʁ 21
  25. ©2020 Wantedly, Inc. Why? / ͳͥ΍Δͷ͔ʁ

  26. ©2020 Wantedly, Inc. 1. ϞϊϦγοΫͳ؀ڥͰ͸Ͱ͖ͳ͍͜ͱ͕૿͍͑ͯΔ 2. Ϗϧυ͕͔͔࣌ؒΔ 3. ΑΓڧ੍͍໿Λ͔͚͍ͨ 1.

    What is a multi-module app? / ϚϧνϞδϡʔϧԽͱ͸ʁ 22
  27. ©2020 Wantedly, Inc. 1. ϞϊϦγοΫͳ؀ڥͰ͸Ͱ͖ͳ͍͜ͱ͕૿͍͑ͯΔ 2. Ϗϧυ͕͔͔࣌ؒΔ 3. ΑΓڧ੍͍໿Λ͔͚͍ͨ 1.

    What is a multi-module app? / ϚϧνϞδϡʔϧԽͱ͸ʁ 23
  28. ©2020 Wantedly, Inc. 1. ϞϊϦγοΫͳ؀ڥͰ͸Ͱ͖ͳ͍͜ͱ͕૿͍͑ͯΔ :app :feature A :feature C

    Instant App ͷ্ݶ͸10MBͰ͋Δɽ ػೳͷҰ෦Λମݧͤ͞Δ͜ͱ͸UXΛ޲্ͤ͞Δ͜ͱʹܨ͕Δɽ ϚϧνϞδϡʔϧԽ͞Ε͍ͯͳ͍ͱ؆୯ʹࢼ͢͜ͱ͸೉͍͠ɽ Under 4MB ← ࠷௿ݶඞཁͳϞδϡʔϧͷΈΛinclude͢Δɽ ← application Id౳ base ͱͯ͠ඞؚͣΉඞཁ͕͋Δɽ 1. What is a multi-module app? / ϚϧνϞδϡʔϧԽͱ͸ʁ 24
  29. ©2020 Wantedly, Inc. 1. ϞϊϦγοΫͳ؀ڥͰ͸Ͱ͖ͳ͍͜ͱ͕૿͍͑ͯΔ 2. Ϗϧυ͕͔͔࣌ؒΔ 3. ΑΓڧ੍͍໿Λ͔͚͍ͨ 1.

    What is a multi-module app? / ϚϧνϞδϡʔϧԽͱ͸ʁ 25
  30. ©2020 Wantedly, Inc. 2. Ϗϧυ͕͔͔࣌ؒΔ mainframerͷΑ͏ͳ֎෦Ϗϧυ؀ڥΛ࡞ͬͯϚγϯεϖοΫʹΑͬͯղܾ͢Δ → ݶք͕͋Δ → ମݧͱͯ͠ѱ͍ɾมͳϋϚΓํΛ͢Δ͜ͱ΋͋Δɽ

    ΄ͱΜͲมߋͷͳ͍΋ͷʹରͯ͠Ϟδϡʔϧ·Δ͝ͱϏϧυ͢Δͷ͸΋͍ͬͨͳ͍ɽ (ͱ͍ͬͯ΋cache͸͋Δఔ౓ޮ͍͍ͯΔ) ಠཱ͍ͯ͠ΔϞδϡʔϧ͸ฒྻʹϏϧυ͕Ͱ͖Δ͸ͣͳͷʹɼ
 γϯάϧΞϓϦέʔγϣϯͩͱͰ͖ͳ͍ 1. What is a multi-module app? / ϚϧνϞδϡʔϧԽͱ͸ʁ 26
  31. ©2020 Wantedly, Inc. :app :feature A :feature B :feature C

    :feature D :library X :library Y :library Z :core :constants :hoge :piyo 2. Ϗϧυ͕͔͔࣌ؒΔ :hogeΛมߋ͢Δ͚ͩͷͱ͖มߋΛड͚Δͷ͸ ͦΕʹؔ࿈͢Δ΋ͷ͚ͩɽ શؔ͘࿈ͷͳ͍΋ͷ͸ӨڹΛड͚ͣϏϧυ͕૸Βͳ͍ͨΊɼ Ϗϧυ͕࣌ؒૣ͘ͳΔͷ͕جຊతͳݪཧ 1. What is a multi-module app? / ϚϧνϞδϡʔϧԽͱ͸ʁ 27
  32. ©2020 Wantedly, Inc. 2. Ϗϧυ͕͔͔࣌ؒΔ :app :feature A :feature B

    :feature C :feature D :library X :library Y :library Z :core :constants :hoge :piyo :hogeΛมߋ͢Δ͚ͩͷͱ͖มߋΛड͚Δͷ͸ ͦΕʹؔ࿈͢Δ΋ͷ͚ͩɽ શؔ͘࿈ͷͳ͍΋ͷ͸ӨڹΛड͚ͣϏϧυ͕૸Βͳ͍ͨΊɼ Ϗϧυ͕࣌ؒૣ͘ͳΔͷ͕جຊతͳݪཧ 1. What is a multi-module app? / ϚϧνϞδϡʔϧԽͱ͸ʁ 28
  33. ©2020 Wantedly, Inc. 1. ϞϊϦγοΫͳ؀ڥͰ͸Ͱ͖ͳ͍͜ͱ͕૿͍͑ͯΔ 2. Ϗϧυ͕͔͔࣌ؒΔ 3. ΑΓڧ੍͍໿Λ͔͚͍ͨ 1.

    What is a multi-module app? / ϚϧνϞδϡʔϧԽͱ͸ʁ 29
  34. ©2020 Wantedly, Inc. :app :feature A :feature B :feature C

    :feature D :library X :library Y :library Z :core :constants :hoge :piyo 3. ΑΓڧ੍͍໿Λ͔͚͍ͨ ModuleΛϊʔυɼdependencyΛΤοδͱͯ͠ݟͨ࣌ʹ DAGͰ͋Δɽ(Moduleͷ॥؀ࢀর͕ͳ͍) ҙਤ͠ͳ͍ݺͼग़͠Λߏ଄తʹະવʹ๷͙͜ͱ͕Ͱ͖Δ 1. What is a multi-module app? / ϚϧνϞδϡʔϧԽͱ͸ʁ 30
  35. ©2020 Wantedly, Inc. :app :feature A :feature B :feature C

    :feature D :library X :library Y :library Z :core :constants :hoge :piyo 3. ΑΓڧ੍͍໿Λ͔͚͍ͨ ModuleΛϊʔυɼdependencyΛΤοδͱͯ͠ݟͨ࣌ʹ DAGͰ͋Δɽ(Moduleͷ॥؀ࢀর͕ͳ͍) ҙਤ͠ͳ͍ݺͼग़͠Λߏ଄తʹະવʹ๷͙͜ͱ͕Ͱ͖Δ 1. What is a multi-module app? / ϚϧνϞδϡʔϧԽͱ͸ʁ 31
  36. ©2020 Wantedly, Inc. :app :feature A :feature B :feature C

    :feature D :library X :library Y :library Z :core :constants :hoge :piyo 3. ΑΓڧ੍͍໿Λ͔͚͍ͨ ModuleΛϊʔυɼdependencyΛΤοδͱͯ͠ݟͨ࣌ʹ DAGͰ͋Δɽ(Moduleͷ॥؀ࢀর͕ͳ͍) ҙਤ͠ͳ͍ݺͼग़͠Λߏ଄తʹະવʹ๷͙͜ͱ͕Ͱ͖Δ 1. What is a multi-module app? / ϚϧνϞδϡʔϧԽͱ͸ʁ 32
  37. ©2020 Wantedly, Inc. :app :feature A :feature B :feature C

    :feature D :library X :library Y :library Z :core :constants :hoge :piyo 3. ΑΓڧ੍͍໿Λ͔͚͍ͨ ModuleΛϊʔυɼdependencyΛΤοδͱͯ͠ݟͨ࣌ʹ DAGͰ͋Δɽ(Moduleͷ॥؀ࢀর͕ͳ͍) ҙਤ͠ͳ͍ݺͼग़͠Λߏ଄తʹະવʹ๷͙͜ͱ͕Ͱ͖Δ 1. What is a multi-module app? / ϚϧνϞδϡʔϧԽͱ͸ʁ 33
  38. ©2020 Wantedly, Inc. :app :feature A :feature B :feature C

    :feature D :library X :library Y :library Z :core :constants :hoge :piyo :app 1. What is a multi-module app? / ϚϧνϞδϡʔϧԽͱ͸ʁ 34
  39. ©2020 Wantedly, Inc. :app :feature A :feature B :feature C

    :feature D :library X :library Y :library Z :core :constants :hoge :piyo :app Ͳ͏΍ͬͯϚϧνϞδϡʔϧԽ͢Δͷ͔ʁ 1. What is a multi-module app? / ϚϧνϞδϡʔϧԽͱ͸ʁ 35
  40. ©2020 Wantedly, Inc. :app :feature A :feature B :feature C

    :feature D :library X :library Y :library Z :core :constants :hoge :piyo :app Ͳ͏΍ͬͯϚϧνϞδϡʔϧԽ͢Δͷ͔ʁ ܧଓతʹػೳ։ൃΛਐΊͳ͕Β 1. What is a multi-module app? / ϚϧνϞδϡʔϧԽͱ͸ʁ 36
  41. ©2020 Wantedly, Inc. :app :feature A :feature B :feature C

    :feature D :library X :library Y :library Z :core :constants :hoge :piyo :app Ͳ͏΍ͬͯϚϧνϞδϡʔϧԽ͢Δͷ͔ʁ ܧଓతʹػೳ։ൃΛਐΊͳ͕Β 1. What is a multi-module app? / ϚϧνϞδϡʔϧԽͱ͸ʁ 37
  42. ©2020 Wantedly, Inc. 1. What is a multi-module app? /

    ϚϧνϞδϡʔϧԽͱ͸ʁ 2. The first step is :app to :legacy / ͸͡ΊͷҰา͸:app͔Β:legacy΁ • AndroidΛਖ਼͘͠ཧղ͠ͳ͍ͱϋϚΔ࿩ • ࣄྫ঺հ 3. A strategy of Gradle in multi-module app / ϚϧνϞδϡʔϧͱGradleઓུ • Flavor / BuildTypeपΓ͸͜͏͠Α͏ • Α͘࢖͏ઃఆͷڞ༗Λߦ͏ Outline ( 1 / 2 ) 38
  43. ©2020 Wantedly, Inc. 1. What is a multi-module app? /

    ϚϧνϞδϡʔϧԽͱ͸ʁ 2. The first step is :app to :legacy / ͸͡ΊͷҰา͸:app͔Β:legacy΁ • AndroidΛਖ਼͘͠ཧղ͠ͳ͍ͱϋϚΔ࿩ • ࣄྫ঺հ 3. A strategy of Gradle in multi-module app / ϚϧνϞδϡʔϧͱGradleઓུ • Flavor / BuildTypeपΓ͸͜͏͠Α͏ • Α͘࢖͏ઃఆͷڞ༗Λߦ͏ Outline ( 1 / 2 ) 39
  44. ©2020 Wantedly, Inc. 2. The first step is :app to

    :legacy ͸͡ΊͷҰา͸:app͔Β:legacy΁
  45. ©2020 Wantedly, Inc. 2. The first step is :app to

    :legacy / ͸͡ΊͷҰา͸:app͔Β:legacy΁ :app 40
  46. ©2020 Wantedly, Inc. 2. The first step is :app to

    :legacy / ͸͡ΊͷҰา͸:app͔Β:legacy΁ :app ΞϓϦͷΤϯτϦʔϙΠϯτ͚ͩΛ :app ʹ࡞੒͠ɼ શͯͷػೳΛ library_module ʹಈ͔͢ɽ ͸͡Ί͔Β͖Ε͍ʹ෼ׂ͢Δ͜ͱ͸೉͍͠ 41
  47. ©2020 Wantedly, Inc. 2. The first step is :app to

    :legacy / ͸͡ΊͷҰา͸:app͔Β:legacy΁ :app ΞϓϦͷΤϯτϦʔϙΠϯτ͚ͩΛ :app ʹ࡞੒͠ɼ શͯͷػೳΛ library_module ʹಈ͔͢ɽ ࠓޙ͸খ͍ͯ͘͘͞͠ͱ͍͏ࢥ͍ΛࠐΊͯ :legacyͱ໋໊ ͸͡Ί͔Β͖Ε͍ʹ෼ׂ͢Δ͜ͱ͸೉͍͠ 42
  48. ©2020 Wantedly, Inc. 2. The first step is :app to

    :legacy / ͸͡ΊͷҰา͸:app͔Β:legacy΁ :app ͸͡Ί͔Β͖Ε͍ʹ෼ׂ͢Δ͜ͱ͸೉͍͠ ΞϓϦͷΤϯτϦʔϙΠϯτ͚ͩΛ :app ʹ࡞੒͠ɼ શͯͷػೳΛ library_module ʹಈ͔͢ɽ ࠓޙ͸খ͍ͯ͘͘͞͠ͱ͍͏ࢥ͍ΛࠐΊͯ :legacyͱ໋໊ ͳͥ੾Γग़͢ͷ͔ʁ 1. ੾Γग़ͨ͠moduleؒΛભҠ͢ΔͨΊͷ
 ࢓૊Έ͕࡞Γ΍͍͢ɽ(্Ґmodule͕ཉ͍͠) 2. Ϗϧυ࣌͸ϞδϡʔϧΛෳ਺ʹ੾Γग़͠ ͯ΋ɼඞͣ:appΛ௨ΔͷͰେ͖͍ͱ
 ߴ଎Խʹد༩͠ʹ͍͘ 43
  49. ©2020 Wantedly, Inc. 2. The first step is :app to

    :legacy / ͸͡ΊͷҰา͸:app͔Β:legacy΁ :app :app :legacy 44
  50. ©2020 Wantedly, Inc. 2. The first step is :app to

    :legacy / ͸͡ΊͷҰา͸:app͔Β:legacy΁ :app :app :legacy ҰےೄͰ͸ߦ͔ͳ͍ ଟ͘ͷ᠘͕ 45
  51. ©2020 Wantedly, Inc. ੎͍Ͱ΍ͬͨΒࣦഊͨ͠ :app to :legacy ࣄނू

  52. ©2020 Wantedly, Inc. 2. The first step is :app to

    :legacy / ͸͡ΊͷҰา͸:app͔Β:legacy΁ 1. Android Library͔ΒpackageΛ
 ࡞ͬͯ:appͷϑΝΠϧΛcopy & paste ͢Δͱ൵ࢂʹͳΔɽ 46
  53. ©2020 Wantedly, Inc. 2. The first step is :app to

    :legacy / ͸͡ΊͷҰา͸:app͔Β:legacy΁ srcͷมߋཤྺ͕ফ͑ͯ͠·͏ɽ Last Modified͕શͯchigichan24ʹ 47
  54. ©2020 Wantedly, Inc. 2. The first step is :app to

    :legacy / ͸͡ΊͷҰา͸:app͔Β:legacy΁ build.gradleΛฤू͢ΔΑ͏ʹ͠Α͏ʂ 48
  55. ©2020 Wantedly, Inc. 2. The first step is :app to

    :legacy / ͸͡ΊͷҰา͸:app͔Β:legacy΁ build.gradleΛฤू͢ΔΑ͏ʹ͠Α͏ʂ 49
  56. ©2020 Wantedly, Inc. 2. The first step is :app to

    :legacy / ͸͡ΊͷҰา͸:app͔Β:legacy΁ build.gradleΛฤू͢ΔΑ͏ʹ͠Α͏ʂ 50
  57. ©2020 Wantedly, Inc. 2. The first step is :app to

    :legacy / ͸͡ΊͷҰา͸:app͔Β:legacy΁ 51
  58. ©2020 Wantedly, Inc. 2. The first step is :app to

    :legacy / ͸͡ΊͷҰา͸:app͔Β:legacy΁ ৽͍͠ϞδϡʔϧΛ৽نʹ࡞Δ࣌ طଘ:app moduleΛ Lib moduleʹҠߦ͢Δ࣌ 52
  59. ©2020 Wantedly, Inc. 2. The first step is :app to

    :legacy / ͸͡ΊͷҰา͸:app͔Β:legacy΁ 2. Epoxyͷ @EpoxyDataBindingLayouts({ })ʹ
 ࣦഊ͢Δɽ 53
  60. ©2020 Wantedly, Inc. 2. The first step is :app to

    :legacy / ͸͡ΊͷҰา͸:app͔Β:legacy΁ Epoxyͱ͸ʁ RecyclerViewͷϨΠΞ΢τ૊ΈΛ ؆қʹ͢Δ΋ͷ Groupie ͱ͔͕ྨࣅ @EpoxyDataBindingLayouts ͸ Epoxyʹରͯ͠resourceΛඥ෇͚ɼ BindingModelΫϥεΛ
 ࣗಈੜ੒ͤ͞ΔͨΊͷΞϊςʔγϣϯ 54
  61. ©2020 Wantedly, Inc. 2. The first step is :app to

    :legacy / ͸͡ΊͷҰา͸:app͔Β:legacy΁ 2. Epoxyͷ @EpoxyDataBindingLayouts({ }) ʹ
 ࣦഊ͢Δɽ 55
  62. ©2020 Wantedly, Inc. 2. The first step is :app to

    :legacy / ͸͡ΊͷҰา͸:app͔Β:legacy΁ 2. Epoxyͷ @EpoxyDataBindingLayouts({ }) ʹ
 ࣦഊ͢Δɽ :app͔Β:legacyʹ
 ಈ͔͚ͨͩ͠ͳͷʹɽɽɽɽ 56
  63. ©2020 Wantedly, Inc. 2. The first step is :app to

    :legacy / ͸͡ΊͷҰา͸:app͔Β:legacy΁ 2. Epoxyͷ @EpoxyDataBindingLayouts({ }) ʹ
 ࣦഊ͢Δɽ :app͔Β:legacyʹ
 ಈ͔͚ͨͩ͠ͳͷʹɽɽɽɽ -JCSBSZ.PEVMFͰͷSFTPVSDFTͷ࢓૊ΈΛ
 ਖ਼͘͠ཧղ͍ͯ͠Δඞཁ͕͋Δʂ 57
  64. ©2020 Wantedly, Inc. 2. The first step is :app to

    :legacy / ͸͡ΊͷҰา͸:app͔Β:legacy΁ :appͷR.java :library-moduleͷR.java 58
  65. ©2020 Wantedly, Inc. 2. The first step is :app to

    :legacy / ͸͡ΊͷҰา͸:app͔Β:legacy΁ :appͷR.java :library-moduleͷR.java 59
  66. ©2020 Wantedly, Inc. 2. The first step is :app to

    :legacy / ͸͡ΊͷҰา͸:app͔Β:legacy΁ :library moduleͷresource͸finalఆٛ͞Εͳ͍ (ޙʹϏϧυ࣌ʹ֤ϞδϡʔϧͷresourceͷmergeΛߦ͏ͨΊ) ↓ Javaͷ࢓༷ͷ໰୊ͳͷͰɼϥΠϒϥϦଆ͔Β͸Ͳ͏ʹ΋Ͱ͖ͳ͍ ↓ ίϯύΠϧΤϥʔͷൃੜ 60
  67. ©2020 Wantedly, Inc. 2. The first step is :app to

    :legacy / ͸͡ΊͷҰา͸:app͔Β:legacy΁ Epoxyͷղܾ๏[2] [2] https://github.com/airbnb/epoxy/blob/master/README.md 61
  68. ©2020 Wantedly, Inc. 2. The first step is :app to

    :legacy / ͸͡ΊͷҰา͸:app͔Β:legacy΁ Epoxyͷղܾ๏[2] [2] https://github.com/airbnb/epoxy/blob/master/README.md R2.javaΛੜ੒͢Δ butterknfie-gradle-plugin ΛೖΕΔ͜ͱͰղܾͰ͖Δʂ 62
  69. ©2020 Wantedly, Inc. 2. The first step is :app to

    :legacy / ͸͡ΊͷҰา͸:app͔Β:legacy΁ Epoxyͷղܾ๏[2] [2] https://github.com/airbnb/epoxy/blob/master/README.md R2.javaΛੜ੒͢Δ butterknfie-gradle-plugin ΛೖΕΔ͜ͱͰղܾͰ͖Δʂ ↓ AndroidͷഎܠΛ஌Δͱ “ͳͥ ͜ͷΑ͏ͳղܾࡦ͔”
 ΛཧղͰ͖Δ 63
  70. ©2020 Wantedly, Inc. 2. The first step is :app to

    :legacy / ͸͡ΊͷҰา͸:app͔Β:legacy΁ Epoxyͷղܾ๏[2] [2] https://github.com/airbnb/epoxy/blob/master/README.md R2.javaΛੜ੒͢Δ butterknfie-gradle-plugin ΛೖΕΔ͜ͱͰղܾͰ͖Δʂ ↓ AndroidͷഎܠΛ஌Δͱ “ͳͥ ͜ͷΑ͏ͳղܾࡦ͔”
 ΛཧղͰ͖Δ ྨࣅͷ໰୊ʹɼ-JCSBSZ.PEVMFͰͷ SFTPVSDFTͷ+BWB4XJUDIจ͕࢖༻Ͱ͖ͳ͍
 ໰୊͕͋Δɽ 64
  71. ©2020 Wantedly, Inc. 2. The first step is :app to

    :legacy / ͸͡ΊͷҰา͸:app͔Β:legacy΁ Epoxyͷղܾ๏[2] [2] https://github.com/airbnb/epoxy/blob/master/README.md R2.javaΛੜ੒͢Δ butterknfie-gradle-plugin ΛೖΕΔ͜ͱͰղܾͰ͖Δʂ ↓ AndroidͷഎܠΛ஌Δͱ “ͳͥ ͜ͷΑ͏ͳղܾࡦ͔”
 ΛཧղͰ͖Δ ྨࣅͷ໰୊ʹɼ-JCSBSZ.PEVMFͰͷ SFTPVSDFTͷ+BWB4XJUDIจ͕࢖༻Ͱ͖ͳ͍
 ໰୊͕͋Δɽ → if-elseͰஔ͖׵͑Δ 65
  72. ©2020 Wantedly, Inc. 2. The first step is :app to

    :legacy / ͸͡ΊͷҰา͸:app͔Β:legacy΁ Epoxyͷղܾ๏[2] [2] https://github.com/airbnb/epoxy/blob/master/README.md R2.javaΛੜ੒͢Δ butterknfie-gradle-plugin ΛೖΕΔ͜ͱͰղܾͰ͖Δʂ ↓ AndroidͷഎܠΛ஌Δͱ “ͳͥ ͜ͷΑ͏ͳղܾࡦ͔”
 ΛཧղͰ͖Δ ྨࣅͷ໰୊ʹɼ-JCSBSZ.PEVMFͰͷ SFTPVSDFTͷ+BWB4XJUDI͕ࣜ࢖༻Ͱ͖ͳ͍
 ໰୊͕͋Δɽ → if-elseͰஔ͖׵͑Δ 66
  73. ©2020 Wantedly, Inc. খ·ͱΊ

  74. ©2020 Wantedly, Inc. 2. The first step is :app to

    :legacy / ͸͡ΊͷҰา͸:app͔Β:legacy΁ 2. Epoxyͷ@EpoxyDataBindingLayouts({ })ʹ
 ࣦഊ͢Δɽ 1. Android Library͔ΒpackageΛ࡞ͬͯ
 :appͷϑΝΠϧΛmove͢Δͱ൵ࢂʹͳΔɽ ΞϓϦέʔγϣϯϞδϡʔϧͱ ϥΠϒϥϦϞδϡʔϧͷࡉ͔ͳҧ͍ʹ ஫ҙ͠ͳ͕ΒҠͦ͏ʂ 67
  75. ©2020 Wantedly, Inc. 2. The first step is :app to

    :legacy / ͸͡ΊͷҰา͸:app͔Β:legacy΁ :app :app :legacy 68
  76. ©2020 Wantedly, Inc. 2. The first step is :app to

    :legacy / ͸͡ΊͷҰา͸:app͔Β:legacy΁ :app :app :legacy ඞཁ࠷௿ݶͷapplication ͜Ε·Ͱ:appͩͬͨ΋ͷ 69
  77. ©2020 Wantedly, Inc. 1. What is a multi-module app? /

    ϚϧνϞδϡʔϧԽͱ͸ʁ 2. The first step is :app to :legacy / ͸͡ΊͷҰา͸:app͔Β:legacy΁ • AndroidΛਖ਼͘͠ཧղ͠ͳ͍ͱϋϚΔ࿩ • ࣄྫ঺հ 3. A strategy of Gradle in multi-module app / ϚϧνϞδϡʔϧͱGradleઓུ • Flavor / BuildTypeपΓ͸͜͏͠Α͏ • Α͘࢖͏ઃఆͷڞ༗Λߦ͏ Outline ( 1 / 2 ) 70
  78. ©2020 Wantedly, Inc. 1. What is a multi-module app? /

    ϚϧνϞδϡʔϧԽͱ͸ʁ 2. The first step is :app to :legacy / ͸͡ΊͷҰา͸:app͔Β:legacy΁ • AndroidΛਖ਼͘͠ཧղ͠ͳ͍ͱϋϚΔ࿩ • ࣄྫ঺հ 3. A strategy of Gradle in multi-module app / ϚϧνϞδϡʔϧͱGradleઓུ • Flavor / BuildTypeपΓ͸͜͏͠Α͏ • Α͘࢖͏ઃఆͷڞ༗Λߦ͏ Outline ( 1 / 2 ) 71
  79. ©2020 Wantedly, Inc. 3. A strategy of Gradle in multi-module

    app ϚϧνϞδϡʔϧͱGradleઓུ
  80. ©2020 Wantedly, Inc. 3. A strategy of Gradle in multi-module

    app / ϚϧνϞδϡʔϧͱGradleઓུ :app :legacy ͳʹΛมߋ͍ͯ͜͠͏ 72
  81. ©2020 Wantedly, Inc. 3. A strategy of Gradle in multi-module

    app / ϚϧνϞδϡʔϧͱGradleઓུ :app :legacy 1. BuildConfigͱͷ޲͖߹͍ํ 2. ֤moduleΛͲ͏΍ͬͯͭͳ͙͔ 3. ֤moduleͷbuild.gradleΛ
 ηϚϯςΟΫεͰڞ௨Խ͢Δ 73
  82. ©2020 Wantedly, Inc. 3. A strategy of Gradle in multi-module

    app / ϚϧνϞδϡʔϧͱGradleઓུ :app :legacy 1. BuildConfigͱͷ޲͖߹͍ํ 2. ֤moduleΛͲ͏΍ͬͯͭͳ͙͔ 3. ֤moduleͷbuild.gradleΛ
 ηϚϯςΟΫεͰڞ௨Խ͢Δ 74
  83. ©2020 Wantedly, Inc. 3. A strategy of Gradle in multi-module

    app / ϚϧνϞδϡʔϧͱGradleઓུ :app :legacy BuildConfigͱͲ͏޲͖߹͏ʁ 1. BuildConfigͱͷ޲͖߹͍ํ 75
  84. ©2020 Wantedly, Inc. 3. A strategy of Gradle in multi-module

    app / ϚϧνϞδϡʔϧͱGradleઓུ :app :legacy BuildConfigͱͲ͏޲͖߹͏ʁ ର৅ͷΞϓϦέʔγϣϯͰ͸ɼ BuildType + FlavorʹΑͬͯ ༷ʑͳ؀ڥม਺Λ੍ޚ͍ͯͨ͠ 1. BuildConfigͱͷ޲͖߹͍ํ 76
  85. ©2020 Wantedly, Inc. 3. A strategy of Gradle in multi-module

    app / ϚϧνϞδϡʔϧͱGradleઓུ :app :legacy BuildConfigͱͲ͏޲͖߹͏ʁ ର৅ͷΞϓϦέʔγϣϯͰ͸ɼ BuildType + FlavorʹΑͬͯ ༷ʑͳ؀ڥม਺Λ੍ޚ͍ͯͨ͠ Ϟδϡʔϧ͝ͱʹBuildConfig.java͕ੜ੒
 ͞ΕΔͨΊɼڞ௨ͯ͠࢖͏ʹ͸޻෉͕ඞཁʂ 1. BuildConfigͱͷ޲͖߹͍ํ 77
  86. ©2020 Wantedly, Inc. 3. A strategy of Gradle in multi-module

    app / ϚϧνϞδϡʔϧͱGradleઓུ ڞ௨ͷ:appʹ͋ΔBuildConfigΛ࢖͍͍ͨʂ ͕:legacy -> :appͷࢀর͕Ͱ͖ͳ͍ɽ :legacy :app BuildConfig.java 1. BuildConfigͱͷ޲͖߹͍ํ 78
  87. ©2020 Wantedly, Inc. 3. A strategy of Gradle in multi-module

    app / ϚϧνϞδϡʔϧͱGradleઓུ ڞ௨ͷ:appʹ͋ΔBuildConfigΛ࢖͍͍ͨʂ ͕:legacy -> :appͷࢀর͕Ͱ͖ͳ͍ɽ :legacy :app BuildConfig.java 1. BuildConfigͱͷ޲͖߹͍ํ 79
  88. ©2020 Wantedly, Inc. 3. A strategy of Gradle in multi-module

    app / ϚϧνϞδϡʔϧͱGradleઓུ ڞ௨ͷ:appʹ͋ΔBuildConfigΛ࢖͍͍ͨʂ ͕:legacy -> :appͷࢀর͕Ͱ͖ͳ͍ɽ :legacy :app BuildConfig.java 1. BuildConfigͱͷ޲͖߹͍ํ 80
  89. ©2020 Wantedly, Inc. 3. A strategy of Gradle in multi-module

    app / ϚϧνϞδϡʔϧͱGradleઓུ ڞ௨ͷ:appʹ͋ΔBuildConfigΛ࢖͍͍ͨʂ ͕:legacy -> :appͷࢀর͕Ͱ͖ͳ͍ɽ :legacy :app BuildConfig.java Θͨ͠ʮ͑ͬɽશ෦ͷbuild.gradleʹॻ͔ͳ͖Ό͍͚ͳ͍ͷʁʯ 1. BuildConfigͱͷ޲͖߹͍ํ 81
  90. ©2020 Wantedly, Inc. 3. A strategy of Gradle in multi-module

    app / ϚϧνϞδϡʔϧͱGradleઓུ ڞ௨ͷ:appʹ͋ΔBuildConfigΛ࢖͍͍ͨʂ ͕:legacy -> :appͷࢀর͕Ͱ͖ͳ͍ɽ :legacy :app BuildConfig.java Θͨ͠ʮ͑ͬɽશ෦ͷbuild.gradleʹॻ͔ͳ͖Ό͍͚ͳ͍ͷʁʯ ໰୊ͷղܾͷجຊΞΠσΞ $POpHΛ֨ೲ͢ΔϞδϡʔϧΛ࡞Δ 1. BuildConfigͱͷ޲͖߹͍ํ 82
  91. ©2020 Wantedly, Inc. 3. A strategy of Gradle in multi-module

    app / ϚϧνϞδϡʔϧͱGradleઓུ :app :legacy :BuildConfig 1. BuildConfigͱͷ޲͖߹͍ํ 83
  92. ©2020 Wantedly, Inc. 3. A strategy of Gradle in multi-module

    app / ϚϧνϞδϡʔϧͱGradleઓུ :app :legacy :BuildConfig BuildConfigͷinterface͚ͩఏڙ͢Δɽ 1. BuildConfigͱͷ޲͖߹͍ํ 84
  93. ©2020 Wantedly, Inc. 3. A strategy of Gradle in multi-module

    app / ϚϧνϞδϡʔϧͱGradleઓུ :app :legacy :BuildConfig BuildConfigͷinterface͚ͩఏڙ͢Δɽ ۩ମతͳ஋͸:appͷapplication಺ͰॳظԽ/஫ೖ 1. BuildConfigͱͷ޲͖߹͍ํ 85
  94. ©2020 Wantedly, Inc. 3. A strategy of Gradle in multi-module

    app / ϚϧνϞδϡʔϧͱGradleઓུ :app :legacy :BuildConfig BuildConfigͷinterface͚ͩఏڙ͢Δɽ ۩ମతͳ஋͸:appͷapplication಺ͰॳظԽ/஫ೖ :legacy͔Β͸:BuildConfigΛࢀর͢Δ͚ͩ 1. BuildConfigͱͷ޲͖߹͍ํ 86
  95. ©2020 Wantedly, Inc. 3. A strategy of Gradle in multi-module

    app / ϚϧνϞδϡʔϧͱGradleઓུ :app :legacy :BuildConfig BuildConfigͷinterface͚ͩఏڙ͢Δɽ ۩ମతͳ஋͸:appͷapplication಺ͰॳظԽ/஫ೖ :legacy͔Β͸:BuildConfigΛࢀর͢Δ͚ͩ module͕૿͑ͯ΋:BuildConfigΛࢀর͢Δ͚ͩ 1. BuildConfigͱͷ޲͖߹͍ํ 87
  96. ©2020 Wantedly, Inc. 3. A strategy of Gradle in multi-module

    app / ϚϧνϞδϡʔϧͱGradleઓུ :app :legacy :BuildConfig BuildConfigͷinterface͚ͩఏڙ͢Δɽ ۩ମతͳ஋͸:appͷapplication಺ͰॳظԽ/஫ೖ :legacy͔Β͸:BuildConfigΛࢀর͢Δ͚ͩ module͕૿͑ͯ΋:BuildConfigΛࢀর͢Δ͚ͩ 1. BuildConfigͱͷ޲͖߹͍ํ ޙʹ΋঺հ͢Δ %*1ͱ͍͏ख๏ σβΠϯύλʔϯ 88
  97. ©2020 Wantedly, Inc. 3. A strategy of Gradle in multi-module

    app / ϚϧνϞδϡʔϧͱGradleઓུ :app :legacy 1. BuildConfigͱͷ޲͖߹͍ํ 2. ֤moduleΛͲ͏΍ͬͯͭͳ͙͔ 3. ֤moduleͷbuild.gradleΛ
 ηϚϯςΟΫεͰڞ௨Խ͢Δ 89
  98. ©2020 Wantedly, Inc. 3. A strategy of Gradle in multi-module

    app / ϚϧνϞδϡʔϧͱGradleઓུ 2. ֤moduleΛͲ͏΍ͬͯͭͳ͙͔ api project(‘:legacy’) implementation project(‘:legacy’) :app :legacy :app :legacy 90
  99. ©2020 Wantedly, Inc. 3. A strategy of Gradle in multi-module

    app / ϚϧνϞδϡʔϧͱGradleઓུ 2. ֤moduleΛͲ͏΍ͬͯͭͳ͙͔ api project(‘:legacy’) implementation project(‘:legacy’) :app :legacy :app :legacy 91
  100. ©2020 Wantedly, Inc. 3. A strategy of Gradle in multi-module

    app / ϚϧνϞδϡʔϧͱGradleઓུ 2. ֤moduleΛͲ͏΍ͬͯͭͳ͙͔ ҧ͍͸ ϞδϡʔϧΛލ͍Ͱ ਪҠతʹ  ݺͼग़͠Λڐ༰͢Δ͔ʁ 92
  101. ©2020 Wantedly, Inc. 3. A strategy of Gradle in multi-module

    app / ϚϧνϞδϡʔϧͱGradleઓུ 2. ֤moduleΛͲ͏΍ͬͯͭͳ͙͔ :A :B :C implementation implementation 93
  102. ©2020 Wantedly, Inc. 3. A strategy of Gradle in multi-module

    app / ϚϧνϞδϡʔϧͱGradleઓུ 2. ֤moduleΛͲ͏΍ͬͯͭͳ͙͔ :AͰ:BͷΫϥεΛݺͼग़ͤΔ :BͰ:CͷΫϥεΛݺͼग़ͤΔ :A :B :C implementation implementation :AͰ:CͷΫϥεΛݺͼग़ͤΔ 94
  103. ©2020 Wantedly, Inc. 3. A strategy of Gradle in multi-module

    app / ϚϧνϞδϡʔϧͱGradleઓུ 2. ֤moduleΛͲ͏΍ͬͯͭͳ͙͔ :AͰ:BͷΫϥεΛݺͼग़ͤΔ :BͰ:CͷΫϥεΛݺͼग़ͤΔ :A :B :C implementation implementation :AͰ:CͷΫϥεΛݺͼग़ͤΔ 95
  104. ©2020 Wantedly, Inc. :B 3. A strategy of Gradle in

    multi-module app / ϚϧνϞδϡʔϧͱGradleઓུ 2. ֤moduleΛͲ͏΍ͬͯͭͳ͙͔ :AͰ:BͷΫϥεΛݺͼग़ͤΔ :BͰ:CͷΫϥεΛݺͼग़ͤΔ :A :C implementation implementation :AͰ:CͷΫϥεΛݺͼग़ͤΔ 96
  105. ©2020 Wantedly, Inc. :B 3. A strategy of Gradle in

    multi-module app / ϚϧνϞδϡʔϧͱGradleઓུ 2. ֤moduleΛͲ͏΍ͬͯͭͳ͙͔ :AͰ:BͷΫϥεΛݺͼग़ͤΔ :BͰ:CͷΫϥεΛݺͼग़ͤΔ :C implementation implementation :A :AͰ:CͷΫϥεΛݺͼग़ͤΔ 97
  106. ©2020 Wantedly, Inc. :B 3. A strategy of Gradle in

    multi-module app / ϚϧνϞδϡʔϧͱGradleઓུ 2. ֤moduleΛͲ͏΍ͬͯͭͳ͙͔ :AͰ:BͷΫϥεΛݺͼग़ͤΔ :BͰ:CͷΫϥεΛݺͼग़ͤΔ :C implementation implementation :A :AͰ:CͷΫϥεΛݺͼग़ͤΔ 98
  107. ©2020 Wantedly, Inc. :B 3. A strategy of Gradle in

    multi-module app / ϚϧνϞδϡʔϧͱGradleઓུ 2. ֤moduleΛͲ͏΍ͬͯͭͳ͙͔ :AͰ:BͷΫϥεΛݺͼग़ͤΔ :BͰ:CͷΫϥεΛݺͼग़ͤΔ :C implementation implementation :A :AͰ:CͷΫϥεΛݺͼग़ͤΔ 99
  108. ©2020 Wantedly, Inc. :B 3. A strategy of Gradle in

    multi-module app / ϚϧνϞδϡʔϧͱGradleઓུ 2. ֤moduleΛͲ͏΍ͬͯͭͳ͙͔ :AͰ:BͷΫϥεΛݺͼग़ͤΔ :BͰ:CͷΫϥεΛݺͼग़ͤΔ :C api api :A :AͰ:CͷΫϥεΛݺͼग़ͤΔ 100
  109. ©2020 Wantedly, Inc. :B 3. A strategy of Gradle in

    multi-module app / ϚϧνϞδϡʔϧͱGradleઓུ 2. ֤moduleΛͲ͏΍ͬͯͭͳ͙͔ :AͰ:BͷΫϥεΛݺͼग़ͤΔ :BͰ:CͷΫϥεΛݺͼग़ͤΔ :C api api :A :AͰ:CͷΫϥεΛݺͼग़ͤΔ 101
  110. ©2020 Wantedly, Inc. :B 3. A strategy of Gradle in

    multi-module app / ϚϧνϞδϡʔϧͱGradleઓུ 2. ֤moduleΛͲ͏΍ͬͯͭͳ͙͔ :AͰ:BͷΫϥεΛݺͼग़ͤΔ :BͰ:CͷΫϥεΛݺͼग़ͤΔ :C api api :A :AͰ:CͷΫϥεΛݺͼग़ͤΔ ҧ͍͸ ϞδϡʔϧΛލ͍Ͱ ਪҠతʹ  ݺͼग़͠Λڐ༰͢Δ͔ʁ 102
  111. ©2020 Wantedly, Inc. :B 3. A strategy of Gradle in

    multi-module app / ϚϧνϞδϡʔϧͱGradleઓུ 2. ֤moduleΛͲ͏΍ͬͯͭͳ͙͔ :AͰ:BͷΫϥεΛݺͼग़ͤΔ :BͰ:CͷΫϥεΛݺͼग़ͤΔ :C api api :A :AͰ:CͷΫϥεΛݺͼग़ͤΔ ҧ͍͸ ϞδϡʔϧΛލ͍Ͱ ਪҠతʹ  ݺͼग़͠Λڐ༰͢Δ͔ʁ Yes → api No → implementation 103
  112. ©2020 Wantedly, Inc. :B 3. A strategy of Gradle in

    multi-module app / ϚϧνϞδϡʔϧͱGradleઓུ 2. ֤moduleΛͲ͏΍ͬͯͭͳ͙͔ :AͰ:BͷΫϥεΛݺͼग़ͤΔ :BͰ:CͷΫϥεΛݺͼग़ͤΔ :C api api :A :AͰ:CͷΫϥεΛݺͼग़ͤΔ ҧ͍͸ ϞδϡʔϧΛލ͍Ͱ ਪҠతʹ  ݺͼग़͠Λڐ༰͢Δ͔ʁ Yes → api No → implementation ໬΋ͳཧ༝͕ͳ͍ݶΓ implementationΛ࢖͏΄͏͕ࠞཚΛੜΈʹ͍͘ 104
  113. ©2020 Wantedly, Inc. 3. A strategy of Gradle in multi-module

    app / ϚϧνϞδϡʔϧͱGradleઓུ :app :legacy 1. BuildConfigͱͷ޲͖߹͍ํ 2. ֤moduleΛͲ͏΍ͬͯͭͳ͙͔ 3. ֤moduleͷbuild.gradleΛ
 ηϚϯςΟΫεͰڞ௨Խ͢Δ 105
  114. ©2020 Wantedly, Inc. 3. A strategy of Gradle in multi-module

    app / ϚϧνϞδϡʔϧͱGradleઓུ 3. ֤moduleͷbuild.gradleΛηϚϯςΟΫεͰڞ௨Խ͢Δ ϞδϡʔϧΛ෼͚͍ͯ͘ͱɼԿ౓΋ಉ͡هड़Λ܁Γฦ͢͜ͱ͕͋Δ - minSdkVersion - sourceSets 106
  115. ©2020 Wantedly, Inc. 3. A strategy of Gradle in multi-module

    app / ϚϧνϞδϡʔϧͱGradleઓུ 3. ֤moduleͷbuild.gradleΛηϚϯςΟΫεͰڞ௨Խ͢Δ ϞδϡʔϧΛ෼͚͍ͯ͘ͱɼԿ౓΋ಉ͡هड़Λ܁Γฦ͢͜ͱ͕͋Δ - minSdkVersion - sourceSets Gradle task ΍ pluginͱͯ͠੾Γग़͢ͱɼ࢖͍·ΘͤΔɽ 107
  116. ©2020 Wantedly, Inc. 4. Modularization as refactoring / ϦϑΝΫλϦϯάͱͯ͠ͷϚϧνϞδϡʔϧԽ •

    བྷΈ߹ͬͨෳࡶͳؔ܎Λղ͖΄͙ͨ͢ΊʹͰ͖Δ͜ͱ 5. Modularization and Android Jetpack / JetpackͱϚϧνϞδϡʔϧ • NavigationͷಋೖͱޮՌ • ࣄྫ঺հ 6. A continuous process of modularization with feature development
 / ܧଓతʹػೳ։ൃΛߦ͍ͳ͕ΒਐΊΔͨΊʹ • ҰาҰาਐΊΔϞδϡʔϧԽ
 Outline ( 2 / 2 ) 108
  117. ©2020 Wantedly, Inc. 4. Modularization as refactoring / ϦϑΝΫλϦϯάͱͯ͠ͷϚϧνϞδϡʔϧԽ •

    བྷΈ߹ͬͨෳࡶͳؔ܎Λղ͖΄͙ͨ͢ΊʹͰ͖Δ͜ͱ 5. Modularization and Android Jetpack / JetpackͱϚϧνϞδϡʔϧ • NavigationͷಋೖͱޮՌ • ࣄྫ঺հ 6. A continuous process of modularization with feature development
 / ܧଓతʹػೳ։ൃΛߦ͍ͳ͕ΒਐΊΔͨΊʹ • ҰาҰาਐΊΔϞδϡʔϧԽ
 Outline ( 2 / 2 ) 109
  118. ©2020 Wantedly, Inc. 4. Modularization as refactoring ϦϑΝΫλϦϯάͱͯ͠ͷϚϧνϞδϡʔϧԽ

  119. ©2020 Wantedly, Inc. 4. Modularization as refactoring / ϦϑΝΫλͱͯ͠ͷϚϧνϞδϡʔϧԽ 1.

    core΍utilͷΑ͏ͳ΋ͷΛҾͬுΓग़͢ͱ͖ͷϦϑΝΫλϦϯά 2. ը໘ؒભҠͷͨΊͷϦϑΝΫλϦϯά 110
  120. ©2020 Wantedly, Inc. 1. core΍utilͷΑ͏ͳ΋ͷΛҾͬுΓग़͢ͱ͖ͷϦϑΝΫλϦϯά 2. ը໘ؒભҠͷͨΊͷϦϑΝΫλϦϯά 4. Modularization as

    refactoring / ϦϑΝΫλͱͯ͠ͷϚϧνϞδϡʔϧԽ 111
  121. ©2020 Wantedly, Inc. :app :legacy core΍utilͷΑ͏ͳ΋ͷΛҾͬுΓग़ͦ͏ͱࢼΈͨɽ 1. core΍utilͷΑ͏ͳ΋ͷΛҾͬுΓग़͢ͱ͖ͷϦϑΝΫλϦϯά 4. Modularization

    as refactoring / ϦϑΝΫλͱͯ͠ͷϚϧνϞδϡʔϧԽ 112
  122. ©2020 Wantedly, Inc. :app :legacy :core :util core΍utilͷΑ͏ͳ΋ͷΛҾͬுΓग़ͦ͏ͱࢼΈͨɽ 1. core΍utilͷΑ͏ͳ΋ͷΛҾͬுΓग़͢ͱ͖ͷϦϑΝΫλϦϯά

    4. Modularization as refactoring / ϦϑΝΫλͱͯ͠ͷϚϧνϞδϡʔϧԽ 113
  123. ©2020 Wantedly, Inc. :app :legacy :legacy2 :legacy3 core΍utilͷΑ͏ͳ΋ͷΛҾͬுΓग़ͦ͏ͱࢼΈͨɽ ʹͳͬͯ͠·ͬͨɽ 1.

    core΍utilͷΑ͏ͳ΋ͷΛҾͬுΓग़͢ͱ͖ͷϦϑΝΫλϦϯά 4. Modularization as refactoring / ϦϑΝΫλͱͯ͠ͷϚϧνϞδϡʔϧԽ 114
  124. ©2020 Wantedly, Inc. :app :legacy :legacy2 :legacy3 core΍utilͷΑ͏ͳ΋ͷΛҾͬுΓग़ͦ͏ͱࢼΈͨɽ ͳͥʁ ʹͳͬͯ͠·ͬͨɽ

    1. core΍utilͷΑ͏ͳ΋ͷΛҾͬுΓग़͢ͱ͖ͷϦϑΝΫλϦϯά 4. Modularization as refactoring / ϦϑΝΫλͱͯ͠ͷϚϧνϞδϡʔϧԽ 115
  125. ©2020 Wantedly, Inc. :app :legacy :legacy2 :legacy3 core΍utilͷΑ͏ͳ΋ͷΛҾͬுΓग़ͦ͏ͱࢼΈͨɽ ͳͥʁ ʹͳͬͯ͠·ͬͨɽ

    ͳͥʁ طଘίʔυΛ
 ͦͷ··Ҡ২͠Α͏ͱ͔ͨ͠Βɽ 1. core΍utilͷΑ͏ͳ΋ͷΛҾͬுΓग़͢ͱ͖ͷϦϑΝΫλϦϯά 4. Modularization as refactoring / ϦϑΝΫλͱͯ͠ͷϚϧνϞδϡʔϧԽ 116
  126. ©2020 Wantedly, Inc. $MBTT# $MBTT% $MBTT& $MBTT* $MBTT' $MBTT$ $MBTT"

    $MBTT+ $MBTT) $MBTT( 1. core΍utilͷΑ͏ͳ΋ͷΛҾͬுΓग़͢ͱ͖ͷϦϑΝΫλϦϯά 4. Modularization as refactoring / ϦϑΝΫλͱͯ͠ͷϚϧνϞδϡʔϧԽ 117
  127. ©2020 Wantedly, Inc. $MBTT# $MBTT% $MBTT& $MBTT* $MBTT' $MBTT$ $MBTT"

    $MBTT+ $MBTT) $MBTT( coreͬΆ͍෦෼Λ ੾Γग़ͦ͏ʂ 1. core΍utilͷΑ͏ͳ΋ͷΛҾͬுΓग़͢ͱ͖ͷϦϑΝΫλϦϯά 4. Modularization as refactoring / ϦϑΝΫλͱͯ͠ͷϚϧνϞδϡʔϧԽ 118
  128. ©2020 Wantedly, Inc. $MBTT# $MBTT% $MBTT& $MBTT* $MBTT' $MBTT$ $MBTT"

    $MBTT+ $MBTT) $MBTT( coreͬΆ͍෦෼Λ ੾Γग़ͦ͏ʂ 1. core΍utilͷΑ͏ͳ΋ͷΛҾͬுΓग़͢ͱ͖ͷϦϑΝΫλϦϯά 4. Modularization as refactoring / ϦϑΝΫλͱͯ͠ͷϚϧνϞδϡʔϧԽ 119
  129. ©2020 Wantedly, Inc. $MBTT# $MBTT% $MBTT& $MBTT* $MBTT' $MBTT$ $MBTT"

    $MBTT+ $MBTT) $MBTT( coreͬΆ͍෦෼Λ ੾Γग़ͦ͏ʂ 1. core΍utilͷΑ͏ͳ΋ͷΛҾͬுΓग़͢ͱ͖ͷϦϑΝΫλϦϯά 4. Modularization as refactoring / ϦϑΝΫλͱͯ͠ͷϚϧνϞδϡʔϧԽ 120
  130. ©2020 Wantedly, Inc. $MBTT# $MBTT% $MBTT& $MBTT* $MBTT' $MBTT$ $MBTT"

    $MBTT+ $MBTT) $MBTT( coreͬΆ͍෦෼Λ ੾Γग़ͦ͏ʂ 1. core΍utilͷΑ͏ͳ΋ͷΛҾͬுΓग़͢ͱ͖ͷϦϑΝΫλϦϯά 4. Modularization as refactoring / ϦϑΝΫλͱͯ͠ͷϚϧνϞδϡʔϧԽ 121
  131. ©2020 Wantedly, Inc. $MBTT# $MBTT% $MBTT& $MBTT* $MBTT' $MBTT$ $MBTT"

    $MBTT+ $MBTT) $MBTT( coreͬΆ͍෦෼Λ ੾Γग़ͦ͏ʂ Class J,H,I͚͕ͩཉ͍͠ͷʹɼ ༨ܭʹD,F,G΋੾Γग़͢Ӌ໨ʹ 1. core΍utilͷΑ͏ͳ΋ͷΛҾͬுΓग़͢ͱ͖ͷϦϑΝΫλϦϯά 4. Modularization as refactoring / ϦϑΝΫλͱͯ͠ͷϚϧνϞδϡʔϧԽ 122
  132. ©2020 Wantedly, Inc. $MBTT# $MBTT% $MBTT& $MBTT* $MBTT' $MBTT$ $MBTT"

    $MBTT+ $MBTT) $MBTT( coreͬΆ͍෦෼Λ ੾Γग़ͦ͏ʂ Class J,H,I͚͕ͩཉ͍͠ͷʹɼ ༨ܭʹD,F,G΋੾Γग़͢Ӌ໨ʹ ҶͮΔࣜʹ૿৩ 1. core΍utilͷΑ͏ͳ΋ͷΛҾͬுΓग़͢ͱ͖ͷϦϑΝΫλϦϯά 4. Modularization as refactoring / ϦϑΝΫλͱͯ͠ͷϚϧνϞδϡʔϧԽ 123
  133. ©2020 Wantedly, Inc. ղܾࡦ͸2ͭ 1. ໌֬ͳarchitectureΛࡦఆ͢Δ 2. DIPΛۦ࢖͢Δ 1. core΍utilͷΑ͏ͳ΋ͷΛҾͬுΓग़͢ͱ͖ͷϦϑΝΫλϦϯά

    4. Modularization as refactoring / ϦϑΝΫλͱͯ͠ͷϚϧνϞδϡʔϧԽ 124
  134. ©2020 Wantedly, Inc. 1. ໌֬ͳarchitectureΛࡦఆ͢Δ 2. DIPΛۦ࢖͢Δ ྫ͑͹MVVMͷΑ͏ͳΞʔΩςΫνϟΛఆΊɼͦΕʹԊ࣮ͬͯ૷ ݺͼग़͠ͷํ޲Λ੍ݶ͢Δ͜ͱͰɼ Ϟδϡʔϧ෼཭Λଅਐͤ͞Δɽ

    ΋ͱͷ࣮૷ʹΑͬͯ͸վमίετ૿ ղܾࡦ͸2ͭ 1. core΍utilͷΑ͏ͳ΋ͷΛҾͬுΓग़͢ͱ͖ͷϦϑΝΫλϦϯά 4. Modularization as refactoring / ϦϑΝΫλͱͯ͠ͷϚϧνϞδϡʔϧԽ 125
  135. ©2020 Wantedly, Inc. 1. ໌֬ͳarchitectureΛࡦఆ͢Δ 2. DIPΛۦ࢖͢Δ ղܾࡦ͸2ͭ 1. core΍utilͷΑ͏ͳ΋ͷΛҾͬுΓग़͢ͱ͖ͷϦϑΝΫλϦϯά

    4. Modularization as refactoring / ϦϑΝΫλͱͯ͠ͷϚϧνϞδϡʔϧԽ 126
  136. ©2020 Wantedly, Inc. 1. ໌֬ͳarchitectureΛࡦఆ͢Δ 2. DIPΛۦ࢖͢Δ DIP(Dependency Inversion Principle,

    ґଘੑٯసͷ๏ଇ)͸
 ந৅ʹґଘͤ͞Δ͜ͱͰɼґଘํ޲Λٯʹ͢Δɽ ۩৅ͷ஫ೖ͸DIίϯςφΛ༻͍Δ͜ͱ͕AndroidͰ͸ଟ͍(ҹ৅)ɽ ղܾࡦ͸2ͭ 1. core΍utilͷΑ͏ͳ΋ͷΛҾͬுΓग़͢ͱ͖ͷϦϑΝΫλϦϯά 4. Modularization as refactoring / ϦϑΝΫλͱͯ͠ͷϚϧνϞδϡʔϧԽ 127
  137. ©2020 Wantedly, Inc. $MBTT# $MBTT% $MBTT& $MBTT* $MBTT' $MBTT$ $MBTT"

    $MBTT+ $MBTT) $MBTT( coreͬΆ͍෦෼Λ ੾Γग़ͦ͏ʂ 1. core΍utilͷΑ͏ͳ΋ͷΛҾͬுΓग़͢ͱ͖ͷϦϑΝΫλϦϯά 4. Modularization as refactoring / ϦϑΝΫλͱͯ͠ͷϚϧνϞδϡʔϧԽ 128
  138. ©2020 Wantedly, Inc. $MBTT# $MBTT% $MBTT& $MBTT* $MBTT' $MBTT$ $MBTT"

    $MBTT+ $MBTT) $MBTT( coreͬΆ͍෦෼Λ ੾Γग़ͦ͏ʂ * * * … Interface 1. core΍utilͷΑ͏ͳ΋ͷΛҾͬுΓग़͢ͱ͖ͷϦϑΝΫλϦϯά 4. Modularization as refactoring / ϦϑΝΫλͱͯ͠ͷϚϧνϞδϡʔϧԽ 129
  139. ©2020 Wantedly, Inc. $MBTT# $MBTT% $MBTT& $MBTT* $MBTT' $MBTT$ $MBTT"

    $MBTT+ $MBTT) $MBTT( coreͬΆ͍෦෼Λ ੾Γग़ͦ͏ʂ * * * … Interface 1. core΍utilͷΑ͏ͳ΋ͷΛҾͬுΓग़͢ͱ͖ͷϦϑΝΫλϦϯά 4. Modularization as refactoring / ϦϑΝΫλͱͯ͠ͷϚϧνϞδϡʔϧԽ 130
  140. ©2020 Wantedly, Inc. $MBTT# $MBTT% $MBTT& $MBTT* $MBTT' $MBTT$ $MBTT"

    $MBTT+ $MBTT) $MBTT( coreͬΆ͍෦෼Λ ੾Γग़ͦ͏ʂ * * ֎ͷmodule΁ͷґଘ͕ ͳ͘ͳΓ੾Γग़͠Մೳʹʂ * … Interface 1. core΍utilͷΑ͏ͳ΋ͷΛҾͬுΓग़͢ͱ͖ͷϦϑΝΫλϦϯά 4. Modularization as refactoring / ϦϑΝΫλͱͯ͠ͷϚϧνϞδϡʔϧԽ 131
  141. ©2020 Wantedly, Inc. 1. core΍utilͷΑ͏ͳ΋ͷΛҾͬுΓग़͢ͱ͖ͷϦϑΝΫλϦϯά 2. ը໘ؒભҠͷͨΊͷϦϑΝΫλϦϯά 4. Modularization as

    refactoring / ϦϑΝΫλͱͯ͠ͷϚϧνϞδϡʔϧԽ 132
  142. ©2020 Wantedly, Inc. 2. ը໘ؒભҠͷͨΊͷϦϑΝΫλϦϯά 'SBHNFOU # 'SBHNFOU % 'SBHNFOU

    & 'SBHNFOU $ 'SBHNFOU " 4. Modularization as refactoring / ϦϑΝΫλͱͯ͠ͷϚϧνϞδϡʔϧԽ 133
  143. ©2020 Wantedly, Inc. 2. ը໘ؒભҠͷͨΊͷϦϑΝΫλϦϯά 'SBHNFOU # 'SBHNFOU % 'SBHNFOU

    & 'SBHNFOU $ 'SBHNFOU " 4. Modularization as refactoring / ϦϑΝΫλͱͯ͠ͷϚϧνϞδϡʔϧԽ 134
  144. ©2020 Wantedly, Inc. 2. ը໘ؒભҠͷͨΊͷϦϑΝΫλϦϯά 'SBHNFOU # 'SBHNFOU % 'SBHNFOU

    & 'SBHNFOU $ 'SBHNFOU " DeepLink DeepLink 4. Modularization as refactoring / ϦϑΝΫλͱͯ͠ͷϚϧνϞδϡʔϧԽ 135
  145. ©2020 Wantedly, Inc. 2. ը໘ؒભҠͷͨΊͷϦϑΝΫλϦϯά 'SBHNFOU # 'SBHNFOU % 'SBHNFOU

    & 'SBHNFOU $ 'SBHNFOU " Feature X Feature Y DeepLink DeepLink 4. Modularization as refactoring / ϦϑΝΫλͱͯ͠ͷϚϧνϞδϡʔϧԽ 136
  146. ©2020 Wantedly, Inc. 2. ը໘ؒભҠͷͨΊͷϦϑΝΫλϦϯά 'SBHNFOU # 'SBHNFOU % 'SBHNFOU

    & 'SBHNFOU $ 'SBHNFOU " Feature X Feature Y ಛผͳinterfaceΛ༻ҙ͢Δ͜ͱͳ͘ભҠΛߦ͍ͬͯΔͱɼ Ϟδϡʔϧ෼ׂΛߦ͓͏ͱ͢Δͱ͖ʹোนͱͳΔɽ DeepLink DeepLink 4. Modularization as refactoring / ϦϑΝΫλͱͯ͠ͷϚϧνϞδϡʔϧԽ 137
  147. ©2020 Wantedly, Inc. 2. ը໘ؒભҠͷͨΊͷϦϑΝΫλϦϯά 'SBHNFOU # 'SBHNFOU % 'SBHNFOU

    & 'SBHNFOU $ 'SBHNFOU " Feature X Feature Y ಛผͳinterfaceΛ༻ҙ͢Δ͜ͱͳ͘ભҠΛߦ͍ͬͯΔͱɼ Ϟδϡʔϧ෼ׂΛߦ͓͏ͱ͢Δͱ͖ʹোนͱͳΔɽ DeepLink DeepLink → Routing༻ͷmoduleΛ௥Ճ͢Δͱྑ͍ 4. Modularization as refactoring / ϦϑΝΫλͱͯ͠ͷϚϧνϞδϡʔϧԽ 138
  148. ©2020 Wantedly, Inc. 2. ը໘ؒભҠͷͨΊͷϦϑΝΫλϦϯά 'SBHNFOU # 'SBHNFOU % 'SBHNFOU

    & 'SBHNFOU $ 'SBHNFOU " Feature X Feature Y 3PVUJOH *OUFSGBDF *OUFSGBDF 4. Modularization as refactoring / ϦϑΝΫλͱͯ͠ͷϚϧνϞδϡʔϧԽ 139
  149. ©2020 Wantedly, Inc. 2. ը໘ؒભҠͷͨΊͷϦϑΝΫλϦϯά 'SBHNFOU # 'SBHNFOU % 'SBHNFOU

    & 'SBHNFOU $ 'SBHNFOU " Feature X Feature Y 3PVUJOH *OUFSGBDF *OUFSGBDF ΋͠΋ಠࣗͷભҠϩδοΫ͕͋ͬͯ΋ɼ Navigation Component౳ʹ৐Γ׵͑ΒΕΔɽ 4. Modularization as refactoring / ϦϑΝΫλͱͯ͠ͷϚϧνϞδϡʔϧԽ 140
  150. ©2020 Wantedly, Inc. 2. ը໘ؒભҠͷͨΊͷϦϑΝΫλϦϯά 'SBHNFOU # 'SBHNFOU % 'SBHNFOU

    & 'SBHNFOU $ 'SBHNFOU " Feature X Feature Y 3PVUJOH *OUFSGBDF *OUFSGBDF ΋͠΋ಠࣗͷભҠϩδοΫ͕͋ͬͯ΋ɼ Navigation Component౳ʹ৐Γ׵͑ΒΕΔɽ ͜͜Ͱ΋DIPΛ׆༻͍ͯ͠Δʂ 4. Modularization as refactoring / ϦϑΝΫλͱͯ͠ͷϚϧνϞδϡʔϧԽ 141
  151. ©2020 Wantedly, Inc. 4. Modularization as refactoring / ϦϑΝΫλϦϯάͱͯ͠ͷϚϧνϞδϡʔϧԽ •

    བྷΈ߹ͬͨෳࡶͳؔ܎Λղ͖΄͙ͨ͢ΊʹͰ͖Δ͜ͱ 5. Modularization and Android Jetpack / JetpackͱϚϧνϞδϡʔϧ • NavigationͷಋೖͱޮՌ • ࣄྫ঺հ 6. A continuous process of modularization with feature development
 / ܧଓతʹػೳ։ൃΛߦ͍ͳ͕ΒਐΊΔͨΊʹ • ҰาҰาਐΊΔϞδϡʔϧԽ
 Outline ( 2 / 2 ) 142
  152. ©2020 Wantedly, Inc. 4. Modularization as refactoring / ϦϑΝΫλϦϯάͱͯ͠ͷϚϧνϞδϡʔϧԽ •

    བྷΈ߹ͬͨෳࡶͳؔ܎Λղ͖΄͙ͨ͢ΊʹͰ͖Δ͜ͱ 5. Modularization and Android Jetpack / JetpackͱϚϧνϞδϡʔϧ • NavigationͷಋೖͱޮՌ • ࣄྫ঺հ 6. A continuous process of modularization with feature development
 / ܧଓతʹػೳ։ൃΛߦ͍ͳ͕ΒਐΊΔͨΊʹ • ҰาҰาਐΊΔϞδϡʔϧԽ
 Outline ( 2 / 2 ) 143
  153. ©2020 Wantedly, Inc. 5. Modularization and Android Jetpack Android JetpackͱϚϧνϞδϡʔϧ

  154. ©2020 Wantedly, Inc. 5. Modularization and Android Jetpack / Android

    JetpackͱϚϧνϞδϡʔϧ ϚϧνϞδϡʔϧͱ૬ੑ͕ྑ͍ͱߟ͑Δͷ͸ Navigation Component 144
  155. ©2020 Wantedly, Inc. ϚϧνϞδϡʔϧͱ૬ੑ͕ྑ͍ͱߟ͑Δͷ͸ Navigation Component 145 5. Modularization and

    Android Jetpack / Android JetpackͱϚϧνϞδϡʔϧ
  156. ©2020 Wantedly, Inc. ϚϧνϞδϡʔϧͱ૬ੑ͕ྑ͍ͱߟ͑Δͷ͸ Navigation Component 146 5. Modularization and

    Android Jetpack / Android JetpackͱϚϧνϞδϡʔϧ
  157. ©2020 Wantedly, Inc. ϚϧνϞδϡʔϧͱ૬ੑ͕ྑ͍ͱߟ͑Δͷ͸ Navigation Component ը໘ભҠΛAS্Ͱ άϥϑΟΧϧʹදݱͰ͖Δɽ 147 5.

    Modularization and Android Jetpack / Android JetpackͱϚϧνϞδϡʔϧ
  158. ©2020 Wantedly, Inc. ϚϧνϞδϡʔϧͱ૬ੑ͕ྑ͍ͱߟ͑Δͷ͸ Navigation Component ը໘ભҠΛAS্Ͱ άϥϑΟΧϧʹදݱͰ͖Δɽ xmlͰهड़͞ΕΔ 148

    5. Modularization and Android Jetpack / Android JetpackͱϚϧνϞδϡʔϧ
  159. ©2020 Wantedly, Inc. ϚϧνϞδϡʔϧͱ૬ੑ͕ྑ͍ͱߟ͑Δͷ͸ Navigation Component ը໘ભҠΛAS্Ͱ άϥϑΟΧϧʹදݱͰ͖Δɽ xmlͰهड़͞ΕΔ ભҠ࣌ʹ஋Λ

    ஋Λ౉͢͜ͱ͕Ͱ͖Δ 149 5. Modularization and Android Jetpack / Android JetpackͱϚϧνϞδϡʔϧ
  160. ©2020 Wantedly, Inc. ϚϧνϞδϡʔϧͱ૬ੑ͕ྑ͍ͱߟ͑Δͷ͸ Navigation Component ը໘ભҠΛAS্Ͱ άϥϑΟΧϧʹදݱͰ͖Δɽ xmlͰهड़͞ΕΔ ભҠ࣌ʹ஋Λ

    ஋Λ౉͢͜ͱ͕Ͱ͖Δ 150 5. Modularization and Android Jetpack / Android JetpackͱϚϧνϞδϡʔϧ
  161. ©2020 Wantedly, Inc. ϚϧνϞδϡʔϧͱ૬ੑ͕ྑ͍ͱߟ͑Δͷ͸ Navigation Component ৄ͘͠͸ɽɽɽ ͪ͜Βͷηογϣϯ͕ ྑͦ͞͏ 151

    5. Modularization and Android Jetpack / Android JetpackͱϚϧνϞδϡʔϧ
  162. ©2020 Wantedly, Inc. Nested NavGraphͱϚϧνϞδϡʔϧΛ͏·͘׆༻͢Δ 152 5. Modularization and Android

    Jetpack / Android JetpackͱϚϧνϞδϡʔϧ
  163. ©2020 Wantedly, Inc. Nested NavGraphͱ͸ʁ 153 5. Modularization and Android

    Jetpack / Android JetpackͱϚϧνϞδϡʔϧ
  164. ©2020 Wantedly, Inc. Nested NavGraphͱ͸ʁ NavGraphͷதʹNavGraph͕͋Δߏ଄ 154 5. Modularization and

    Android Jetpack / Android JetpackͱϚϧνϞδϡʔϧ
  165. ©2020 Wantedly, Inc. Nested NavGraphͱ͸ʁ @id/navigatoin_graph @id/navigatoin_home @id/navigatoin_register @id/navigatoin_me NavGraphͷதʹNavGraph͕͋Δߏ଄

    155 5. Modularization and Android Jetpack / Android JetpackͱϚϧνϞδϡʔϧ
  166. ©2020 Wantedly, Inc. Nested NavGraphͱ͸ʁ NavGraphͷதʹNavGraph͕͋Δߏ଄ @id/navigatoin_graph @id/navigatoin_home @id/navigatoin_register @id/navigatoin_me

    Ϟδϡʔϧͷߏ੒ͱ/BW(SBQIΛ
 ରԠͤ͞Δࣄ͕Ͱ͖Δʂ 156 5. Modularization and Android Jetpack / Android JetpackͱϚϧνϞδϡʔϧ
  167. ©2020 Wantedly, Inc. @id/navigatoin_graph @id/navigatoin_home @id/navigatoin_register @id/navigatoin_me :app :feature A

    :feature B :feature C :feature D 157 5. Modularization and Android Jetpack / Android JetpackͱϚϧνϞδϡʔϧ
  168. ©2020 Wantedly, Inc. @id/navigatoin_graph @id/navigatoin_home @id/navigatoin_register @id/navigatoin_me :app :feature A

    :feature B :feature C :feature D ରԠ 158 5. Modularization and Android Jetpack / Android JetpackͱϚϧνϞδϡʔϧ
  169. ©2020 Wantedly, Inc. @id/navigatoin_graph @id/navigatoin_home @id/navigatoin_register @id/navigatoin_me :app :feature A

    :feature B :feature C :feature D ରԠ ରԠ 159 5. Modularization and Android Jetpack / Android JetpackͱϚϧνϞδϡʔϧ
  170. ©2020 Wantedly, Inc. @id/navigatoin_graph @id/navigatoin_home @id/navigatoin_register @id/navigatoin_me :app :feature A

    :feature B :feature C :feature D ରԠ ରԠ ରԠ 160 5. Modularization and Android Jetpack / Android JetpackͱϚϧνϞδϡʔϧ
  171. ©2020 Wantedly, Inc. @id/navigatoin_graph @id/navigatoin_home @id/navigatoin_register @id/navigatoin_me :app :feature A

    :feature B :feature C :feature D ରԠ ରԠ ରԠ ɾ ɾ ɾ 161 5. Modularization and Android Jetpack / Android JetpackͱϚϧνϞδϡʔϧ
  172. ©2020 Wantedly, Inc. @id/navigatoin_graph @id/navigatoin_home @id/navigatoin_register @id/navigatoin_me :app :feature A

    :feature B :feature C :feature D ରԠ ରԠ ରԠ ɾ ɾ ɾ /BW(SBQIΛ௨ͯ͠ɼ
 GFBUVSFϞδϡʔϧͷؔ܎͕͸͖ͬΓͱ͢Δʂ 162 5. Modularization and Android Jetpack / Android JetpackͱϚϧνϞδϡʔϧ
  173. ©2020 Wantedly, Inc. 4. Modularization as refactoring / ϦϑΝΫλϦϯάͱͯ͠ͷϚϧνϞδϡʔϧԽ •

    བྷΈ߹ͬͨෳࡶͳؔ܎Λղ͖΄͙ͨ͢ΊʹͰ͖Δ͜ͱ 5. Modularization and Android Jetpack / JetpackͱϚϧνϞδϡʔϧ • NavigationͷಋೖͱޮՌ • ࣄྫ঺հ 6. A continuous process of modularization with feature development
 / ܧଓతʹػೳ։ൃΛߦ͍ͳ͕ΒਐΊΔͨΊʹ • ҰาҰาਐΊΔϞδϡʔϧԽ
 Outline ( 2 / 2 ) 163
  174. ©2020 Wantedly, Inc. 4. Modularization as refactoring / ϦϑΝΫλϦϯάͱͯ͠ͷϚϧνϞδϡʔϧԽ •

    བྷΈ߹ͬͨෳࡶͳؔ܎Λղ͖΄͙ͨ͢ΊʹͰ͖Δ͜ͱ 5. Modularization and Android Jetpack / JetpackͱϚϧνϞδϡʔϧ • NavigationͷಋೖͱޮՌ • ࣄྫ঺հ 6. A continuous process of modularization with feature development
 / ܧଓతʹػೳ։ൃΛߦ͍ͳ͕ΒਐΊΔͨΊʹ • ҰาҰาਐΊΔϞδϡʔϧԽ
 Outline ( 2 / 2 ) 164
  175. ©2020 Wantedly, Inc. 6. A continuous process of modularization with

    feature development ܧଓతʹػೳ։ൃΛߦ͍ͳ͕ΒਐΊΔͨΊʹ
  176. ©2020 Wantedly, Inc. 6. A continuous process of modularization with

    feature development / 
 ܧଓతʹػೳ։ൃΛਐΊͳ͕Βߦ͏ͨΊʹ ͦ͏͸͍ͬͯ΋ɼػೳ։ൃ΋ฒߦͯ͠ଓ͚Δඞཁ͕͋Δɽ ϚϧνϞδϡʔϧԽ͚ͩʹઐ೦Ͱ͖ΔΘ͚Ͱ͸ͳ͍…. 165
  177. ©2020 Wantedly, Inc. ͳΜͷͨΊʹ :legacy moduleΛ࡞ͬͨͷ͔ʁ 6. A continuous process

    of modularization with feature development / 
 ܧଓతʹػೳ։ൃΛਐΊͳ͕Βߦ͏ͨΊʹ 166
  178. ©2020 Wantedly, Inc. :legacyʹػೳΛ௥Ճ͢Δͷ͸΄ͱΜͲ
 ͜Ε·ͰͱมΘΒͳ͍։ൃମݧͰ͋Δɽ 6. A continuous process of

    modularization with feature development / 
 ܧଓతʹػೳ։ൃΛਐΊͳ͕Βߦ͏ͨΊʹ 167
  179. ©2020 Wantedly, Inc. 1. What is a multi-module app? /

    ϚϧνϞδϡʔϧԽͱ͸ʁ 2. The first step is :app to :legacy / ͸͡ΊͷҰา͸:app͔Β:legacy΁ 3. A strategy of Gradle in multi-module app / ϚϧνϞδϡʔϧͱGradleઓུ 4. Modularization as refactoring / ϦϑΝΫλϦϯάͱͯ͠ͷϚϧνϞδϡʔϧԽ 5. Modularization and Android Jetpack / JetpackͱϚϧνϞδϡʔϧ 6. A continuous process of modularization with feature development
 / ܧଓతʹػೳ։ൃΛߦ͍ͳ͕ΒਐΊΔͨΊʹ 
 6. A continuous process of modularization with feature development / 
 ܧଓతʹػೳ։ൃΛਐΊͳ͕Βߦ͏ͨΊʹ 168
  180. ©2020 Wantedly, Inc. 1. What is a multi-module app? /

    ϚϧνϞδϡʔϧԽͱ͸ʁ 2. The first step is :app to :legacy / ͸͡ΊͷҰา͸:app͔Β:legacy΁ 3. A strategy of Gradle in multi-module app / ϚϧνϞδϡʔϧͱGradleઓུ 4. Modularization as refactoring / ϦϑΝΫλϦϯάͱͯ͠ͷϚϧνϞδϡʔϧԽ 5. Modularization and Android Jetpack / JetpackͱϚϧνϞδϡʔϧ 6. A continuous process of modularization with feature development
 / ܧଓతʹػೳ։ൃΛߦ͍ͳ͕ΒਐΊΔͨΊʹ 
 6. A continuous process of modularization with feature development / 
 ܧଓతʹػೳ։ൃΛਐΊͳ͕Βߦ͏ͨΊʹ 169
  181. ©2020 Wantedly, Inc. 1. What is a multi-module app? /

    ϚϧνϞδϡʔϧԽͱ͸ʁ 2. The first step is :app to :legacy / ͸͡ΊͷҰา͸:app͔Β:legacy΁ 3. A strategy of Gradle in multi-module app / ϚϧνϞδϡʔϧͱGradleઓུ 4. Modularization as refactoring / ϦϑΝΫλϦϯάͱͯ͠ͷϚϧνϞδϡʔϧԽ 5. Modularization and Android Jetpack / JetpackͱϚϧνϞδϡʔϧ 6. A continuous process of modularization with feature development
 / ܧଓతʹػೳ։ൃΛߦ͍ͳ͕ΒਐΊΔͨΊʹ 
 ͜ͷ4UFQ͑͞৐Γ੾Ε͹ɼ
 جຊతʹ͸ฒߦ։ൃ͕Մೳʂ 6. A continuous process of modularization with feature development / 
 ܧଓతʹػೳ։ൃΛਐΊͳ͕Βߦ͏ͨΊʹ 170
  182. ©2020 Wantedly, Inc. 6. A continuous process of modularization with

    feature development / 
 ܧଓతʹػೳ։ൃΛਐΊͳ͕Βߦ͏ͨΊʹ 171 1. What is a multi-module app? / ϚϧνϞδϡʔϧԽͱ͸ʁ 2. The first step is :app to :legacy / ͸͡ΊͷҰา͸:app͔Β:legacy΁ 3. A strategy of Gradle in multi-module app / ϚϧνϞδϡʔϧͱGradleઓུ 4. Modularization as refactoring / ϦϑΝΫλϦϯάͱͯ͠ͷϚϧνϞδϡʔϧԽ 5. Modularization and Android Jetpack / JetpackͱϚϧνϞδϡʔϧ 6. A continuous process of modularization with feature development
 / ܧଓతʹػೳ։ൃΛߦ͍ͳ͕ΒਐΊΔͨΊʹ 

  183. ©2020 Wantedly, Inc. 1. What is a multi-module app? /

    ϚϧνϞδϡʔϧԽͱ͸ʁ 2. The first step is :app to :legacy / ͸͡ΊͷҰา͸:app͔Β:legacy΁ 3. A strategy of Gradle in multi-module app / ϚϧνϞδϡʔϧͱGradleઓུ 4. Modularization as refactoring / ϦϑΝΫλϦϯάͱͯ͠ͷϚϧνϞδϡʔϧԽ 5. Modularization and Android Jetpack / JetpackͱϚϧνϞδϡʔϧ 6. A continuous process of modularization with feature development
 / ܧଓతʹػೳ։ൃΛߦ͍ͳ͕ΒਐΊΔͨΊʹ 
 6. A continuous process of modularization with feature development / 
 ܧଓతʹػೳ։ൃΛਐΊͳ͕Βߦ͏ͨΊʹ 172
  184. ©2020 Wantedly, Inc. 1. What is a multi-module app? /

    ϚϧνϞδϡʔϧԽͱ͸ʁ 2. The first step is :app to :legacy / ͸͡ΊͷҰา͸:app͔Β:legacy΁ 3. A strategy of Gradle in multi-module app / ϚϧνϞδϡʔϧͱGradleઓུ 4. Modularization as refactoring / ϦϑΝΫλϦϯάͱͯ͠ͷϚϧνϞδϡʔϧԽ 5. Modularization and Android Jetpack / JetpackͱϚϧνϞδϡʔϧ 6. A continuous process of modularization with feature development
 / ܧଓతʹػೳ։ൃΛߦ͍ͳ͕ΒਐΊΔͨΊʹ 
 ͜Ε͸ஈ֊తʹϞδϡʔϧΛ෼ׂ͍ͯ͘͠ ख๏ͷྫɽ 6. A continuous process of modularization with feature development / 
 ܧଓతʹػೳ։ൃΛਐΊͳ͕Βߦ͏ͨΊʹ 173
  185. ©2020 Wantedly, Inc. 1. What is a multi-module app? /

    ϚϧνϞδϡʔϧԽͱ͸ʁ 2. The first step is :app to :legacy / ͸͡ΊͷҰา͸:app͔Β:legacy΁ 3. A strategy of Gradle in multi-module app / ϚϧνϞδϡʔϧͱGradleઓུ 4. Modularization as refactoring / ϦϑΝΫλϦϯάͱͯ͠ͷϚϧνϞδϡʔϧԽ 5. Modularization and Android Jetpack / JetpackͱϚϧνϞδϡʔϧ 6. A continuous process of modularization with feature development
 / ܧଓతʹػೳ։ൃΛߦ͍ͳ͕ΒਐΊΔͨΊʹ 
 ͜Ε͸ஈ֊తʹϞδϡʔϧΛ෼ׂ͍ͯ͘͠ ख๏ͷྫɽ ͜ΕΒΛ౷߹ͨ͠ҠߦखॱྫΛࣔ͢ɽ 6. A continuous process of modularization with feature development / 
 ܧଓతʹػೳ։ൃΛਐΊͳ͕Βߦ͏ͨΊʹ 174
  186. ©2020 Wantedly, Inc. 1. :legacy -> :legacy΁ͷΞʔΩςΫνϟվม΍ϦϑΝΫλϦϯά 2. ੾Γग़͞ΕΔ૝ఆͰ࣮૷ΛਐΊΔ 3.

    ԼͷϨΠϠʔͱͳΔϞδϡʔϧ͔ΒҠߦ 5. ը໘ؒͷભҠγεςϜ͕׬੒͔ͯ͠ΒfeatureΛ෼ׂ 4. :legacy΁ͷdependencyΛ࣋ͨͳ͍Α͏ʹ࣮૷ 6. A continuous process of modularization with feature development / 
 ܧଓతʹػೳ։ൃΛਐΊͳ͕Βߦ͏ͨΊʹ 175
  187. ©2020 Wantedly, Inc. 1. :legacy -> :legacy΁ͷΞʔΩςΫνϟվม΍ϦϑΝΫλϦϯά 2. ੾Γग़͞ΕΔ૝ఆͰ࣮૷ΛਐΊΔ 3.

    ԼͷϨΠϠʔͱͳΔϞδϡʔϧ͔ΒҠߦ 5. ը໘ؒͷભҠγεςϜ͕׬੒͔ͯ͠ΒfeatureΛ෼ׂ 4. :legacy΁ͷdependencyΛ࣋ͨͳ͍Α͏ʹ࣮૷ 6. A continuous process of modularization with feature development / 
 ܧଓతʹػೳ։ൃΛਐΊͳ͕Βߦ͏ͨΊʹ 176
  188. ©2020 Wantedly, Inc. 1. :legacy -> :legacy΁ͷΞʔΩςΫνϟվม΍ϦϑΝΫλϦϯά 4. Modularization as

    refactoring / ϦϑΝΫλͱͯ͠ͷϚϧνϞδϡʔϧԽ ΛਐΊΔ 1. ໌֬ͳarchitectureΛࡦఆ͢Δ 2. DIPΛۦ࢖͢Δ 6. A continuous process of modularization with feature development / 
 ܧଓతʹػೳ։ൃΛਐΊͳ͕Βߦ͏ͨΊʹ 177
  189. ©2020 Wantedly, Inc. 1. :legacy -> :legacy΁ͷΞʔΩςΫνϟվม΍ϦϑΝΫλϦϯά 1. ໌֬ͳarchitectureΛࡦఆ͢Δ 2.

    DIPΛۦ࢖͢Δ ͜͜Ͱɼ৽ͨͳarchitectureʹଇͬͨ৔߹͸ PackageΛ෼͚Δͱྑ͍ɽ ΛਐΊΔ 6. A continuous process of modularization with feature development / 
 ܧଓతʹػೳ։ൃΛਐΊͳ͕Βߦ͏ͨΊʹ 178 4. Modularization as refactoring / ϦϑΝΫλͱͯ͠ͷϚϧνϞδϡʔϧԽ
  190. ©2020 Wantedly, Inc. 1. :legacy -> :legacy΁ͷΞʔΩςΫνϟվม΍ϦϑΝΫλϦϯά 3. ԼͷϨΠϠʔͱͳΔϞδϡʔϧ͔ΒҠߦ 5.

    ը໘ؒͷભҠγεςϜ͕׬੒͔ͯ͠ΒfeatureΛ෼ׂ 4. :legacy΁ͷdependencyΛ࣋ͨͳ͍Α͏ʹ࣮૷ 2. ੾Γग़͞ΕΔ૝ఆͰ࣮૷ΛਐΊΔ 6. A continuous process of modularization with feature development / 
 ܧଓతʹػೳ։ൃΛਐΊͳ͕Βߦ͏ͨΊʹ 179
  191. ©2020 Wantedly, Inc. 2. ੾Γग़͞ΕΔ૝ఆͰ࣮૷ΛਐΊΔ - internalम০ࢠΛ͚ͭΔ͜ͱͰείʔϓͷՄࢹൣғΛ੍ݶ͢Δɽ - ಉ͡Ϟδϡʔϧʹ੾Γग़͍ͨ͠΋ͷಉ࢜͸ಉ͡package໊Ͱ੾Γग़͢ɽ -

    :legacyʹ௥Ճͤͣʹ࣮ݱͰ͖ͦ͏ͳΒੵۃతʹϞδϡʔϧΛ࡞ͬͯΈΔɽ ػցతʹ஄͘ͷ͕ͳ͔ͳ͔೉͍͠ͷͰPRͷϨϏϡʔͳͲͰҙࣝ͢Δɽ νʔϜͱͯ͠ϞδϡʔϧԽʹऔΓ૊ΜͰ͍Δ͜ͱΛҙࣝ͢Δʂ 6. A continuous process of modularization with feature development / 
 ܧଓతʹػೳ։ൃΛਐΊͳ͕Βߦ͏ͨΊʹ 180
  192. ©2020 Wantedly, Inc. 1. :legacy -> :legacy΁ͷΞʔΩςΫνϟվม΍ϦϑΝΫλϦϯά 5. ը໘ؒͷભҠγεςϜ͕׬੒͔ͯ͠ΒfeatureΛ෼ׂ 4.

    :legacy΁ͷdependencyΛ࣋ͨͳ͍Α͏ʹ࣮૷ 2. ੾Γग़͞ΕΔ૝ఆͰ࣮૷ΛਐΊΔ 3. ԼͷϨΠϠʔͱͳΔϞδϡʔϧ͔ΒҠߦ 6. A continuous process of modularization with feature development / 
 ܧଓతʹػೳ։ൃΛਐΊͳ͕Βߦ͏ͨΊʹ 181
  193. ©2020 Wantedly, Inc. 3. ԼͷϨΠϠʔͱͳΔϞδϡʔϧ͔ΒҠߦ 6. A continuous process of

    modularization with feature development / 
 ܧଓతʹػೳ։ൃΛਐΊͳ͕Βߦ͏ͨΊʹ 182
  194. ©2020 Wantedly, Inc. :app :feature A :feature B :feature C

    :feature D :library X :library Y :library Z :core :constants :hoge :piyo 3. ԼͷϨΠϠʔͱͳΔϞδϡʔϧ͔ΒҠߦ :app :legacy 6. A continuous process of modularization with feature development / 
 ܧଓతʹػೳ։ൃΛਐΊͳ͕Βߦ͏ͨΊʹ 183
  195. ©2020 Wantedly, Inc. :app :feature A :feature B :feature C

    :feature D :library X :library Y :library Z :core :constants :hoge :piyo :app :legacy 3. ԼͷϨΠϠʔͱͳΔϞδϡʔϧ͔ΒҠߦ 6. A continuous process of modularization with feature development / 
 ܧଓతʹػೳ։ൃΛਐΊͳ͕Βߦ͏ͨΊʹ 184
  196. ©2020 Wantedly, Inc. :app :feature A :feature B :feature C

    :feature D :library X :library Y :library Z :core :constants :hoge :piyo :app :legacy 3. ԼͷϨΠϠʔͱͳΔϞδϡʔϧ͔ΒҠߦ ԼҐͷϨΠϠʔ͔ΒϞδϡʔϧ෼͚Λߦ͏ ͜ͱͰɼMFHBDZΛ΋ͭඞཁ͕ͳ͍ʂ 6. A continuous process of modularization with feature development / 
 ܧଓతʹػೳ։ൃΛਐΊͳ͕Βߦ͏ͨΊʹ 185
  197. ©2020 Wantedly, Inc. :app :feature A :feature B :feature C

    :feature D :library X :library Y :library Z :core :constants :hoge :piyo :app :legacy 3. ԼͷϨΠϠʔͱͳΔϞδϡʔϧ͔ΒҠߦ ԼҐͷϨΠϠʔ͔ΒϞδϡʔϧ෼͚Λߦ͏ ͜ͱͰɼMFHBDZΛ΋ͭඞཁ͕ͳ͍ʂ "OESPJE"1*Ҏ֎ͷΈͰߏ੒͞ΕΔॴ ΍DPOTU஋ͳͲҠߦ͠΍͍͢ʂ 6. A continuous process of modularization with feature development / 
 ܧଓతʹػೳ։ൃΛਐΊͳ͕Βߦ͏ͨΊʹ 186
  198. ©2020 Wantedly, Inc. 2. ੾Γग़͞ΕΔ૝ఆͰ࣮૷ΛਐΊΔ 3. ԼͷϨΠϠʔͱͳΔϞδϡʔϧ͔ΒҠߦ 5. ը໘ؒͷભҠγεςϜ͕׬੒͔ͯ͠ΒfeatureΛ෼ׂ 1.

    :legacy -> :legacy΁ͷΞʔΩςΫνϟվม΍ϦϑΝΫλϦϯά 4. :legacy΁ͷdependencyΛ࣋ͨͳ͍Α͏ʹ࣮૷ 6. A continuous process of modularization with feature development / 
 ܧଓతʹػೳ։ൃΛਐΊͳ͕Βߦ͏ͨΊʹ 187
  199. ©2020 Wantedly, Inc. 4. :legacy΁ͷdependencyΛ࣋ͨͳ͍Α͏ʹ࣮૷ MFHBDZ΁ͷґଘ͸ɼࠩ෼Ϗϧυ࣌ʹڊେͳ
 Ϟδϡʔϧ΁ͷࢀরΛੜΉ͜ͱʹͳΔͷͰආ͚Δ 6. A continuous

    process of modularization with feature development / 
 ܧଓతʹػೳ։ൃΛਐΊͳ͕Βߦ͏ͨΊʹ 188
  200. ©2020 Wantedly, Inc. 5. ը໘ؒͷભҠγεςϜ͕׬੒͔ͯ͠ΒfeatureΛ෼ׂ 6. A continuous process of

    modularization with feature development / 
 ܧଓతʹػೳ։ൃΛਐΊͳ͕Βߦ͏ͨΊʹ 189
  201. ©2020 Wantedly, Inc. 5. ը໘ؒͷભҠγεςϜ͕׬੒͔ͯ͠ΒfeatureΛ෼ׂ 5. Modularization and Android Jetpack

    / Android JetpackͱϚϧνϞδϡʔϧ ΛਐΊΔ 6. A continuous process of modularization with feature development / 
 ܧଓతʹػೳ։ൃΛਐΊͳ͕Βߦ͏ͨΊʹ 190
  202. ©2020 Wantedly, Inc. 1. :legacy -> :legacy΁ͷΞʔΩςΫνϟվม΍ϦϑΝΫλϦϯά 2. ੾Γग़͞ΕΔ૝ఆͰ࣮૷ΛਐΊΔ 3.

    ԼͷϨΠϠʔͱͳΔϞδϡʔϧ͔ΒҠߦ 5. ը໘ؒͷભҠγεςϜ͕׬੒͔ͯ͠ΒfeatureΛ෼ׂ 4. :legacy΁ͷdependencyΛ࣋ͨͳ͍Α͏ʹ࣮૷ 6. A continuous process of modularization with feature development / 
 ܧଓతʹػೳ։ൃΛਐΊͳ͕Βߦ͏ͨΊʹ 191
  203. ©2020 Wantedly, Inc. Conclusion / ·ͱΊ 1. :app → :legacyʹಈ͔͢ͷ͕େ੾ͳୈҰา

    2. ϦϑΝΫλϦϯάͱͯ͠ͷจ຺͕ͱͯ΋େ͖͍ɽ 3. νʔϜͰίϛϡχέʔγϣϯΛద੾ʹऔΓͳ͕ΒਐΊΑ͏ 192