Pro Yearly is on sale from $80 to $50! »

unskilled_team_development_for_droidkaigi

 unskilled_team_development_for_droidkaigi

DroidKaigiで発表した内容です

3c4e24fd827c789cb67a9f759f057b06?s=128

Shinnosuke Kugimiya

March 10, 2017
Tweet

Transcript

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

  2. ࣗݾ঺հ

  3. ࣗݾ঺հ • @kgmyshin • ఝٶ ጏ೭հ • AndoridΤϯδχΞ • Server

    / iOS / WebͳͲ΋ • ϦΫϧʔτϚʔέςΟϯάύʔτφʔζ
  4. ࠓ೔࿩͢಺༰

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

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

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

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

  9. Case ελσΟαϓϦ ENGLISH

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

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

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

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

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

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

  16. Hello, World レベル

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

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

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

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

  21. ౰࣌ͷঢ়گ

  22. iOS͸ϦϦʔεࡁΈ

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

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

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

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

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

  28. ։ൃং൫

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

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

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

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

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

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

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

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

  37. ઃܭ͸͔ͬͪΓܾΊ͓ͯ͘ Ͳ͏͍͏ΞʔΩςΫνϟͰ΋͍͍ͱࢥ͏͕ɺ Լه͸ԡ͓͑ͯ͘͞ • ඇಉظ • ӬଓԽ • ϏδωεϩδοΫ •

    Πϕϯτ؅ཧ • ϑϨʔϜϫʔΫಠࣗͷͤ͘ டং εϐʔυ
  38. ઃܭ͸͔ͬͪΓܾΊ͓ͯ͘ wikiʹ·ͱΊͯɺ࣮ࡍͷ͋Δͻͱͭͷػೳ Λ࡞ͬͯΈͯઆ໌ டং εϐʔυ

  39. ͋ͱ͸டংͮ͘Γ

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

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

    ېࢭ டং
  42. dimen / string / shape / selector͸࢖͍ճ͠͠ͳ͍ • جຊతͳ΋ͷ͸ઌʹΨπͬͱ࡞Δ •

    ͦΕҎ߱͸ɺඃ͍ͬͯͯ΋খ·Ίʹ ࡞Δ • த్൒୺ʹ࢖͍ճ͍ͯ͠͠Δͱमਖ਼ ͨ͠ͱ͖ʹࢥΘ͵ͱ͜Ζ͕มΘͬͯ ͠·͏֬͠ೝ͠Α͏͕ͳ͍ɻɻ டং
  43. ൓ল఺ ཪ໨ʹग़ͨ͜ͱͱ͔͸ͳ͔͕ͬͨɺ ΋͏গ͜͠͏ͨ͠΄͏͕Α͔ͬͨͳͬͯ͜ ͱͳͲ

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

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

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

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

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

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

  50. ։ൃத൫

  51. ৽ଔҭ੒ͷ࿩

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

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

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

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

    ΠϯλϑΣʔεΛ͔ͬ͠Γҙࣝͯ͘͠Ε ΔΑ͏ʹͳͬͨ
  56. ᷤ౻͕͋ͬͨͱ͜Ζ ઃܭํ਑ͳͲΛࣗ෼͕ߟ͑Δ͜ͱͰ ੒௕ͷػձΛୣͬͯ͠·͏ͷͰ͸…

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

  58. ൓ল఺

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

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

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

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

  63. ։ൃऴ൫

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

  65. ͦͯ͠ແࣄϦϦʔε

  66. ·ͱΊ

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

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

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