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

unskilled_team_development_for_droidkaigi

 unskilled_team_development_for_droidkaigi

DroidKaigiで発表した内容です

Shinnosuke Kugimiya

March 10, 2017
Tweet

More Decks by Shinnosuke Kugimiya

Other Decks in Programming

Transcript

  1. ະख़ͳνʔϜ։ൃ
    #DroidKaigi2017
    @kgmyshin

    View Slide

  2. ࣗݾ঺հ

    View Slide

  3. ࣗݾ঺հ
    • @kgmyshin
    • ఝٶ ጏ೭հ
    • AndoridΤϯδχΞ
    • Server / iOS / WebͳͲ΋
    • ϦΫϧʔτϚʔέςΟϯάύʔτφʔζ

    View Slide

  4. ࠓ೔࿩͢಺༰

    View Slide

  5. ࠓ೔࿩͢಺༰
    ͏ͪ͸εʔύʔΤϯδχΞ͚ͩʂͱ͍
    ͏૊৫͸໓ଟʹͳ͍ɻɻ

    View Slide

  6. ࠓ೔࿩͢಺༰
    ·ͩ·ͩະख़ͳνʔϜͰͲ͏΍ͬͯ։
    ൃ͍ͯ͘͠ͷ͔ɻɻ

    View Slide

  7. ࠓ೔࿩͢಺༰
    ະख़ͳνʔϜͰ
    ࣮ࡍͷ։ൃΛ௨ͯ͡͏·͘ߦͬͨ͜ͱ΍
    ͦͷ൓ল఺Λ࿩͠·͢ɻ

    View Slide

  8. ࠓ೔࿩͢಺༰
    ౰ͨΓલͱࢥ͏͜ͱ΋
    ͋Δ͔΋͠Ε·ͤΜ͕ɺ
    গ͠Ͱ΋ࢀߟʹͳΔ͜ͱ͕͋Ε͹޾͍Ͱ͢ɻ

    View Slide

  9. Case ελσΟαϓϦ
    ENGLISH

    View Slide

  10. ελσΟαϓϦENGLISHͱ͸

    View Slide

  11. ӳޠͰ࿩ͯ͠ΔͷΛฉ͍ͨΓ

    View Slide

  12. ࣮ࡍʹൃԻͯ͠ΈͨΓ

    View Slide

  13. σΟΫςʔγϣϯͯ͠ΈͨΓ

    View Slide

  14. ͱɺ୯७ʹAPIΛୟ͚ͩ͘Ͱ͸ͳ
    ͍ɺߴػೳͳΞϓϦέʔγϣϯ

    View Slide

  15. ײ֮Ͱ͕͢ɺ͜ΜͳΠϝʔδ

    View Slide

  16. Hello, World レベル

    View Slide

  17. APIちょっと呼ぶだけ
    特定の機能使うだけ

    View Slide

  18. ある程度のコンテキストの違った
    API群があったり
    それをキャッシュしたり

    View Slide

  19. 多くのコンテキストの違ったAPI群があったり
    それをキャッシュしたり

    View Slide

  20. ここらへん
    今回作ったのはここらへん (主観)

    View Slide

  21. ౰࣌ͷঢ়گ

    View Slide

  22. iOS͸ϦϦʔεࡁΈ

    View Slide

  23. iOSͷ࣌͸৬ਓΤϯδχΞೋਓ
    ͱࢲ

    View Slide

  24. • ίʔυ͸͍͍ͩͨ20ສߦ
    • ը໘਺50΄Ͳ
    • ظؒ͸5ϲ݄ͩͬͨ (ऴ൫͸Ϊ
    ϦΪϦ

    View Slide

  25. AndroidͷνʔϜߏ੒
    ࢲɺ৽ଔΤϯδχΞɺiOSΤϯδχΞ

    View Slide

  26. • ظؒ͸iOSͱಉ͡
    • ΋ͪΖΜػೳείʔϓ΋ಉ͡
    • ਓ਺ͦ͜ἧ͍ͬͯΔ͕ೳྗ໘Ͱ
    ෆ҆ͷ͋ΔνʔϜͩͬͨ

    View Slide

  27. ͕ͩͬͨɺ݁Ռ͸ແࣄ஗ΕΔ͜
    ͱͳ͘ϦϦʔε
    • CrashFree཰͸99.98%͋ͨΓ
    • ධՁ͸4ΛԼճͬͨ͜ͱͳ͍

    View Slide

  28. ։ൃং൫

    View Slide

  29. ࠷ѱͳ݁຤ͱ͸ͳΜͩΖ͏…

    View Slide

  30. ࠷ѱͳ݁຤͸
    ೲظʹؒʹ߹Θͳͯ͘
    ϦϦʔεͰ͖ͳ͍͜ͱ

    View Slide

  31. ະख़ͳνʔϜ͕࠷ѱͳ݁຤ʹ
    ؕΔཁҼ

    View Slide

  32. ະख़ͳνʔϜ͕࠷ѱͳ݁຤ʹ
    ؕΔཁҼ
    • ܦݧ͕ͳ͍ͨΊʹɺίʔυ͕ΧΦεʹͳͬ
    ͯ͠·͏
    • ܦݧ͕ͳ͍ͨΊʹɺ։ൃ଎౓͕଍Γͳ͍
    ͜ͷະख़ͳνʔϜʹடংͱεϐʔυΛʂ

    View Slide

  33. εϐʔυΛ্͛Δʹ͸ʁʁʁ

    View Slide

  34. ։ൃதʹҰ൪ଟ͍࣌ؒ͸
    ߟ͑Δ࣌ؒ
    • ϓϩάϥϜΛλΠϐϯά͢Δ࣌ؒ͸ͦΜ
    ͳʹมΘΒͳ͍
    • ݁ہ͕ࠩग़Δͷ͸Ͳ͏૊Ή͔Λߟ͑ɺࢼ
    ߦࡨޡ͍ͯ͠Δ࣌ؒ
    • ܦݧऀ͸ܦݧ্Ͳ͏૊Ή͔ͷΞΠσΞ
    Λ͍࣋ͬͯΔͷͰૣ͍

    View Slide

  35. ։ൃதʹҰ൪ଟ͍࣌ؒ͸
    ߟ͑Δ࣌ؒ
    ͋Β͔͡Ί͔ͬ͠Γઃܭࢥ૝Λ
    ͔ͬͪΓ࿅ͬͯɺ
    ϝϯόʔ͕࣮૷࣌ʹߟ͑Δ࣌ؒΛݮΒ͢
    (ͦͯ͜͠Ε͕டংʹ΋ͳΔ)

    View Slide

  36. ઃܭ͸͔ͬͪΓܾΊ͓ͯ͘
    ྫ͑͹͋ΔػೳΛ࡞Δͱ͖ʹɺ
    HogeActivity, HogePresenter,
    HogeUseCase,
    HogeRepositoryͳͲ
    Λ࡞Ε͹͍͍ͱɺ୭Ͱ΋૝૾Ͱ͖ΔΑ͏
    ʹɺͲ͏͍͏ઃܭʹ͢Δͷ͔ߟ͓͑ͯ͘
    டং
    εϐʔυ

    View Slide

  37. ઃܭ͸͔ͬͪΓܾΊ͓ͯ͘
    Ͳ͏͍͏ΞʔΩςΫνϟͰ΋͍͍ͱࢥ͏͕ɺ
    Լه͸ԡ͓͑ͯ͘͞
    • ඇಉظ
    • ӬଓԽ
    • ϏδωεϩδοΫ
    • Πϕϯτ؅ཧ
    • ϑϨʔϜϫʔΫಠࣗͷͤ͘
    டং
    εϐʔυ

    View Slide

  38. ઃܭ͸͔ͬͪΓܾΊ͓ͯ͘
    wikiʹ·ͱΊͯɺ࣮ࡍͷ͋Δͻͱͭͷػೳ
    Λ࡞ͬͯΈͯઆ໌
    டং
    εϐʔυ

    View Slide

  39. ͋ͱ͸டংͮ͘Γ

    View Slide

  40. ςετ͸ඞͣॻ͘
    • ςετ͕ͳ͍ͱ͜Ζʹ్த͔Βςε
    τΛೖΕΔͷ͸෷͏ͷ͕೉͍͠΄Ͳ
    ίετ͕ߴ͘ͳΔɻ
    • ςετͷ࣭΋ॏཁ͚ͩͲɺগͳ͘ͱ
    ΋ॳΊ͔Βςελϒϧʹɻ
    டং

    View Slide

  41. Theme / Style / colorͷ௥Ճېࢭ
    • σβΠϯΨΠυϥΠϯΛݩʹॳΊʹ
    جຊతͳ΋ͷΛΨπͬͱ௥Ճ
    • ͦΕҎ߱͸ඞཁͳ͍͸ͣͳͷͰ௥Ճ
    ېࢭ
    டং

    View Slide

  42. dimen / string / shape /
    selector͸࢖͍ճ͠͠ͳ͍
    • جຊతͳ΋ͷ͸ઌʹΨπͬͱ࡞Δ
    • ͦΕҎ߱͸ɺඃ͍ͬͯͯ΋খ·Ίʹ
    ࡞Δ
    • த్൒୺ʹ࢖͍ճ͍ͯ͠͠Δͱमਖ਼
    ͨ͠ͱ͖ʹࢥΘ͵ͱ͜Ζ͕มΘͬͯ
    ͠·͏֬͠ೝ͠Α͏͕ͳ͍ɻɻ
    டং

    View Slide

  43. ൓ল఺
    ཪ໨ʹग़ͨ͜ͱͱ͔͸ͳ͔͕ͬͨɺ
    ΋͏গ͜͠͏ͨ͠΄͏͕Α͔ͬͨͳͬͯ͜
    ͱͳͲ

    View Slide

  44. ઃܭ্ࣅͨΑ͏ͳ΋ͷΛ࡞Δ͜
    ͱ͕ଟ͍ͷͰΧελϜςϯϓϨʔ
    τ࡞ͬͨ΄͏͕Α͔ͬͨ
    ෳ਺ϑΝΠϧΛ
    ؆୯ʹੜ੒Ͱ͖Δ
    εϐʔυ

    View Slide

  45. ઃܭ্ࣅͨΑ͏ͳ΋ͷΛ࡞Δ͜
    ͱ͕ଟ͍ͷͰΧελϜςϯϓϨʔ
    τ࡞ͬͨ΄͏͕Α͔ͬͨ
    http://motida-japan.hatenablog.com/entry/
    2017/01/03/190016
    εϐʔυ

    View Slide

  46. ίʔυϑΥʔϚολʔͳͲͷ
    IDEઃఆΛڞ༗͢Δ
    டং
    IDEͷઃఆ͸
    ExportͰ͖ΔͷͰ
    ڞ༗͠·͠ΐ͏

    View Slide

  47. ςετΛॻ͍ͯ΋Β͏Α͏ʹ͠
    ͚ͯͨͲɺςετ࿙Ε͕͋ͬͨ
    githubͷࠩ෼͚ͩݕࡧ͠ͳ͍ͱΘ͔Βͳ
    ͍ͷͰݟམͱ͢͜ͱ͕͋Δ
    ΧελϜlintͰݕ஌ͯ͠CIͰfailʹ͍ͯ͠Δ
    டং

    View Slide

  48. Getting StartedΛॻ͍ͯ΋ಡ·
    ͳ͍ਓ΋͍Δ໰୊
    ͦ΋ͦ΋ಡ·ͳ͍࣌఺Ͱ…ͱ͍͏ͷ΋͋Δ͕
    ͔֬ʹίʔυϑΥʔϚολʔ΍ΧελϜςϯ
    ϓϨʔτͷίϐʔͱ͔໘౗ɻ
    ઃఆ΍ςϯϓϨʔτ΋git؅ཧԼʹ͓͍ͯɺಋೖ͸ε
    ΫϦϓτҰͭୟ͚͹͍͍͚ͩͱ͍͏෩ʹ͓ͯ͘͠
    டং

    View Slide

  49. Getting StartedΛॻ͍ͯ΋ಡ·
    ͳ͍ਓ΋͍Δ໰୊
    டং
    DEMO

    View Slide

  50. ։ൃத൫

    View Slide

  51. ৽ଔҭ੒ͷ࿩

    View Slide

  52. ܾΊͨ͜ͱɺ΍ͬͨ͜ͱ
    • λεΫͷཻ౓͸ࡉ͔͘ɺ׳ΕΔʹ͠
    ͕ͨͬͯͲΜͲΜେ͖͘
    • ࣮૷લʹΫϥεਤΛॻ͍ͯ΋Β͏

    View Slide

  53. λεΫͷཻ౓Λࡉ͔͘ɺ׳Εͨ
    Βେ͖͘
    • λεΫͷཻ౓͕େ͖͍͕ނʹͦ΋ͦ
    ΋ͷ࣮૷ʹ͕͔͔࣌ؒΔɺͦͯ͠Ϩ
    ϏϡʔͰࢦఠେྔ…݁Ռɺͳ͔ͳ͔
    ऴΘΒͳ͍ͱ͍͏͜ͱ͕..
    ·ͣ͸ࡉ͔۠͘੾ͬͯ੒ޭମݧΛʂ

    View Slide

  54. ࣮૷લʹΫϥεਤΛॻ͍ͯ΋Β
    ͏
    ΫϥεਤΛॻ͘લ
    • ઃܭํ਑ෆཧղ
    • ίʔυΛ͕ͬͭΓॻ͍ͨޙʹ͢΂ͯ
    ΍Γ௚͠…Έ͍ͨͳ͜ͱ͕ൃੜ
    • ωʔϛϯάͷѱ͞

    View Slide

  55. ࣮૷લʹΫϥεਤΛॻ͍ͯ΋Β
    ͏
    ΫϥεਤΛॻ͘Α͏ʹͳͬͯ
    • ઃܭํ਑ͷ৯͍ҧ͍͕ࣄલʹΘ͔Δ
    • ωʔϛϯάͷϨϏϡʔ͕Ͱ͖Δ
    • ೋ౓ख͕ؒͳ͘ͳͬͨ
    • ΠϯλϑΣʔεΛ͔ͬ͠Γҙࣝͯ͘͠Ε
    ΔΑ͏ʹͳͬͨ

    View Slide

  56. ᷤ౻͕͋ͬͨͱ͜Ζ
    ઃܭํ਑ͳͲΛࣗ෼͕ߟ͑Δ͜ͱͰ
    ੒௕ͷػձΛୣͬͯ͠·͏ͷͰ͸…

    View Slide

  57. ੒௕ʹ͸ஈ֊͕͋Δʮकഁ཭ʯ
    ·ͣ͸ʮकʯ͔Βɻ
    ܕΛ஌Δ΂͖λΠϛϯάͩͬͨͷͰ
    ੒௕ʹ໾ཱ͍ͬͯͨ໛༷…

    View Slide

  58. ൓ল఺

    View Slide

  59. λεΫফԽલʹ࣮૷ΪϦΪϦ·
    Ͱͷॴ·Ͱམͱ͠ࠐΜͰ
    ڞ௨ೝࣝΛ࡞Δ
    εϐʔυ
    • ઃܭࣗମͷڞ௨ೝࣝ͸Ͱ͖͍ͯͯ΋ࡉ͔
    ͍ͱ͜ΖͰ৯͍ҧ͍͕ग़ͯ͘Δ
    • ͦΕ͕൑໌͢Δͷ͕ϨϏϡʔ࣌Ͱ͕࣌ؒ
    ΋͍ͬͨͳ͍
    λεΫফԽલʹڞ௨ೝࣝΛ࡞Δ͜ͱ

    View Slide

  60. λεΫফԽલʹ࣮૷ΪϦΪϦ·
    Ͱͷॴ·Ͱམͱ͠ࠐΜͰ
    ڞ௨ೝࣝΛ࡞Δ
    εϐʔυ
    • 1िؒ୯ҐͰΠςϨʔτ͍ͯ͠Δ
    • λεΫΛܾΊͨॳΊͷ೔ʹAndroidνʔ
    ϜͰू·ͬͯશλεΫʹ͍ͭͯΫϥεਤ
    Λඳ͍ͨΓɺؾʹͳΔͱ͜Ζ͸ϝιου
    ͷத਎·Ͱඳ͍ͯڞ௨ೝࣝΛ࡞͍ͬͯΔ

    View Slide

  61. λεΫফԽલʹ࣮૷ΪϦΪϦ·
    Ͱͷॴ·Ͱམͱ͠ࠐΜͰ
    ڞ௨ೝࣝΛ࡞Δ
    εϐʔυ
    • λεΫܾఆ೔ॳ೔ʹ3-4࣌ؒऔΒΕΔ
    • ͕ɺҰिؒͷΞ΢τϓοτ͸͜ͷ΍Γํ
    ͷ΄͏͕େ͖͍

    View Slide

  62. λεΫফԽલʹ࣮૷ΪϦΪϦ·
    Ͱͷॴ·Ͱམͱ͠ࠐΜͰ
    ڞ௨ೝࣝΛ࡞Δ
    εϐʔυ
    ϨϏϡʔͰ͸ࠣࡉͳࢦఠ͔͠ͳ͍ͷͰɺλεΫফԽ͕ૣ͍

    View Slide

  63. ։ൃऴ൫

    View Slide

  64. ͍··Ͱʹ΍ͬͨ͜ͱ͕
    ͏·͘͸·ͬͯ
    ͬ͘͡ΓQAΛ΍ͬͯ·ͨ͠

    View Slide

  65. ͦͯ͠ແࣄϦϦʔε

    View Slide

  66. ·ͱΊ

    View Slide

  67. ·ͱΊ
    • ະख़ͳνʔϜʹ͸ܦݧෆ଍Ώ͑ʹடং
    ͱ։ൃεϐʔυ͕ͳ͍
    • டং͸࡞Δ΂͠
    • ࣮૷தʹߟ͑Δ͜ͱΛͰ͖ΔݶΓ࣮
    ૷લʹߟ͑Δ͜ͱͰεϐʔυΛੜΈ
    ग़͢΂͠

    View Slide

  68. ·ͱΊ
    • ϝϯόʔҭ੒΋େࣄɻཻ౓Λߟ͑ͯ੒
    ޭମݧΛੵΈ্͛Δ΂͠ɻ

    View Slide

  69. ͝੩ௌ
    ͋Γ͕ͱ͏͍͟͝·ͨ͠
    ϦΫϧʔτϚʔέςΟϯάύʔτφʔζͷ
    ϒʔεʹ͍ͨΓ͢ΔͷͰ
    Կ͔࣭໰͋Ε͹ͦͪΒ͔ΒͰ΋ʂ
    (͍ͳ͔ͬͨΒ twitter͔ΒͰ΋ʂʂ)

    View Slide