՝ײ͔Β࢝ΊΔΫϥεઃܭͱ߹ҙܗBonfire Android #3
View Slide
ࣗݾհ• @kirimin• AnyPayגࣜձࣾ ॴଐ• AndroidΤϯδχΞ• όʔνϟϧϢʔνϡʔόʔ• React-NativeΤϯδχΞ
ฐࣾͷϓϩμΫτ
ࠓͷςʔϚʮαʔϏεͱઃܭʯ
ઃܭɺߟ͑ͯ·͔͢ʁ
ʲΞϯέʔτʳઃܭʹ͍ͭͯ• ͕ͬͪΓΫϥεߏΛܾΊͯӡ༻͍ͯ͠Δ
ʲΞϯέʔτʳઃܭʹ͍ͭͯ• ͕ͬͪΓΫϥεߏΛܾΊͯӡ༻͍ͯ͠Δ• ωοτϫʔΫ·ΘΓͱ͔ج൫ͷ෦ͷΫϥεߏ͚ܾͩΊͯ͋ͱ࣮ऀ࣍ୈ
ʲΞϯέʔτʳઃܭʹ͍ͭͯ• ͕ͬͪΓΫϥεߏΛܾΊͯӡ༻͍ͯ͠Δ• ωοτϫʔΫ·ΘΓͱ͔ج൫ͷ෦ͷΫϥεߏ͚ܾͩΊͯ͋ͱ࣮ऀ࣍ୈ• શવΘ͔Βͳ͍ɻԶͨͪงғؾͰΦϒδΣΫτࢦΛ͍ͬͯΔ
͍Ζ͍Ζͳઃܭύλʔϯ.71.7$ .77.""$'MVY3FEVY
ͳΜͰઃܭΛߟ͑Δඞཁ͕͋ΔΜͩΖ͏
ͦ͜ʹ՝͕͋Δ͔Β
͑Β͍ͻͱʮMVP͕ΠέͯΔΒ͍͔͠Βɺ࣍ͷΞϓϦMVPͰͬͯͶʯ
·ΕʹΑ͋͘Δޫܠ• ͑Β͍ͻͱʮMVP͕ΠέͯΔΒ͍͔͠Βɺ࣍ͷΞϓϦMVPͰ࡞ͬͯࣗಈςετΛಋೖͶʯ
·ΕʹΑ͋͘Δޫܠ• ͑Β͍ͻͱʮMVP͕ΠέͯΔΒ͍͔͠Βɺ࣍ͷΞϓϦMVPͰ࡞ͬͯࣗಈςετΛಋೖͶʯ• ϝϯόʔʮͳΜͰ͜Μͳ໘ͳॻ͖ํ͠ͳ͍ͱ͍͚ͳ͍Μͩ...ʯʮԿ͕ਖ਼͍͠ͷ͔͔Βͳ͍...ʯ
·ΕʹΑ͋͘Δޫܠ• ͑Β͍ͻͱʮMVP͕ΠέͯΔΒ͍͔͠Βɺ࣍ͷΞϓϦMVPͰ࡞ͬͯࣗಈςετΛಋೖͶʯ• ϝϯόʔʮͳΜͰ͜Μͳ໘ͳॻ͖ํ͠ͳ͍ͱ͍͚ͳ͍Μͩ...ʯʮԿ͕ਖ਼͍͠ͷ͔͔Βͳ͍...ʯ• ՝ײ͕ೝࣝग़དྷ͍ͯͳ͍ͷʹઃܭͱݴΘΕͯϝϦοτΛ࣮ײ͢ΔͷΉ͔͍ͣ͠
શવΘ͔Βͳ͍ɻԶͨͪงғؾͰྲྀߦΓͷઃܭΛ͍ͬͯΔ
ରࡦ
1.νʔϜͱͯ͠ग़དྷΔ͜ͱ
ࠓͷϓϩδΣΫτͷ՝Λચ͍ग़͢• Ͳ͜ʹͲΜͳॲཧ͕ॻ͔Ε͍ͯΔͷ͔͔Βͳ͍• ৽͍͠ॲཧΛͲ͜ʹॻ͚͍͍ͷ͔͔Βͳ͍• ঢ়ଶ͕ແବʹෳࡶͰෆͳόά͕ࠞೖ͕ͪ͠• ίʔυ͕ಡΈʹ͘͘վमίετ͕ߴ͍
ࠓ͋Δ՝ΛղܾͰ͖ͦ͏ͳύλʔϯΛಋೖ͠Α͏• ٯʹ՝͕ಛʹແ͚ΕແཧʹΧοίΠΠઃܭύλʔϯΛΘͳ͍͍ͯ͘• ࢥతʹਖ਼͍͠ΨονϦͨ͠ઃܭ͕ৗʹ༏Ε͍ͯΔͱݶΒͳ͍ɹ(શͯͷΫϥεΛinterfaceԽ͢ΔͳͲ)• ͨͩ͠ɺকདྷతͳ՝͕༧ݟग़དྷ͍͍ͯͯΔͳΒ࠷ॳ͔ΒΨονϦΉͷѱ͘ͳ͍
ݸਓతʹ࠷ݶܾΊ͓͍ͯͨํ͕Αͦ͞͏ͳ͜ͱ• ͏ϥΠϒϥϦͱ͍ํ• DataBinding/RxJava/Retrofit/EventBus/etc...• σʔλΞΫηεॲཧͷݺͼग़͠ํ• View͔ΒݺͿ/Ϟσϧ͔ΒݺͿ/RepositoryతͳͷΛ࡞Δ/࡞Βͳ͍• ϏδωεϩδοΫΛॻ͘ॴ• ϞσϧΫϥεͬΆ͍ͷ͕͍ΖΜͳύοέʔδʹࢄΒΓ͕ͪ
2.։ൃऀݸਓͱͯ͠Ͱ͖Δ͜ͱ
࣮࣌ͷ͋Γ͕ͪͳ՝ΛΔ• ΦεεϝͳͷݸਓͰ0͔ΒΞϓϦΛ࡞ͬͯΈΔ͜ͱ• ͦͦ͜͜ͷػೳΛ࣋ͬͨΞϓϦΛҰਓͰ࡞ΓɺԿػೳվળͷΞοϓσʔτΛ͍ͯ͘͠• ͍Ζ͍Ζͳ՝͕ݟ͑ͯ͘Δ• ྑ͔Εͱࢥͬͨઃܭ͕ͭΒΈΛੜΉͳͲͷݟ͕ಘΒΕΔ• ઃܭʹࣦഊͨ͠ܦݧҰੜͷࡒ࢈
ཧ• νʔϜʮ͜͏͍͏՝͕͋Δ͔Β͜ͷઃܭΛಋೖ͠Α͏ʯ• ϝϯόʔʮΘ͔Δʯ
͡Ό࣮͋ࡍʹͲ͏ͬͯಋೖ͢Δͷʁ
paymoͰͷྫ
ఏҊ͢Δ• ॳظͷ࣮͍Ζ͍Ζͳ՝͕͋Δઃܭͩͬͨɹ(DroidKaigiͰͷൃදɺHow to improve your architectureand testsΛࢀর)• ·ͣேձSlackͳͲͰ՝ײͱΓ͍ͨ͜ͱΛप͢Δ• GitHubʹIssueΛཱͯΔ• จষϕʔεͰํੑʹ͍ͭͯٞ͠νʔϜͰ߹ҙ͢Δ
۩ମҊΛݟͤΔ• αϯϓϧͱͯ͠ҰՕॴʹద༻͍ͨ͠ઃܭΛద༻ͨ͠ϒϥϯνΛ࡞ΓɺPRΛग़͢• ίʔυʹରͯ͠ϝϯόʔ͔Β͘ποίϛΛืΔ• ίʔυϕʔεͰߋʹٞ͢Δ• ApproveΛΒ͍߹ҙͷҙࢥΛ໌֬ʹ֬ೝ͢Δ
ϦϑΝΫλΛ࣮ࢪ͢Δ• ৽࣮͘͢͠ΔՕॴ৽͍͠ઃܭʹ߹ΘͤΔ• ݹ͍ՕॴεέδϡʔϧͳͲͱ૬ஊ͠ͳ͕Βॱ࣍ॻ͖͍͑ͯ͘
େࣄͳ͜ͱ• ҰਓͰಥͬΒͳ͍• ৽͍͠ઃܭ͕ϝϯόʔײͰेʹप͞Ε͍ͯͳ͔ͬͨΓɺҙࣝ߹Θ͕ͤग़དྷ͍ͯͳ͍ͱɺ࣮ऀʹΑͬͯνάϋάʹͳͬͨΓɺετϨεͷݪҼʹͳΔ• ઃܭͷରϓϩάϥϜ͕ͩɺେࣄͳͷਖ਼͍͠՝ͷೝࣝͱίϛϡχέʔγϣϯ
ઈର͋͠Θͤͳ։ൃݱʹ͠Α͏ͳ
͝ਗ਼ௌ͋Γ͕ͱ͏͍͟͝·ͨ͠