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

Encouraging of automation for building better apps

Encouraging of automation for building better apps

アプリ開発の効率化は、よいアプリを作るためには必要不可欠なものです。スマートフォンアプリ開発全盛の今日、世界には自動化をサポートする数多くのサービスが存在します。このセッションでは、アプリ品質を高めるための開発の効率化における考え方と、明日からできる改善についてお話しします。

このスライドは、2015/06/23に「ニフティクラウドmobile backend アプリ開発セミナー」にて発表しました。
http://ncmb.connpass.com/event/16024/

Yuki Fujisaki

June 23, 2015
Tweet

More Decks by Yuki Fujisaki

Other Decks in Technology

Transcript

  1. ΑΓΑ͍ΞϓϦΛ࡞ΔͨΊͷ

    ։ൃޮ཰Խͷ͢͢Ί
    Yuki Fujisaki

    Co-founder & CEO
    DeployGate Inc.

    View Slide

  2. @tnj / Yuki Fujisaki
    DeployGate Inc. Founder & CEO

    View Slide

  3. ג
    ϛΫγΟ೥ೖࣾ
    ˣ
    NJYJϞόΠϧ
    ˣ
    ͨΜΆΆάϧʔϓ
    ˣ
    "OESPJEެࣜΫϥΠΞϯτ
    ։ൃΛޮ཰Խʂ

    View Slide

  4. 2010೥ = Android 2.2
    mixiॳΫϥΠΞϯτΞϓϦ

    View Slide

  5. ։ൃऀ
    ೲظ
    × 1

    View Slide

  6. /(^o^)\ ナンテコッタイ

    View Slide

  7. Ͱ΋

    View Slide

  8. ʮ͍͍ΞϓϦʯΛ࡞Γ͍ͨ
    ★ ★ ★ ★ ★

    View Slide

  9. 1ඵ΋ແବʹͤͣʹ
    ΞϓϦΛ࡞Δ࣌ؒͱͯ͠
    ࢖͍͍ͨ

    View Slide

  10. ͜͏͍͏ͷਏ͍
    ʮ৽͍͠όʔδϣϯͰ͖ͨΑʯ

    ʮ͋ɺ͜ͷ୺຤ʹΠϯετʔϧͯ͠ʂʯ
    ໿෼ճ
    ෆ۩߹ى͖͔ͨΒ୺຤͓࣋ͪ͠·ͨ͠ʔ

    ˠϩάͷճऩ
    ໿෼ճ
    طʹվमࡁΈͷෆ۩߹Λใࠂ͞ΕΔ

    ˠώΞϦϯάʴΞοϓσʔτ
    ໿෼ճ
    ʮͳΜ͔ڧ੍ऴྃͨ͠ʂʯใࠂରԠ ໿෼ճ
    ࢼͯ͠΋Β͏ਓΛ୳ͯ͠࿈Ε͖ͯͯɺ

    Πϯετʔϧ͓ͯ͠౉͢͠Δ
    ໿෼ճ
    ͦΕͧΕͷίϛϡχέʔγϣϯ଴ͪ࣌ؒɺε
    Πονϯάίετ
    ໿ʙ෼ճ
    http://alpha.mixi.co.jp/entry/2013/11649/

    View Slide

  11. ࠓ೔ͷ࿩
    ͍͍ΞϓϦΛ࡞ΔͨΊͷࣗಈԽʹ͍ͭͯ
    %FQMPZ(BUF

    ΋͋ΔΑ

    View Slide

  12. ͍͍ΞϓϦΛ࡞ΔͨΊͷࣗಈԽʹ͍ͭͯ
    • ԿނࣗಈԽ͢Δͷ͔
    • ࣮ફͯ͠ΈΑ͏
    • ಘΒΕΔ΋ͷ
    • Ұาઌ΁

    View Slide

  13. ͳͥɺࣗಈԽ͢Δͷ͔ʁ

    View Slide

  14. • ։ൃ࡞ۀ͕ޮ཰Խͯ͠ΞϓϦ։ൃ͕଎͘ͳΔ
    • ແବ͕ͳ͘ͳָ͕ͬͯͰ͖Δ
    • ࢒ۀ͕ݮΒͤΔ͔΋͠Εͳ͍ʂʂʂ

    View Slide

  15. “͍͍ΞϓϦΛ࡞Δ͜ͱʹूத͢ΔͨΊ”

    View Slide

  16. ʻલఏʼ

    View Slide

  17. ਓؒͷҙࢤ͸ऑ͍

    View Slide

  18. • ࠓ౓ͦ͜ςετυϦϒϯͳ։ൃ͢Δͧʂʂʂ
    • ࣄނΛͳͨ͘͢Ίʹखॱॻ͔ͬ͠Γ࡞Δͧʂ
    • υΩϡϝϯτ͔ͬ͠Γॻͧ͘ʂʂʂ

    View Slide

  19. ਓؒɺ
    ർΕͨΒ৸Δ͠ɺ
    զຫऑ͘ͳΔ͠ɺ
    ͙͢ఘΊΔ΋ͷɻ

    View Slide

  20. ໌೔ͷே͸ૣى͖ͯ͠ϥϯχϯά͢Δͧʂʂʂ
    ͍͍ͩͨೋ౓৸

    View Slide

  21. ؾ߹͍ͱࠜੑʹཔΒͳ͍
    ࢓૊ΈͰղܾ

    View Slide

  22. ඞͣى͖ΕΔ
    ࢓૊ΈΛ࡞Δ
    https://twitter.com/kairoshi/status/522546865510707200

    View Slide

  23. ؀ڥ͸ࣗવͱਓΛಈ͔͢
    Կ΋ͳ͍ˠཱͭ Πε͕͋Δˠ࠲Γ͍ͨ
    http://pictogram-free.com/highresolution/l_001.png
    http://www.monotaro.com/p/4050/3854/

    View Slide

  24. ਓΛ௚઀ม͑Α͏ͱͯ͠΋೉͍͠
    ͔͠͠
    ؀ڥ͕มΘΕ͹ਓͷߦಈ͸มΘΔ

    View Slide

  25. ʻʗલఏʼ

    View Slide

  26. “͍͍ΞϓϦΛ࡞Δ͜ͱʹूத͢ΔͨΊ”

    View Slide

  27. ͳͥɺࣗಈԽ͢Δͷ͔ʁ
    จԽΛ૑Δ

    View Slide

  28. • ίʔυΛίϛοτͨ͠ΒࣗಈͰςετ͞ΕΔ
    • ςετ͕௨Βͳ͍ͱϦϦʔεͰ͖ͳ͍
    • ͪΌΜͱಈ࡞֬ೝ͠ͱ͜͏ɺςετ͠Α͏
    ࣄނ͕ݮΔɺ඼࣭͕ҡ࣋Ͱ͖Δ

    View Slide

  29. “Jenkinsͷ࠷େͷಋೖޮՌ͸

    ʮνʔϜͷϝϯόͷҙࣝมԽʯ”
    https://speakerdeck.com/uasano/jenkinsgatimunimotarasitekuretakoto

    View Slide

  30. ͳͥɺࣗಈԽ͢Δͷ͔ʁ
    ҉໧஌Λ๷͙

    View Slide

  31. ϦϦʔεͷલʹ͜ͷઃఆϑΝΠϧΛฤू͢ΔͷΛ
    ๨Εͣʹʂ͋ͱରԠ͢Δͬͪ͜ͷαʔόͷઃఆ
    ΋มߋ͢Δ͜ͱɻͦͷ্Ͱ͜ͷεΫϦϓτΛ౿
    Έ୆αʔόͷ্Ͱ࣮ߦͯ̍̌͠෼͙Β͍଴ͭʜ
    ΈΜͳେ޷͖ൿ఻ͷλϨ
    ઈର๨ΕΔ

    View Slide

  32. Կ͔ͱϦεΫ͕ߴ·Δ
    • ؅ཧ͍ͯ͠Δਓ͕ډͳ͘ͳΔͱࢭ·Δ
    • ৽͍͠ਓ͕ೖͬͯ͘Δͷ͕೉͘͠ͳΔ
    • Ͱ͖Δਓ͕ݶΒΕΔͷͰ଴͕ͪ࣌ؒ૿͑Δ

    View Slide

  33. ҉໧஌͕ͳ͘ͳΓ

    ϦεΫ͕ݮͬͯ
    εέʔϧ͢Δ
    ͢΂͕ͯ

    هड़͞Ε͍ͯΔ

    ࠶ݱՄೳ
    λεΫ͕

    Ұਓʹूத͠ͳ͍
    εέʔϧ͢Δ
    ಈ࡞͕

    ه࿥͞ΕΔ
    ௥੻͠΍͍͢

    View Slide

  34. ͳͥɺࣗಈԽ͢Δͷ͔ʁ
    ؾܰʹࢼͤΔΑ͏ʹ͢Δ

    View Slide

  35. ίʔυΛॻ͍ͯίϛοτ͢Δ͚ͩͰ
    มߋΛ୭Ͱ΋ݟΕΔ

    View Slide

  36. ͘͢͝େࣄ

    View Slide

  37. 99%
    ਓ͕࡞ͬͯ ਓ͕࢖͏

    View Slide

  38. ҰൃͰͰ͖ͨΓ͠ͳ͍
    ࠷ߴͷ

    ΞϓϦ
    ࢓༷ॻ.xlsx

    View Slide

  39. Ұ൪ḿΔ
    ࡞Δਓ ࢖͏ਓ
    ࡞ͬͨͦͷ৔Ͱݟͤͯҙݟ΋Βͬͯ௚͢

    View Slide

  40. ݐઃతͳ

    ϑΟʔυόοΫ Ϟνϕʔγϣϯ
    ͨ·ʹ͸
    υϠͬͨΓ͍ͨ͠
    =

    View Slide

  41. Web։ൃ͕΋ͨΒͨ͠

    Πϊϕʔγϣϯ
    ։ൃ

    ࡞Δ
    Ϣʔβʔ

    ݟΔ
    ϩάˍ

    ϑΟʔυόοΫ
    σϓϩΠ
    ࠷୹$USM4ͰճΔ

    View Slide

  42. Ͱ΋ΞϓϦ։ൃͩͱ
    ։ൃ

    ࡞Δ
    Ϗϧυˍ

    ΞʔΧΠϒ
    Ͳ͔͜ʹஔ͘

    PSϝʔϧૹ৴
    ࣮ػʹೖΕΔ
    ͓ख఻͍
    Πϯετʔϧ
    Ϣʔβʔ

    ݟΔ
    ϩάˍ

    ϑΟʔυόοΫ
    ϩάཉ͍͠

    ୺຤आΓΔ
    ϩά΋͏

    ྲྀΕͯΔ

    View Slide

  43. ແཧήʔ

    View Slide

  44. ࡞ͬͯΈͨʂ
    ೖΕͯʂ
    ɾɾɾ

    View Slide

  45. ਓϝʔϧૹͬͯΠϯετʔϧਓ

    View Slide

  46. 8FCΈ͍ͨʹ͍ͨ͠ʜ

    View Slide

  47. View Slide

  48. Ξοϓϩʔυͯ͠

    View Slide

  49. https://dply.me/e18bnz
    URLΛڭ͑Δ͚ͩ

    View Slide

  50. ී௨ͷਓͰ΋࢖͑ΔΠϯετʔϧΨΠυ
    Ξοϓσʔτ΋ϓογϡ
    SDKೖΕΕ͹ϩά΋ૹΕΔ

    View Slide

  51. ΞϓϦ։ൃͰ΋
    ։ൃ

    ࡞Δ
    Ϣʔβʔ

    ݟΔ
    ϩάˍ

    ϑΟʔυόοΫ
    σϓϩΠ
    EHBUFQVTI"QQBQL

    View Slide

  52. DEMO

    View Slide

  53. ࣗಈԽͷ໨త
    ؾ߹ͱࠜੑʹཔΒͣ
    ։ൃʹूதͯ͠Δ͚ͩͰ
    ͍͍ΞϓϦ͕࡞ΕΔ
    จԽΛ૑Δ

    View Slide

  54. ࣮ફͯ͠ΈΑ͏

    View Slide

  55. 1. શମͷݟ͑ΔԽ
    2. ϏϧυࣗಈԽ
    3. ςετࣗಈԽ
    4. σϓϩΠࣗಈԽ
    ։ൃ

    ࡞Δ
    Ϣʔβʔ

    ݟΔ
    ϩάˍ

    ϑΟʔυόοΫ
    উखʹճΔ

    Α͏ʹ͢Δ

    View Slide

  56. 1. શମͷݟ͑ΔԽ

    View Slide

  57. Կ͕ى͖͍ͯΔͷ͔ݟ͑ͳ͍
    ˣ
    ෆ҆

    View Slide

  58. ͢΂ͯͷ৘ใΛ

    ྲྀ͢৔ॴΛ࡞Δ
    IRC
    Կ͕ى͖͍ͯΔ͔

    ΈΜͳ͕ݟ͑Δ

    View Slide

  59. ݟ͑ΔͷͰ
    • ։ൃऀͰͳ͍ϝϯόʔ΋
    ͋ͬɾɾɾ ࡯͠
    ঢ়گ͕ۭؾͰཧղͰ͖ΔΑ͏ʹͳΔ

    View Slide

  60. ݟ͑ΔͷͰ
    • ͙͢ؾ͕͍ͭͯରԠͰ͖Δ
    • ίʔυϨϏϡʔґཔ্͕͕͖ͬͯͨ
    • ৽͍͠όʔδϣϯ͕Ͱ͖ͨ
    • ΞϓϦ͕Ϋϥογϡͨ͠
    • ͦͷ৔Ͱ΍ΓͱΓ͕ਐΉ

    View Slide

  61. ݟ͑ΔͷͰ
    • ςετ͕స͚ͨΒ͙͢௚͢ؾʹ
    ࡽ͞ΕͯΔײ͡

    View Slide

  62. ͳΜͰ΋
    ͭͳ͕Δ
    Slack
    ͓͢͢Ί

    View Slide

  63. 2. Ϗϧυ

    View Slide

  64. CI for iOS & Android
    ଞྗ ࣗྗ

    View Slide

  65. ࢖ͬͯΔͳΒଞྗʹཔΖ͏

    View Slide

  66. circle.yml ͪΐͬͱॻ͚ͩ͘
    test:
    override:
    - ./gradlew assembleDebug
    - cp -r project-name/build/outputs $CIRCLE_ARTIFACTS
    Androidͷ৔߹

    View Slide

  67. PR/ίϛοτ͝ͱʹࣗಈϏϧυ
    $ git push origin branch
    Ϗϧυ͕௨͍ͬͯΔ͜ͱ͕֬ೝͰ͖Δ

    Ϗϧυ͞ΕͨΞϓϦ΋੒Ռ෺ͱͯ͠࢒Δ

    View Slide

  68. ࣗಈϏϧυ؀ڥ

    20෼Ͱ׬੒

    View Slide

  69. Ϗϧυαʔό༻ҙ
    ҡ࣋؅ཧɺϝϯςφϯε
    ৽OS/࿈ܞαʔϏεରԠ
    ػೳ֦ு
    ແྉʙ
    ༗ྉͰεέʔϧ

    ߴ଎Խʂ

    View Slide

  70. No GitHub,
    No Circle CI,
    No Developer Life

    View Slide

  71. • αʔόϚγϯͷ༻ҙඞཁ
    • ̍ճ൒೔͙Βֻ͍͚ͯ

    ηοτΞοϓ͑͢͞Ε͹

    ׂͱಈ͘
    • ϓϥάΠϯॆ࣮ɺ

    ߴੑೳCron
    • ෳ਺୆ʹεέʔϧ΋

    View Slide

  72. 3. ςετ

    View Slide

  73. 2ςετॻ͍ͯΔʁ

    View Slide

  74. ·ͣࣗಈςετ؀ڥΛ࡞Ζ͏

    View Slide

  75. ·ͣ͸த਎͸ۭͰ΋͍͍ͷͰɺ
    ςετ͕ࣦഊͨ͠Β

    Ϗϧυ͕స͚ΔΑ͏ʹ͢Δ
    స͚ͨΒϚʔδ͠ͳ͍Λϧʔϧʹ͢Δ

    View Slide

  76. Կ͔໰୊͕ى͖ͨʂࣄނͬͨʂ
    ͱ͍͏ͱ͜Ζ͔Βɺ

    ෆ۩߹Λ࠶ݱ͢ΔςετΛॻ͘ͱ
    ಉ͡໰୊͸ೋ౓ͱى͖ͳ͍

    View Slide

  77. ͜Ε΋ circle.yml ͪΐͬͱॻ͘
    test:
    pre:
    - emulator -avd circleci-android22 -no-audio -no-window:
    background: true
    parallel: true
    - circle-android wait-for-boot
    override:
    - ./gradlew connectedAndroidTest
    - cp -r my-project/build/outputs/androidTest-results/* $CIRCLE_TEST_REPORTS
    - cp -r project-name/build/outputs $CIRCLE_ARTIFACTS
    Androidͷ৔߹

    View Slide

  78. ੺͸ةݥɺࠓ͙͢௚͞ͳ͍ͱ
    ྘͸େৎ෉ʂ
    ͱ͍͏࢓૊ΈͱจԽΛ࡞ͬͯ͠·͑͹ɺ

    View Slide

  79. GitHub ্Ͱ΋҆શͳ͜ͱ͕Ұ໨ྎવ
    खݩͰ࣮ߦΛ๨Εͯ͠·ͬͨΓɺ
    ؾ͔ͮͣʹϚʔδͯ͠͠·͏͜ͱ΋ͳ͍

    View Slide

  80. ؀ڥ͸ࣗવͱਓΛಈ͔͢
    ੺ʹͳʹ͔·͍ͣ ྘ʹେৎ෉

    View Slide

  81. 4. σϓϩΠ

    View Slide

  82. View Slide

  83. Android iOS

    View Slide

  84. ϏϧυεΫϦϓτʹ
    buildscript {
    dependencies {
    classpath 'com.deploygate:gradle:0.6.2'
    }
    }
    apply plugin: 'deploygate'
    circle.ymlʹ
    deployment:
    deploygate:
    branch: /.+/
    commands:
    - ./gradlew uploadDeployGate

    View Slide

  85. circle.ymlʹ
    dependencies:
    pre:
    - gem install shenzhen
    deployment:
    deploygate:
    branch: /.+/
    commands:
    - ./ipa distribute:deploygate -a … -u …

    View Slide

  86. ίϛοτ͢Δ͚ͩͰखݩʹ
    $ git push origin branch
    Կ΋͠ͳͯ͘΋ɺ୭Ͱ΋ߋ৽͕֬ೝͰ͖Δ

    View Slide

  87. 10෼ͰηοτΞοϓ׬ྃ

    View Slide

  88. ಘΒΕΔ΋ͷ

    View Slide

  89. λΠϜϥΠϯͷ
    ҰຊԽ
    • ୭͕Կ͍ͯ͠Δ͔෼͔Δ
    • ໰୊ʹ͙͢ؾ͚ͮΔɺ

    ͦͷ৔ͰղܾͰ͖Δ
    • ։ൃऀҎ֎ͷਓ΋

    ίϛϡχέʔγϣϯ

    औΓ΍͘͢ͳΔ

    View Slide

  90. $ git push origin branch
    ςετͱ

    σϓϩΠࣗಈԽ
    • ίʔυॻ͍ͯ

    ίϛοτ͢Δ͚ͩ

    ຊ࣭ͷ։ൃʹूத
    • ҙࣝͤͣͱ΋඼࣭Λ

    ҡ࣋Ͱ͖Δ
    • ͱʹ͔͘࡞ͬͯɺ

    ݟͯɺ௚͕͢ؾܰʹ

    View Slide

  91. Webͱಉ͡αΠΫϧͰ։ൃ
    ։ൃ

    ࡞Δ
    Ϣʔβʔ

    ݟΔ
    ϩάˍ

    ϑΟʔυόοΫ
    σϓϩΠ
    HJUQVTI

    View Slide

  92. ͍͍ΞϓϦ͔͠࡞Εͳ͍

    View Slide

  93. Ұาઌ΁

    View Slide

  94. ࣗಈԽ͢Δ্Ͱͷߟ͑ํ

    View Slide

  95. ਓͷίετ͸ߴ͍

    ਓͷ࣌ؒΛकΖ͏

    View Slide

  96. 3ճ܁Γฦͨ͜͠ͱ͸ࣗಈԽ͢Δ

    View Slide

  97. 1ਓͳΒঘߋ͜Μͳ͜ͱ࣌ؒ࢖ͬͯΒΕͳ͍
    ʮ৽͍͠όʔδϣϯͰ͖ͨΑʯ

    ʮ͋ɺ͜ͷ୺຤ʹΠϯετʔϧͯ͠ʂʯ
    ໿෼ճ
    ෆ۩߹ى͖͔ͨΒ୺຤͓࣋ͪ͠·ͨ͠ʔ

    ˠϩάͷճऩ
    ໿෼ճ
    طʹվमࡁΈͷෆ۩߹Λใࠂ͞ΕΔ

    ˠώΞϦϯάʴΞοϓσʔτ
    ໿෼ճ
    ʮͳΜ͔ڧ੍ऴྃͨ͠ʂʯใࠂରԠ ໿෼ճ
    ࢼͯ͠΋Β͏ਓΛ୳ͯ͠࿈Ε͖ͯͯɺ

    Πϯετʔϧ͓ͯ͠౉͢͠Δ
    ໿෼ճ
    ͦΕͧΕͷίϛϡχέʔγϣϯ଴ͪ࣌ؒɺε
    Πονϯάίετ
    ໿ʙ෼ճ
    http://alpha.mixi.co.jp/entry/2013/11649/

    View Slide

  98. Α͋͘Δٞ࿦

    View Slide

  99. ࣗࣾ಺Ͱด͡Δ
    vs
    ֎෦αʔϏεΛ׆༻

    View Slide

  100. ΋ͪΖΜέʔεʹΑΔ͕
    ֎෦αʔϏεΛ࢖Θͳ͍͜ͱʹΑΔϦεΫ

    Λ๨Εͣʹ

    View Slide

  101. ྫ: ࣗಈϏϧυ؀ڥͷߏங
    (JU)VCΛར༻͍ͯ͠Ε͹
    ෼ͰηοτΞοϓɺແྉ

    ϊ΢ϋ΢͕ੈքͰ஝ੵ

    ࣗಈతʹ࠷৽؀ڥ
    ࣗࣾ಺Ͱ࣋ͱ͏ͱ͢Δ৔߹
    Ϗϧυαʔόͷඅ༻

    ઐ೚ͷ୲౰ऀͷ࠾༻

    ߏஙͰ͖Δ·Ͱͷඇޮ཰ͳ࣌ؒ

    View Slide

  102. View Slide

  103. ੲ͸େاۀͰͳ͍ͱ࣋ͯͳ͔ͬͨ࢓૊ΈΛ
    Θ͔ͣ਺໊ͷελʔτΞοϓ͕׆༻ͯ͠
    େاۀͱಉ༷ੈքʹαʔϏεΛల։͍ͯ͠Δ

    View Slide

  104. ֎෦αʔϏεΛࠓ೔͔Β׆༻͢Δ͔
    ࣗࣾͰ։ൃอकӡ༻͢Δ͔
    ඇޮ཰ͳঢ়گΛଓ͚Δͱ͍͏બ୒Ͱ͸

    ͜ͷઌੜ͖ͷ͜Εͳ͍

    View Slide

  105. ࣗ෼ͨͪͷ։ൃͷຊ࣭ʹूத͠Α͏
    खݩʹ͋ΔϦιʔεͰ
    Ξ΢τϓοτΛ࠷େԽ͢ΔͨΊʹ
    ׆༻Ͱ͖Δ΋ͷ͸ͲΜͲΜ׆༻͢Δ
    ֎෦αʔϏεͷ׆༻͸30*ͷඇৗʹߴ͍౤ࢿ

    View Slide

  106. • ৽͍ٕ͠ज़Λੵۃ׆༻ɺ

    ͱ͍͏ϒϥϯσΟϯά
    • ৽͍͠ਓ͕νʔϜʹೖͬͯ

    ͙͢࢓ࣄͰ͖Δ
    • ੈքͷ։ൃऀͱͷ

    ڞ௨ݴޠ - Pull Reqͱ͔
    • ΋ͬͱศརʹ͍ͨ͠ɺ

    վળ͠Α͏ͱ͍͏ϚΠϯυ
    ͓·͚ʹ

    ͍ͭͯ͘Δ΋ͷ

    View Slide

  107. ·ͱΊ

    View Slide

  108. ͍͍ΞϓϦΛ࡞ΔͨΊͷࣗಈԽʹ͍ͭͯ
    • ԿނࣗಈԽ͢Δͷ͔
    • ؾ߹ͱࠜੑʹཔΒͣʹ։ൃʹूத͍ͯ͠Δ͚ͩͰ

    ͍͍ΞϓϦ͕૑ΕΔจԽΛ૑Δ
    • ࣮ફͯ͠ΈΑ͏
    • ͢΂ͯΛ̍ΧॴͷλΠϜϥΠϯͰݟ͑ΔΑ͏ʹ͠Α͏
    • GitHub࢖ͬͯΔͳΒ1࣌ؒͰϏϧυ/ςετ/σϓϩΠΛࣗಈԽ
    • ಘΒΕΔ΋ͷ
    • ແବͳ͘ɺWeb։ൃͷΑ͏ͳ଎͞Ͱɺ͍͍ΞϓϦ͔͠࡞Εͳ͍؀ڥ
    • Ұาઌ΁
    • ਓͷίετ͸ߴ͍ɺ܁Γฦ͠Λͳͦ͘͏ɺ֎෦αʔϏεΛ׆༻͠Α͏

    View Slide

  109. https://dply.me/start

    View Slide