Upgrade to Pro — share decks privately, control downloads, hide ads and more …

攻めのモバイルアプリ開発

9278c3a06b8d8752fb913dea93f959c1?s=47 FUJI Goro
August 23, 2014

 攻めのモバイルアプリ開発

DevLOVE現場甲子園2014 東日本大会 http://devlove.doorkeeper.jp/events/11792 の発表資料です。

9278c3a06b8d8752fb913dea93f959c1?s=128

FUJI Goro

August 23, 2014
Tweet

Transcript

  1. ߈ΊͷϞόΠϧΞϓϦ։ൃ Fuji, Goro (@__gfx__) #devloveٕ 4ճද ʢඈͼೖΓࢀՃʣ 2014/08/23

  2. ࣗݾ঺հ • ౻ ޗ࿠ (gfx) • CookpadͷϞόΠϧΤϯδχΞ(iOS/Android) • ϥΠϒϥϦ։ൃ΍։ൃ؀ڥ੔උɾࣗಈԽͳͲ •

    background: C/C++, Perl, JavaScript (LLଟΊ) • ߈Ίͷ։ൃ؀ڥɾମ੍ͮ͘ΓΛ͍͖͍ͯͨ͠
  3. – Fuji, Goro (#devloveٕ, 2014) “ʮ߈Ίʯͱ͸ɺݱঢ়ҡ࣋ʹྲྀ͞ΕΔؾ࣋ ͪʹཱͪ޲͔͏ҙࢤͰ͋Δ”

  4. ߈Ίͷ։ൃϫʔΫϑϩʔ

  5. Web։ൃݱ৔ͷ͋Δ1γʔϯ • ܧଓతσϦόϦʔ࠷ߴʂCI͋Δ͔Β࠷௿ݶͷ ඼࣭͸อূͰ͖Δ͠ɺ໰୊͋ͬͨΒϩʔϧόο Ϋ͢Ε͹͍ΑͶʂ • ϦʔϯελʔτΞοϓ࠷ߴʂMVP͔Βͷվྑ ͰάΠάΠՁ஋Λ͔ͨΊͯ͜㽉㽉

  6. Q. ϞόΠϧΞϓϦ΋ಉ͡ϊϦͰ࡞ΕΔʁ

  7. A. ແཧ

  8. ܧଓσϦόϦʔ͸Ͱ͖ͳ͍ • ςετ͕WebΞϓϦͱൺֱͯ͠೉͘͠CIͰࣗಈͰς ετͰ͖Δൣғ͕ڱ͍ • Ξοϓσʔτͷڧ੍͕೉͍͠ɻ͋ΒΏΔόʔδϣϯ ΋ࢢ৔ʹ࢒Γଓ͚ΔʢϢʔβʔͷυϩοϓΛ֮ޛ͢ ΔͳΒڧ੍ΞοϓσʔτΛଅ͢͜ͱ΋Ͱ͖Δ͕…ʣ • submit͔Β഑৴·Ͱ਺࣌ؒ(Play)͔Β਺िؒ

    (AppStore)͔͔Δ
  9. MVP͔ΒҭͯΔͷ͸೉͍͠ • ϚʔέςΟϯάతʹϓϥοτϑΥʔϜετΞͷϨϏϡʔ ͕ͱͯ΋ॏཁͰɺΫΦϦςΟͷ௿͍όʔδϣϯ͕ΞϓϦ ࣗମͷ଍ΛҾͬுΔʢGoogle Playʣ • Πϯετʔϧͷϋʔυϧ͕ߴ͍ͨΊɺ࠷ॳͷҹ৅͕ѱ͘ ͯΞϯΠϯετʔϧ͞ΕΔͱɺ͋ͱ͔Βͦͷҹ৅Λ෴͠ ͯ࠶Πϯετʔϧͯ͠΋Β͏ͷ͕೉͍͠

    • ࠷ॳͷόʔδϣϯͷΫΦϦςΟ͸͔ͳΓେࣄʢPlayͷβ഑ ৴΍DeployGateͰ͸Ϧʔϯ։ൃ͢Δʹ͸ෆे෼ʣ
  10. WebͱൺֱʹͳΒͳ͍ଟ༷ੑ • ϒϥ΢βͷଟ༷ੑ: platform x software • platform: Windows, MacOSX

    • software: IE7/8/9/10, Safari, Chrome • IEͰ͑͞ยखͰ਺͑ΒΕΔఔ౓ͷ਺ • ୺຤ͷଟ༷ੑ: platform x OS ver. x device • ୺຤ͷछྨ͕ଟ͗ͯ͢ɺϦϦʔεલʹ͢΂ͯͷ؀ڥͰಈ࡞ ֬ೝ͢Δͷ͸ෆՄೳ
  11. ! ໰୊͕͋ͬͨΒ ߈Ί͍͔ͯ͘͠ͳ͍

  12. ϞόΠϧ։ൃϑϩʔͷ޻෉ • ໰୊͸͍͍ͩͨʮߴ඼࣭ͳΞϓϦέʔγϣϯΛϦϦʔε͢Δ೉ ͠͞ʯʹ͖ͭΔ • ܧଓతσϦόϦʔͳ؀ڥͰ͸ଘࡏ͠ͳ͍ɺ໌֬ͳίʔυϑ ϦʔζͱQAظؒΛઃ͚ͨ • AndroidΞϓϦͷ৔߹͸ݶఆެ։ػೳΛར༻ͯ͠க໋తͳ໰୊ ͷ͋Δόʔδϣϯͷ഑෍Λ࠷௿ݶʹ͢Δ

    • iOSΞϓϦͷ৔߹͸ϓϩϞίʔυʹΑΔ௚લͷࢼݧͰக໋తͳ όʔδϣϯͷ഑෍ͷՄೳੑΛݮΒ͢
  13. ίʔυϑϦʔζ • Web։ൃ: github-flow • ։ൃϒϥϯν(master)ΛৗʹσϓϩΠՄೳʹอͭ • ΞϓϦ։ൃ: git-flow (a

    successful git branching model) • ։ൃϒϥϯν͔Βϒϥϯνϯάͯ͠CFͯ͠ϦϦʔεϒϥϯ νΛͭ͘ΓɺϦϦʔεϒϥϯνͰ͸ඞཁෆՄܽͳόάϑΟ ΫεҎ֎͸Ұ੾ߦΘͳ͍ • ͳ͓developϒϥϯν͸ͭ͘Βͳ͍
  14.  $PEF 'SFF[F 3$  'FBUVSF GPS NBTUFS GFBUVSF SFMFBTF

    JNQPSUBOU CVHpY OFX GFBUVSF USJWJBM CVHpY
  15. ݶఆެ։ • Google PlayͷػೳͰɺҰఆͷׂ߹ͷϢʔβʔ ʹ͚ͩΞοϓσʔτΛ഑৴Ͱ͖Δ • ࠷ॳʹ5%ϦϦʔε͢Δ͜ͱͰ • ͪ͜Βʹͱͬͯ͸5%Ͱ΋ʮ౰ͨΓʯΛҾ͍ͨ Ϣʔβʹͱͬͯ͸ͦΕ͕શͯͳͷͰɺ࠷ऴόʔ

    δϣϯͷͭ΋ΓͰग़͢ͷ͸લఏ
  16. ϓϩϞίʔυ • ΞϓϦͷϨϏϡʔ͕௨ͬͨΒiTune connectͰ ϓϩϞίʔυΛ഑෍Ͱ͖Δ • ެ։લʹɺެ։൛ͷΞϓϦΛ೚ҙͷ୺຤ʹΠ ϯετʔϧͰ͖Δ • ࠷ऴνΣοΫͰ໰୊͕͓͖ͨΒ༰ࣻͳ͘ϦϦʔ

    εதࢭ
  17. ߈Ίͷ։ൃ؀ڥ

  18. ߈Ίͷ։ൃ؀ڥͮ͘Γ • ΞϓϦ։ൃ͕δϦශʹͳΔύλʔϯ • ΞϓϦ։ൃͰ͖Δϝϯόʔ͕গͳ͍ • ΞϓϦ։ൃνʔϜ͕ɺαʔϏε։ൃΛ͍ͯ͠Δ෦ ॺ͔ΒҎདྷΛ͏͚ͯΞϓϦΛͭ͘Δडୗ։ൃ૊৫ ʹͳͬͯ͠·͏ •

    ࣗಈԽ͕೉͍͠Օॴ͕ଟ͍ • ؾ߹Ͱख࡞ۀ͢Δ͜ͱʹ׳Εͯ͠·͏
  19. औΓ૊Έ • ϞόΠϧΤϯδχΞΛ૿΍ͦ͏ʂ • ։ൃͷϊ΢ϋ΢Λڞ༗͠Α͏ʂ • ࣗಈԽ͠Α͏ʂ

  20. ϞόΠϧΤϯδχΞΛ૿΍ͦ͏ʂ • τοϓμ΢ϯͷϞόΠϧϑΝʔετએݴ • ੵۃతʹϖΞϓϩ͠ͳ͕Βͷ৽ػೳ։ൃ • ϞόΠϧ։ൃ͸Web։ൃͱ͔ͳΓҧ͏ • ࠷ॳͷนΛ௒͑Δ·Ͱ͸ͱ͜ͱΜ෇͖߹͏ •

    ͜ͷ൒೥ͰϞόΠϧ։ൃΛܦݧͨ͠ΤϯδχΞ͸ ͍ͩͿ૿͑ͨ
  21. ։ൃϊ΢ϋ΢Λڞ༗͠Α͏ʂ • ڞ௨ϥΠϒϥϦΛ੔උͯ͠ϋΠεΩϧͳΤϯδχΞͷ੒Ռʹ͋ ͔ͣΔ • ࣾ಺ʹmaven repository΍cocoapods repositoryΛઃఆͯ͠ ϥΠϒϥϦΛ؅ཧ •

    ৘ใൃ৴Λ࢓૊ΈԽ͢Δ • potatotipsͱ͍͏ษڧձΛ࣮ࢪ • WEB+DB PRESS Vol81ʮAndroidΞϓϦ։ൃ࠷લઢʯΛدߘ
  22. ࣗಈԽ͠Α͏ʂ • ϦϦʔεΤϯδχΞϦϯά͸࡞ۀྔ͕ଟ͍ • ଐਓԽ͸μϝɺઈର • ϦϦʔεϏϧυ͸JenkinsͰߦ͏ • Google Play

    Developer APIʢ·ͩಋೖͯ͠ͳ͍ʣ • apkΛplayʹΞοϓϩʔυ͢Δ • ΞϓϦͷઆ໌จ΍εΫγϣΛgit؅ཧ͢Δ
  23. Q & A (1) • Q. ࣗಈςετ͸Ͳ͏ͯ͠Δʁ • A. ϞσϧͱϢʔςΟϦςΟ͸ଟগɻUIͷࣗಈς

    ετ͸͍ͯ͠ͳ͍͕ɺCIͰओཁͳը໘ͷεΫγϣ ΛࡱΔͷ͸΍Γ࢝Ί͍ͯΔ • Q. ϦϦʔεαΠΫϧ͸ʁ • A. iOS/Androidͱ΋ʹ2िؒʹҰ౓ͷϦϦʔε
  24. Q & A (2) • Q. ίϛϡχέʔγϣϯͲ͏ͯ͠Δʁ • A. HipChat

    + github issuesɻgithub webhookͰrepo ΁ͷมߋΛHipChatʹ௨஌͢Δʢ಺ॹͰforce push͸Ͱ ͖ͳ͍ʂʣ • Q. CI͸ʁ • A. JenkinsΛ࢖ͬͯίϛοτ͝ͱʹjobΛ૸Βͤɺ੒Ռ෺Λ DeployGate/TestFlightͰ։ൃ൛Λ഑෍͍ͯ͠Δ
  25. Q & A (3) • Q. υοάϑʔσΟϯάͲ͏ͯ͠Δʁ • A. Ͱ͖͍ͯͳ͍ɻ͍͍ํ๏͕͋ͬͨΒڭ͑ͯ΄

    ͍͠ • Q. ͦΕͰɺࣾ಺डୗମ੍͸ղফͰ͖ͨͷ͔ • A. ·ͩ׬શʹ͸ղফͰ͖͍ͯͳ͍ɻ͍͍ํ๏͕ ͋ͬͨΒڭ͑ͯ΄͍͠
  26. ؔ࿈ࢿྉ • Mobile First Development at COOKPAD 
 (2014/5/29) •

    rebuild.fm/45 (podcast)
 (2014/5/30) • AndroidΞϓϦͷϦϦʔεͯ͠·͔͢ 
 (2014/8/20)