RIBs アーキテクチャについての紹介。RIBs への理解の手助けになれば幸いです。
参考文献: ・JapanTaxi iOSアプリにRIBsアーキテクチャを導入して得られたこと https://lab.mo-t.com/blog/andonlabo-4-ribs-ios-app
・RIBs アーキテクチャにおける Unit Test への取り組み https://lab.mo-t.com/blog/andonlabo-ios-ribs-unit-test
ॳΊͯͷ3*#T
View Slide
3*#TIUUQTHJUIVCDPNVCFS3*#T
3*#TΛ࠾༻͍ͯ͠ΔΞϓϦ
ୈҰষɿ3*#Tͱ
3*#Tͱ3*#TΛߏ͢Δͷ3PVUFSϏδωεϩδοΫͷϧʔςΟϯάΛ୲͏ඞཁͰ͋Εը໘ભҠ͓͜ͳ͏*OUFSBDUPSϏδωεϩδοΫ௨৴ॲཧɺঢ়ଶͷߋ৽ɺ1SFTFOUFS3PVUFSͷ໋ྩ#VJMEFS3PVUFSͱ*OUFSBDUPSͷੜʢඞཁͰ͋Ε1SFTFOUFSʣੜ࣌ʹ%*Λ͓͜ͳ͏
3*#TͱͦΕͧΕ͕ͲͷΑ͏ʹίϛϡχέʔγϣϯ͍ͯ͠Δͷ͔
#VJMEFS#VJMEFSʢᶃ1SFTFOUFSͷੜɺॳظԽʹඞཁͳใΛ%*ʣ3*#Tʹ͓͍ͯɺ1SFTFOUFSඞͣ͠ඞཁͰͳ͍1SFTFOUFS
#VJMEFS#VJMEFS*OUFSBDUPS 1SFTFOUFSᶄ*OUFSBDUPSͷੜɺॳظԽʹඞཁͳใΛ%*
#VJMEFS#VJMEFS*OUFSBDUPS 1SFTFOUFSᶅ3PVUFSͷੜɺॳظԽʹඞཁͳใΛ%*ੜ͞Εͨ3PVUFSΛฦ͢3PVUFS
3PVUFS3PVUFSॳظԽ࣌ʹɺ࣍ͷϧʔςΟϯάઌͷ#VJMEFSΛอ͍࣋ͯ͠ΔࣗΛʮʯͱ͢ΔͱɺϧʔςΟϯάઌ͕ʮࢠʯʹͳΔ3PVUFS$IJME3*#`T#VJMEFS
3PVUFSࢠ3*#ͷ#VJMEFSΛ͍ɺࢠ3*#ͷ3PVUFSΛऔಘ͢Δ3PVUFS$IJME3*#`T#VJMEFS*OUFSBDUPS 1SFTFOUFS3PVUFSbuild()
3PVUFSࢠ3*#ͷ3PVUFSΛ׆ੑঢ়ଶʢBDUJWFʣʹ͢Δ׆ੑঢ়ଶʹͳΔͱɺͦͷ3*#ͷ*OUFSBDUPSͷॲཧ͕։࢝͢Δ3PVUFS3PVUFSattachChild()
3PVUFSʢඞཁͰ͋Εɺࢠ3*#ͷ1SFTFOUFSΛදࣔ͢Δʣ3PVUFS3PVUFSpresent()1SFTFOUFS1SFTFOUFS
3PVUFSࢠ3*#ͷ3PVUFSΛඇ׆ੑঢ়ଶʢEFBDUJWFʣʹ͢Δඇ׆ੑঢ়ଶʹͳΔͱɺͦͷ3*#ͷ*OUFSBDUPSͷॲཧ͕ఀࢭ͢ΔʢϝϞϦ্͔Βফ͑Δʣ3PVUFS3PVUFSdetachChild()
3PVUFSʢඞཁͰ͋Εɺࢠ3*#ͷ1SFTFOUFSΛඇදࣔ͢Δʣ3PVUFS3PVUFSdismiss()1SFTFOUFS1SFTFOUFS
*OUFSBDUPS3PVUFSͷ໋ྩ࣍ͷϏδωεϩδοΫͷϧʔςΟϯάΛࢦࣔ͢Δ*OUFSBDUPS 1SFTFOUFS3PVUFSRouting
*OUFSBDUPSʢ1SFTFOUFSͷ໋ྩʗ1SFTFOUFS͔Βͷ໋ྩʣ7JFXͷഎܠ৭Λม͑Δɺ-BCFMͷςΩετΛߋ৽ͤ͞ΔϘλϯ͕ԡ͞Εͨॲཧͷҕৡ*OUFSBDUPS 1SFTFOUFS3PVUFSPresentablePresentableListener
*OUFSBDUPSࢠ3*#ͷ*OUFSBDUPS͔Βͷ໋ྩΛड͚Δʢʹ3*#ͷ*OUFSBDUPS໋ྩ͢Δʣ*OUFSBDUPS 1SFTFOUFS3PVUFS*OUFSBDUPS 1SFTFOUFS3PVUFSListener
*OUFSBDUPS͕͍ͬͯΔ͜ͱྫɿࢠ3*#ͷ1SFTFOUFSͰด͡ΔϘλϯ͕ԡ͞Εͨ߹ᶃࢠ3*#ͷ*OUFSBDUPS͕ด͡ΔϘλϯ͕ԡ͞Εͨ͜ͱΛݕ͠ɺᶄ3*#ͷ*OUFSBDUPSʹը໘Λด͡ΔΑ͏௨͢Δᶅ3*#ͷ*OUFSBDUPSɺࣗͷ3PVUFSʹEFUBDIΛཁٻ͢Δ*OUFSBDUPS 1SFTFOUFS3PVUFS*OUFSBDUPS 1SFTFOUFS3PVUFS②①③
3*#ͷίϛϡχέʔγϣϯ·ͱΊ#VJMEFS$IJME3*#`T#VJMEFS*OUFSBDUPS 1SFTFOUFS3PVUFS*OUFSBDUPS 1SFTFOUFS3PVUFSListenerPresentablePresentableListenerRouting
3*#TͷϥΠϑαΠΫϧparentRouter.attachChild()load()internalDidLoad()didLoad()parentRouter.detachChild()activate()didBecomeActive()deactivate()willResignActive()3PVUFS*OUFSBDUPS
3*#TͷϥΠϑαΠΫϧ3*#T7JFX$POUSPMMFSͷϥΠϑαΠΫϧʹґଘ͠ͳ͍
ϏδωεϩδοΫͲ͓ΓʹΞϓϦ͕ߏ͞ΕΔ3*#T7JFX$POUSPMMFSͷϥΠϑαΠΫϧʹґଘ͠ͳ͍
ΫϩεϓϥοτϑΥʔϜϏδωεϩδοΫͲ͓ΓʹΞϓϦ͕ߏ͞ΕΔ3*#T7JFX$POUSPMMFSͷϥΠϑαΠΫϧʹґଘ͠ͳ͍J04"OESPJEͰઃܭΛڞ௨ԽͰ͖Δ
ୈೋষɿϧʔςΟϯά
ΞϓϦͷϏδωεϩδοΫΞϓϦىಈ࣌ͷॲཧϝϯςφϯεϞʔυ͔Ͳ͏͔ͷ֬ೝɾࢹڧ੍Ξοϓσʔτͷ֬ೝར༻نͷΞοϓσʔτͷ֬ೝϩάΠϯঢ়ଶͳΒʜʜϢʔβใͷऔಘ1VTI௨Ի௨ͷࢹਤͷදࣔɹɹFUDϩάΞτঢ়ଶͳΒʜʜϩάΠϯը໘ભҠɹFUD
ΞϓϦͷϏδωεϩδοΫ3PPU -PHHFE*O-PHHFE0VU'FUDI6TFS8FMDPNF.BQ7P*1$BMMJOH.POJUPS1VTI/PUJpDBUJPO.POJUPS$IFDL'PSDF6QHSBEF.BJOUFOBODF.POJUPS$IFDL5FSNT0G6TFɾɾɾɾɾɾɾɾɾ
3*#TπϦʔ3*#TͰϏδωεϩδοΫΛπϦʔߏͰදݱ͠ɺϏδωεϩδοΫʹ͕ͨͬͯ͠ϧʔςΟϯά͢ΕΑ͍
3PPU -PHHFE*O-PHHFE0VU'FUDI6TFS8FMDPNF.BQ7P*1$BMMJOH.POJUPS1VTI/PUJpDBUJPO.POJUPS$IFDL'PSDF6QHSBEF.BJOUFOBODF.POJUPS$IFDL5FSNT0G6TFɾɾɾɾɾɾɾɾɾ3*#TπϦʔΛͱʹϧʔςΟϯάΛߟ͑ΔϝϯςφϯεϞʔυ͔Ͳ͏͔ͷ֬ೝɾࢹڧ੍Ξοϓσʔτͷ֬ೝར༻نͷΞοϓσʔτͷ֬ೝϩάΠϯঢ়ଶͳΒʜʜϢʔβใͷऔಘ1VTI௨ͷࢹԻ௨ͷࢹਤͷදࣔɹϩάΞτঢ়ଶͳΒʜʜϩάΠϯը໘ભҠ
3*#TπϦʔΛͱʹϧʔςΟϯάΛߟ͑ΔϝϯςφϯεϞʔυ͔Ͳ͏͔ͷ֬ೝɾࢹڧ੍Ξοϓσʔτͷ֬ೝར༻نͷΞοϓσʔτͷ֬ೝϩάΠϯঢ়ଶͳΒʜʜϢʔβใͷऔಘ1VTI௨ͷࢹԻ௨ͷࢹਤͷදࣔɹϩάΞτঢ়ଶͳΒʜʜϩάΠϯը໘ભҠ3PPU -PHHFE*O-PHHFE0VU'FUDI6TFS8FMDPNF.BQ7P*1$BMMJOH.POJUPS1VTI/PUJpDBUJPO.POJUPS$IFDL'PSDF6QHSBEF.BJOUFOBODF.POJUPS$IFDL5FSNT0G6TFɾɾɾɾɾɾɾɾɾ
ϝϯςφϯεϞʔυ͔Ͳ͏͔ͷ֬ೝɾࢹڧ੍Ξοϓσʔτͷ֬ೝར༻نͷΞοϓσʔτͷ֬ೝϩάΠϯঢ়ଶͳΒʜʜϢʔβใͷऔಘ1VTI௨ͷࢹԻ௨ͷࢹਤͷදࣔɹϩάΞτঢ়ଶͳΒʜʜϩάΠϯը໘ભҠ3PPU -PHHFE*O-PHHFE0VU'FUDI6TFS8FMDPNF.BQ7P*1$BMMJOH.POJUPS1VTI/PUJpDBUJPO.POJUPS$IFDL'PSDF6QHSBEF.BJOUFOBODF.POJUPS$IFDL5FSNT0G6TFɾɾɾɾɾɾɾɾɾ3*#TπϦʔΛͱʹϧʔςΟϯάΛߟ͑Δ
ϝϯςφϯεϞʔυ͔Ͳ͏͔ͷ֬ೝɾࢹڧ੍Ξοϓσʔτͷ֬ೝར༻نͷΞοϓσʔτͷ֬ೝϩάΠϯঢ়ଶͳΒʜʜϢʔβใͷऔಘ1VTI௨ͷࢹԻ௨ͷࢹਤͷදࣔϩάΞτঢ়ଶͳΒʜʜϩάΠϯը໘ભҠ3PPU -PHHFE*O-PHHFE0VU'FUDI6TFS8FMDPNF.BQ7P*1$BMMJOH.POJUPS1VTI/PUJpDBUJPO.POJUPS$IFDL'PSDF6QHSBEF.BJOUFOBODF.POJUPS$IFDL5FSNT0G6TFɾɾɾɾɾɾɾɾɾ3*#TπϦʔΛͱʹϧʔςΟϯάΛߟ͑Δ
3*#TπϦʔؔ࿈ͷϥΠϒϥϦIUUQTHJUIVCDPNTSFB3*#T5SFF7JFXFS$MJFOUϦΞϧλΠϜʹBUUBDI͞Ε͍ͯΔ3PVUFSΛՄࢹԽ
3*#TπϦʔؔ࿈ͷϥΠϒϥϦ3*#TπϦʔͷશମ૾Λग़ྗ͢ΔIUUQTHJUIVCDPNJNBJSJ3*#T5SFF.BLFS
ୈࡾষɿ4USFBN
3*#Tʹ͓͚Δใڞ༗3*#ಉ࢜ͷίϛϡχέʔγϣϯͲͷΑ͏ʹͯ͠ߦ͑Α͍͔
3*#Tʹ͓͚Δใڞ༗ʢͦͷʣઌͷ3*#ʹใΛ͢ʹʜ+͔ΒͰ͋Δ'ɺͦͷઌͰ͋Δ$"ʹใΛ͢ʹͲ͏͢ΕΑ͍͔"'&%#$+*)(
"'&%#$+*)(3*#Tʹ͓͚Δใڞ༗ʢͦͷʣͷ3*#ͦΕΑΓઌʹ͋Δઌͷ3*#ʹใΛ͢߹ɺ*OUFSBDUPSͷ-JTUFOFSܦ༝Ͱߦ͏͜ͱ͕Ͱ͖ΔListenerListenerListener
3*#Tʹ͓͚Δใڞ༗ʢͦͷʣࢠͷ3*#ʹใΛ͢ʹʜ'͔Β+ͳͲ͔Βࢠʢ੩తͳʣใΛ͢ʹͲ͏͢ΕΑ͍͔"'&%#$+*)(
3*#Tʹ͓͚Δใڞ༗ʢͦͷʣࢠͷ3*#͕·ͩੜ͞Ε͍ͯͳ͍߹ɺ#VJMEFSʹΑΔੜ࣌ʹ%*͢Δ͜ͱͰʢ੩తͳʣใΛ͢͜ͱ͕Ͱ͖Δ"'&%#$+*)(Builder ʹΑΔੜ࣌ʹ%*͢Δ
3*#Tʹ͓͚Δใڞ༗ʢͦͷʣ͢Ͱʹଘࡏ͢Δࢠͷ3*#ʹʢಈతͳʣใΛ͢ʹʜʢ'͔Β+ʣ͢Ͱʹଘࡏ͢Δܑఋੰͷ3*#ʹʢಈతͳʣใΛ͢ʹʜʢ(͔Β+ʣ"'&%#$+*)(
4USFBN3*#Tʹ͓͚Δใڞ༗ʢͦͷʣ
3*#Tʹ͓͚Δใڞ༗ʢͦͷʣʮ4USFBNʯΛར༻͢Δ͜ͱͰɺͲΜͳ3*#ಉ࢜Ͱใͷڞ༗͕ՄೳʹͳΔ4USFBNͱڞ༗͍ͨ͠ใΛอ࣋͢ΔߏମใΛڞ༗͍ͨ͠3*#ͱͷڞ௨ͷઌ3*#Ͱੜ͢Δshared { … }Ͱ࣮͢Δ͜ͱͰಉ͡ͷΛڞ༗Ͱ͖Δੜ͞Εͨ4USFBNΛ3*#ੜ࣌ʹ%*͠ɺͦΕͧΕͷ3*#Ͱอ࣋͢Δใͷऔಘߋ৽4USFBNܦ༝Ͱ҆શʹߦ͑Δ
3*#Tʹ͓͚Δใڞ༗ʢͦͷʣͨͱ͑ɺ(ͱ+ͷڞ௨ͷઌ$ͱͳΔʢ"ͰΑ͍ʣ"'&%#$+*)(
3*#Tʹ͓͚Δใڞ༗ʢͦͷʣ"'&%#$+*)(ᶃ$3*#ͷ$PNQPOFOUͰใڞ༗༻ͷ4USFBNΛshared { … }Ͱ࡞͢Δʢ$3*#Լ·ͩ࡞͞Ε͍ͯͳ͍ʣ4USFBN
ᶄ$3*#Լͷ3*#ੜ࣌ʹ%FQFOEFODZͱͯ͠4USFBNΛࢠ3*#ʹൖͤ͞Δ3*#Tʹ͓͚Δใڞ༗ʢͦͷʣ"'&%#$+*)(4USFBN
ᶅใڞ༗͍ͨ͠3*#ͷॳظԽ࣌ʹ4USFBNΛ%*͢Δ3*#Tʹ͓͚Δใڞ༗ʢͦͷʣ"'&%#$+*)(4USFBN
ᶆڞ༗͞Εͨ4USFBNΛհͯ͠ใͷߋ৽ͱऔಘΛߦ͏3*#Tʹ͓͚Δใڞ༗ʢͦͷʣ"'&%#$+*)(4USFBNߋ৽औಘ
ྫɿจใΛѻ͏0SEFSΛڞ༗͍ͨ͠ڞ༗͞ΕͨใΛड͚औΔͨΊͷʮ0SEFS4USFBNʯΛ1SPUPDPMͱͯ͠ఆٛ͢Δڞ༗͞ΕͨใΛߋ৽͢ΔͨΊͷʮ.VUBCMF0SEFS4USFBNʯಉ༷ʹఆٛ͢Δ.VUBCMF0SEFS4USFBN0SEFS4USFBNʹ४ڌͤ͞Δߋ৽༻ͷ4USFBNͰใΛड͚औΓ͍ͨ͜ͱ͕͋ΔͨΊ3*#Tʹ͓͚Δใڞ༗ʢͦͷʣ
ྫɿจใΛѻ͏0SEFSΛڞ༗͍ͨ͠.VUBCMF0SEFS4USFBNʹ४ڌͨ͠4USFBNΛ࡞͢ΔQSJWBUFͰใΛอ࣋͢ΔͨΊͷϓϩύςΟΛఆٛ͢Δ3*#Tʹ͓͚Δใڞ༗ʢͦͷʣ0SEFS4USFBNͷ࣮.VUBCMF0SEFS4USFBNͷ࣮
ྫɿจใΛѻ͏0SEFSΛڞ༗͍ͨ͠ڞ௨ͷઌͷ3*#Ͱ4USFBNੜ͢ΔTIBSFEͰғΉ͜ͱͰಉҰ$PNQPOFOUͰҰ͚ͩॳظԽ͕ߦΘΕɺҎޙ࠶ར༻͞ΕΔΈ3*#Tʹ͓͚Δใڞ༗ʢͦͷʣ
ྫɿจใΛѻ͏0SEFSΛڞ༗͍ͨ͠ੜͨ͠4USFBN%FQFOEFODZΛར༻ͯ͠ࢠ3*#ൖͤ͞ΔใΛߋ৽͢Δ3*#Ͱɺ.VUBCMF0SEFS4USFBNͱͯ͠ൖใΛड৴͢Δ3*#Ͱɺ0SEFS4USFBNͱͯ͠ൖ3*#Tʹ͓͚Δใڞ༗ʢͦͷʣ(3*#ͰใΛߋ৽͢Δ +3*#ͰใΛड৴͢Δ͚ͩ
4USFBNΛ͑ɺͯ͢ͷ3*#ؒͰใڞ༗͕͔ΜͨΜʹߦ͑Δʢ4USFBNͷཚ༻ʹҙʣ3*#Tʹ͓͚Δใڞ༗
ୈ࢛ষɿ8PSLGMPX
ಛఆͷ3*#·Ͱଓ͍ͨ͠63-4DIFNFͳͲͰΞϓϦΛىಈͨ͠߹ɺಛఆͷ3*#·ͰͲͷΑ͏ʹͭͳ͍͚͛ͯΑ͍ͷ͔
ಛఆͷ3*#·Ͱଓ͍ͨ͠"'&%#$+*)((3*#ΛBUUBDI͍ͨ͠
ಛఆͷ3*#·Ͱଓ͍ͨ͠"'&%#$+*)("ˠ$ˠ%ˠ(ͷॱ൪ʹBUUBDI͍ͨ͠ʢ͜ͷखॱΛ౿·ͳ͚Ε(3*#BUUBDIͰ͖ͳ͍ʣ
ಛఆͷ3*#·Ͱଓ͍ͨ͋͠Δ3*#ΛBUUBDI͢ΔʢͰ͖Δʣ·Ͱʹ༷ʑͳॲཧ͕ଘࡏ͢Δ-PHHFE*O3*#ΛBUUBDI͢ΔʹϩάΠϯॲཧ͕ඞཁϩάΠϯޙϢʔβͷใΛऔಘ͢Δ·Ͱػ͠ͳ͚ΕͳΒͳ͍ΠϨΪϡϥʔͳఔ͕ࠩ͠ࠐ·ΕΔ߹͋Δ֤छύʔϛογϣϯͷڐՄΛଅ͢ը໘ΩϟϯϖʔϯͳͲͷ͓Βͤ
8PSLGMPXಛఆͷ3*#·ͰͷBUUBDIΛࣗಈతʹߦ͑ΔΈʢ3*#TͷΈΛ׆͔ͯ͠ɺͻͱखؒՃ͑Δ͚ͩͰ0,ʣ63-4DIFNFͰىಈͨ͠ͱ͖ͳͲʹར༻Ͱ͖ΔϢʔβ͕͋ΔΞΫγϣϯΛߦͬͨΓɺಛఆͷॲཧ͕ऴΘΔ·Ͱػͤ͞Δ͜ͱ͕Ͱ͖Δ8PSLGMPXͱ
8PSLGMPXͱΫʔϙϯϦετΛ։͘·ͰͷྲྀΕΛ8PSLGMPXͰදݱͰ͖ΔϩάΠϯ͞ΕΔ·ͰͭˠϢʔβใͷऔಘྃ·ͰͭˠΫʔϙϯϦετΛ։͘
8PSLGMPXͱ8PSLGMPXΛͬͯɺ͋ΔॲཧΛൃಈͤ͞Δ·ͰͷྲྀΕΛهड़͢Δ్தͰܦ༝͢Δ3*#ͷ*OUFSBDUPSʹɺ8PSLGMPX༻ͷ1SPUPDPMΛ४ڌͤ͞Δͦͷ1SPUPDPMΛհͯ͠8PSLGMPXͰͷॲཧཱ͕͢Δ6CFSͷྫͰʮ"DUJPOBCMF*UFNʯͱ͍͏໊લͰఆٛ͞Ε͍ͯΔجຊతʹɺطଘͷ࣮ʹ্هͷ8PSLGMPX༻ͷॲཧΛগ͠Ճ͢Δ͚ͩͰ0,63-4DIFNFͷ࣮ಠࣗͷελΠϧʹͳΓ͕ͪͳͷͰɺ͜͏͍ͬͨΈ͕͋Δͱ౷Ұײ͕͋ͬͯΑ͍ͷ͔͠Εͳ͍
͓ΘΓʹ
3*#TಋೖޙͷޮՌϏδωεϩδοΫΛࡉԽ࣮ͯ͠Ͱ͖ΔΑ͏ʹͳͬͨ3*#T3PVUFSฏۉߦɺ*OUFSBDUPSฏۉߦɺ#VJMEFSฏۉߦ7JFX$POUSPMMFSฏۉߦʢίʔυϨΠΞτؚΉʣ7JFXʹґଘ͠ͳ͍ઃܭ࣮͕࣮ݱ͞ΕͨࡉԽ͞Εͨ3*#ଞͷॴͰ࠶ར༻Մೳʢ%3:ʣ
3*#TಋೖޙͷޮՌෳਓ։ൃ͕͘͢͠ͳͬͨґଘ͕ؔՄࢹԽ͞Ε͔ͯΓ͍͢ίϯϑϦΫτ͕࠷খݶʹͳΔʢ༧ଌՄೳͳίϯϑϦΫτʹͳΔʣ%*͕͖ͪΜͱߦ͑ΔͷͰ6OJU5FTU͔͖͍͢3PVUFS *OUFSBDUPSͷςετ͕༰қʹ͔͚ΔʢJ04"OESPJEͷઃܭΛ౷Ұ͢Δ͜ͱ͕Ͱ͖Δʣ
3*#TͷಋೖखॱݱࡏͷΞʔΩςΫνϟ͔Β3*#TΓସ͍͑ͨʜʜʂ3*#T෦తͳಋೖ͕Մೳ3PPU "QQ%FMFHBUF͔Βͷஔ͖͕͑ཧ͕ͩɺ్த͔ΒͰՄೳΞϓϦશମΛ3*#TͰ౷Ұ͢Δ΄͏͕ޮՌେ͖͘ͳΔͳΜͪΌͬͯ3*#ԽʢΨϫ3*#ʣͰπϦʔߏ͚ͩΛઌʹ࡞Δͷ͋Γ3*#T3PVUFSʹΑΔϧʔςΟϯά͕؊ͳͷͰ͚ͦͩ͜Λ·͖ͣͪΜͱ࡞ΓɺϏδωεϩδοΫ7JFX·ΘΓΛޙճ͠ʹ͢Δ͜ͱՄೳΨϫ3*#ঢ়ଶΛܧଓͯ͠͠·͏ͱɺࠓޙͷ։ൃʹӨڹ͕͋ΔͷͰҙΞϓϦͷ༷ΛཧɾѲ͠ɺ3*#πϦʔΛඳ͖࢝ΊΔͱ͜Ζ͔ΒελʔταʔϏεͷকདྷతͳలݟਾ͑ͨઃܭʹͰ͖ΔͱΑ͍
2"
͓·͚
#VJMEFSTXJGUͷ࣮͜ͷ3*#Ͱར༻͢ΔͷΛఆٛ͢Δ%FQFOEFODZͰఆٛ͞ΕͨͷɺجຊతʹಉϑΝΠϧͷ$PNQPOFOUͰར༻͞ΕΔࢠ3*#ͱͷґଘੑղܾ༻ͷ%FQFOEFODZΛ४ڌ͓ͤͯ͘͞
#VJMEFSTXJGUͷ࣮ॳظԽ࣌ʹ%*͍ͨ͠ͷΛҾͱͯ͠ఆٛ͢Δࢠ3*#ͷ#VJMEFSΛ࡞͠ɺ3PVUFS͓ͯ͘͠
$PNQPOFOU999TXJGUͷ࣮ͷɺͦΕΑΓ্ͷ3*#͔ΒґଘΛ͖͍࣋ͬͯͨͱ͖͜ͷ1SPUPDPMΛར༻͢ΔผϑΝΠϧͰͯ͠ఆٛ͞ΕΔ͜ͱͰɺຊདྷͷ#VJMEFSͰར༻͢Δ%FQFOEFODZͱ۠ผ͢Δ͜ͱ͕Ͱ͖Δʢݟ௨͕͠Α͘ͳΔʣʮ3*#໊%FQFOEFODZࢠ3*#໊ʯͰදݱ͞ΕΔ
*OUFSBDUPSTXJGUͷ࣮3PVUFSͷ໋ྩΛهड़͢Δ1SFTFOUFSͷ໋ྩΛهड़͢Δͷ*OUFSBDUPSͷ໋ྩΛهड़͢Δ
*OUFSBDUPSTXJGUͷ࣮4USFBNͳͲඞཁͳใΛ%*͢Δ3PVUFS͕BUUBDI͞ΕͨޙʹݺΕΔ3PVUFS͕EFUBDI͞ΕΔલʹݺΕΔ%JTQPTBCMFEFUBDI͞ΕΔͱഁغ͞ΕΔ
*OUFSBDUPSTXJGUͷ࣮1SFTFOUFS͔Βͷ໋ྩΛड͚औΔ
7JFX$POUSPMMFSTXJGUͷ࣮*OUFSBDUPSͷ໋ྩΛఆٛ͢Δ
7JFX$POUSPMMFSTXJGUͷ࣮ίʔυʹΑΔϨΠΞτ6*͔ΒͷΠϕϯτΛऔಘ͠ɺͦͷޙͷॲཧΛ*OUFSBDUPSʹҕৡ͢Δ
7JFX$POUSPMMFSTXJGUͷ࣮*OUFSBDUPS͔Βͷ໋ྩΛड͚औΔ
3PVUFSTXJGUͷ࣮3PVUFS͔Β7JFX$POUSPMMFSʹରͯ͠ߦ͍͍ͨॲཧΛهड़ओʹɺ6*·ΘΓͷϨΠΞτௐը໘දࣔͳͲͷϧʔςΟϯά࣌ʹඞཁͳॲཧࢠ3*#ͷ-JTUFSOFS1SPUPDPMʹ४ڌ͓ͤͯ͘͜͞ͱͰɺࢠ*OUFSBDUPS͔Β*OUFSBDUPSͷίϛϡχέʔγϣϯ͕ՄೳʹͳΔ
3PVUFSTXJGUͷ࣮3PVUFSͷॳظԽ࣌ʹࢠ3*#ͷ#VJMEFSΛ%*͢Δඞཁ͋Γ
3PVUFSTXJGUͷ࣮*OUFSBDUPS͔Βͷ໋ྩΛड͚औΔ ॳظԽ࣌ʹอ͓͍࣋ͯͨ͠ࢠ3*#ͷ#VJMEFSΛར༻ͯ͠ࢠ3*#ͷ3PVUFSΛऔಘ͢ΔBUUBDI$IJMEͰBDUJWFঢ়ଶʹͳΔʢ*OUFSBDUPSͷॲཧ͕࢝·Δʣ7JFX$POUSPMMFSΛදࣔͤ͞ΔEFUBDIॲཧ࣌ʹඞཁͳͨΊɺXFBLͰอ͓࣋ͯ͘͠