【ヒカ☆ラボ】【Kyash、Coiney、PAY】新しい支払いの形を作る、モバイル決済サービスの開発の裏側とは
iOSΞϓϦͷٕज़తෛ࠴ΛͲ͏ฦࡁ͔ͨ͠Keisuke KobayashiʲώΧˑϥϘʳʲKyashɺCoineyɺPAYʳ৽͍͠ࢧ͍ͷܗΛ࡞ΔɺϞόΠϧܾࡁαʔϏεͷ։ൃͷཪଆͱ
View Slide
ࣗݾհ• Keisuke Kobayashi• Twitter: kobakei122• GitHub: kobakei• Kyash, Inc• Android / iOS / Engineering Manager
ٕज़తෛ࠴ͷΛ͠·͢
͔ͭͯͷKyash iOS൛• ͳ͔ͥ1ਓͰ࡞ͬͯΔAndroid൛ΑΓɺ 3ਓͰ࡞ͬͯΔiOS൛ͷํ͕։ൃ͕͍• ͔͠όά͕ଟ͍• ͦͯ͠3ਓͷ͏ͪ2ਓ͕ࣙΊͨ
͜ΕϠόΠ
ମ੍มߋ• @konifar ͕ೖࣾ͠AndroidνʔϜ• @kobakei122 ͕AndroidνʔϜ͔Β iOSνʔϜ• ·ͣணखͨ͠ͷ͕ٕज़తෛ࠴ͷฦࡁ
ٕज़తෛ࠴Λฦࡁ͍ͯ͘͠• ιʔείʔυͷ࣭վળ• ϦιʔεपΓͷվળ• ϏϧυߴԽ
ιʔείʔυͷ࣭վળ
ະ༻ίʔυͷআ• ͱʹ͔͘ফ͢• Find Selected Symbol in Workspace• Androidͷ࣮Λݟͭͭɺ͢Ͱʹଘࡏ͠ͳ͍ػೳը໘Λফ͍ͯ͘͠
ΞʔΩςΫνϟݟ͠• MVVM + ϨΠϠʔυΞʔΩςΫνϟͷ࠾༻
MVVM• UIςετ͠ʹ͍͘• UIͷϩδοΫΛViewController͔Βണ͕͢͜ͱͰɺςετΛॻ͖͘͢͢Δ7JFX6*7JFX$POUSPMMFS7JFX.PEFM .PEFM
ϨΠϠʔυΞʔΩςΫνϟ• ؔݺͼग़͠Λ1ํʹ౷Ұ͢Δ• ಉ͡֊ͷݺͼग़͠ېࢭ$• ΫϥεؒͷґଘؔΛγϯϓϧʹอͭ• ֤ϨΠϠʔͷΛ໌֬ʹ͢Δ• ΫϥεංେԽͷࢭ
·ͱΊΔͱ͜Μͳઃܭ7JFX 7JFX.PEFM 3FQPTJUPSZ"1*$MJFOU,FZDIBJO
·ͱΊΔͱ͜Μͳઃܭ7JFX 7JFX.PEFM 3FQPTJUPSZ"1*$MJFOU,FZDIBJO6*7JFX$POUSPMMFS 5BCMF7JFX$FMMͳͲ
·ͱΊΔͱ͜Μͳઃܭ7JFX 7JFX.PEFM 3FQPTJUPSZ"1*$MJFOU,FZDIBJO6*ʹؔ͢ΔϩδοΫ
·ͱΊΔͱ͜Μͳઃܭ7JFX 7JFX.PEFM 3FQPTJUPSZ"1*$MJFOU,FZDIBJO֤&OUJUZͷ$36%
·ͱΊΔͱ͜Μͳઃܭ7JFX 7JFX.PEFM 3FQPTJUPSZ"1*$MJFOU,FZDIBJO֤छσʔλιʔεͷ ΛಡΈॻ͖
RxSwiftͷಋೖ• DispatchQueueͰඇಉظॲཧਏ͍• ͲΜͲΜਂ͘ͳΔωετ• leave࿙ΕʹΑΔόά• RxSwiftͳΒඇಉظॲཧͷྻɾฒྻ࣮ߦ͕؆୯• ྫ: APIΛ2ͭݺͼग़ͯ͠ɺ݁Ռ͕ἧ͔ͬͯΒ ը໘ߋ৽
ϦιʔεपΓͷվળ
Storyboardͷׂ• ෳը໘Λ࣋ͭStoryboardΛಉ࣌ʹฤूͯ͠ίϯϑϦΫτ͢Δࣄނ͕ଟൃ• 1ը໘1StoryboardʹͳΔ·Ͱׂ• ͦΕͰͨ·ʹࣄނΔͷͰνʔϜͰͷֻ͚େࣄ
Segueېࢭ• Storyboardׂͷ͍ͭͰʹېࢭ• ը໘ભҠͰΛ͢ͱ͖ʹɺભҠϩδοΫ͕Storyboardͱίʔυʹࢄͯ͠͠·͏• ΘΓʹίʔυʹू͢Δ• ը໘ભҠ༻ͷstaticؔΛ༻ҙͯ͠ɺͷܕݻఆ͢Δ
SwiftGen• ֤छϦιʔεͷఆΛࣗಈੜ͢ΔϥΠϒϥϦ• จࣈྻ• ը૾• ৭• Storyboard• ଘࡏ͠ͳ͍จࣈྻը૾ΛͬͨΒϏϧυ࣌ʹΤϥʔʹͳΔ
ΧϥʔύϨοτ• όʔδϣϯཧ͢ΔΑ͏ʹ• ~/Library/Colors/ʹίϐʔ͢Δ͜ͱͰɺνʔϜͷશһ͕ಉ͡ύϨοτΛ༻Ͱ͖Δ• SwiftGenͱͷ૬ੑ
ϏϧυߴԽ
Embedded Framework• UIͷमਖ਼͕΄ͱΜͲͳͷͰɺModelͰ͖Δ͚ͩϏϧυͨ͘͠ͳ͍• ModelΛϨΠϠʔ͝ͱʹϑϨʔϜϫʔΫԽ• Repository• Infrastructure• Entity• Utility
CocoaPods -> CarthageҠߦ• ϥΠϒϥϦͷϏϧυ͕͍• Carthage/Build/ҎԼgitʹίϛοτ• ͱݴ͑શͯͷϥΠϒϥϦΛҠߦͰ͖ΔΘ͚Ͱͳ͍• ྫ: Firebase
MBPങ͍ସ͑• ͏ҰਓͷiOSΤϯδχΞ͕MBP 13ΠϯνΛ͍ͬͯͨ• MBP 15ΠϯνΛࢧڅ• ΫΞουίΞCPUiOSΤϯδχΞͷ جຊతਓݖ• iMac Proཉ͍͠
3͔݄ޙ…
ͦ͜ʹݩؾʹΓճΔ iOSνʔϜͷ͕࢟ʂ• ։ൃͷ্• Androidʹ͍͍ͭͨʂ• ࣭ͷ্• Crash Free Rate
ࠓޙͷ༧ఆ• ςετΛ͝Γ͝Γॻ͍͍ͯ͘• ·ͩςετΛॻ͚Δঢ়ଶʹͳ͚ͬͨͩ• ViewModelத৺ʹॻ͘ํ• UIΛࡉ͔͘ϑϨʔϜϫʔΫԽ• ·ͣڞ௨Ͱ͏ΧελϜϏϡʔͳͲ• υϝΠϯ͋ͬͨ΄͏͕͍͍͔
Thanks!!!