Android開発における自動化のすゝめ

Feb988227afc260a31c195105ab9c55d?s=47 ayatk
December 24, 2016

 Android開発における自動化のすゝめ

KIT LT #1で発表したスライドです

Feb988227afc260a31c195105ab9c55d?s=128

ayatk

December 24, 2016
Tweet

Transcript

  1. Android։ൃʹ͓͚Δ ࣗಈԽͷ͢ʍΊ @ayatk 2016-12-23@KIT_LT #1

  2. ࣗݾ঺հ Twitter: @AyaTokikaze ΍ͬͯΔ͜ͱ: • αʔόʔαΠυͩͬͨΓWebΞϓϦͩͬͨΓ ͳΜͰ΋͢Δ • GolangͰίϚϯυϥΠϯπʔϧॻ͍ͯ·ͨ͠

  3. Կ౓΋ಉ͜͡ͱ΍͍ͬͯΔͳʙ ͬͯࢥ͏࣌͋Γ·ͤΜ͔?

  4. ྫ͑͹

  5. OSSϥΠϒϥϦͷ ϥΠηϯε؅ཧ

  6. ϥΠϒϥϦΛ௥Ճ͢Δ ɹɹɹɹɹɹɹ↘ ɹɹɹɹɹϥΠηϯε৚จΛίϐϖ ɹɹɹɹɹɹɹ⾫ ϑΝΠϧʹషΓ෇͚ ɹɹɹɹɹɹ⾪ ɹɹɹɹɹΊΜͲ͍͘͞

  7. ϥΠϒϥϦΛ௥Ճ͢Δ ɹɹɹɹɹɹɹ⾪ ɹɹɹɹɹϥΠηϯε৚จΛίϐϖ ɹɹɹɹɹɹɹ⾫ ϑΝΠϧʹషΓ෇͚ ɹɹɹɹɹɹ⾪ ɹɹɹɹɹΊΜͲ͍͘͞

  8. ϥΠϒϥϦΛ௥Ճ͢Δ ɹɹɹɹɹɹɹ⾪ ɹɹɹɹɹϥΠηϯε৚จΛίϐϖ ɹɹɹɹɹɹɹ⾫ ϑΝΠϧʹషΓ෇͚ ɹɹɹɹɹɹ⾪ ɹɹɹɹɹΊΜͲ͍͘͞

  9. ϥΠϒϥϦΛ௥Ճ͢Δ ɹɹɹɹɹɹɹ⾪ ɹɹɹɹɹϥΠηϯε৚จΛίϐϖ ɹɹɹɹɹɹɹ⾫ ϑΝΠϧʹషΓ෇͚ ɹɹɹɹɹɹ⾪ ɹɹɹɹɹɹΊΜͲ͍͘͞

  10. ʊਓਓਓਓਓʊ ʼɹͭΒ͍ɹʻ ʉ^Y^Y^Y^ʉ

  11. ࣗಈԽ͠·͠ΐ͏

  12. None
  13. ͳΜͰɹɹɹɹɹɹɹʁ • AndroidΞϓϦΛϏϧυ͢Δ࣌ઈରʹ࢖͏
 (ࠓ࣌AntͳΜ͔࢖ͬͯΔਓ͍·ͤΜΑͶ…?) • εΫϦϓτΛ૊Ί͹୭Ͱ΋(JVM؀ڥ͕͋Ε͹) Ͳ͜Ͱ΋ಉ͡ํ๏ͰϏϧυ͕Ͱ͖Δ • ඞཁͳϥΠϒϥϦ͸উखʹऔ͖ͬͯͯ͘ΕΔ

  14. Android։ൃΛࣗಈԽ͢Δʹ͸ ࠷ߴͷπʔϧ

  15. • versionCodeͷࣗಈੜ੒ • cookpad/license-tools-plugin • Triple-T/gradle-play-publisher • ͓·͚

  16. • versionCodeͷࣗಈੜ੒ • cookpad/license-tools-plugin • Triple-T/gradle-play-publisher • ͓·͚

  17. • versionCodeͷΠϯΫϦϝϯτΛ๨ΕͯPlay Storeͷ apk͕ߋ৽Ͱ͖ͳ͍… • ຖճΞοϓσʔτ͢ΔͨͼʹversionName΋ versionCode΋ߋ৽͢Δͷ͸ΊΜͲ͍͘͞ ʔʼ versionNameΛߋ৽ͨ͠ΒversionCode
 ɹɹ

    ΛࣗಈͰߋ৽ͯ͘͠ΕͨΒศརͩΑͶ? versionCodeͷࣗಈੜ੒
  18. • versionCodeͷΠϯΫϦϝϯτΛ๨ΕͯPlay Storeͷ apk͕ߋ৽Ͱ͖ͳ͍… • ຖճΞοϓσʔτ͢ΔͨͼʹversionName΋ versionCode΋ߋ৽͢Δͷ͸ΊΜͲ͍͘͞ ʔʼ versionNameΛߋ৽ͨ͠ΒversionCode
 ɹɹ

    ΛࣗಈͰߋ৽ͯ͘͠ΕͨΒศརͩΑͶ? versionCodeͷࣗಈੜ੒
  19. • versionCodeͷΠϯΫϦϝϯτΛ๨ΕͯPlay Storeͷ apk͕ߋ৽Ͱ͖ͳ͍… • ຖճΞοϓσʔτ͢ΔͨͼʹversionName΋ versionCode΋ߋ৽͢Δͷ͸ΊΜͲ͍͘͞… ʔʼ versionNameΛߋ৽ͨ͠ΒversionCode
 ɹɹ

    ΛࣗಈͰߋ৽ͯ͘͠ΕͨΒศརͩΑͶ? versionCodeͷࣗಈੜ੒
  20. versionCodeͷࣗಈੜ੒ def VERSION = ‘1.2.3’ android { defaultConfig { versionName

    VERSION versionCode buildVersionCode() // => 1020300 } } def buildVersionCode() { def (major, minor, patch) = VERSION.tokenize(‘.’) (major*1000000) + (minor*10000) + (patch*100) } https://blog.jayway.com/2015/03/11/automatic-versioncode-generation-in-android-gradle/
  21. • versionCodeͷࣗಈੜ੒ • cookpad/license-tools-plugin • Triple-T/gradle-play-publisher • ͓·͚

  22. • GradleͷdependenciesΛಡΈࠐΜͰ
 ϥΠηϯε৚จ͕ॻ͔ΕͨHTMLΛੜ੒͢Δ • ϥΠϒϥϦΛ௥Ճ͢ΔͱϏϧυ࣌ʹϥΠηϯε ͷνΣοΫΛͯ͘͠ΕΔ ʔʼ ख࡞ۀͰϥΠηϯεΛ؅ཧ͠ͳ͍͍ͯ͘!!!! cookpad/license-tools-plugin

  23. • versionCodeͷࣗಈੜ੒ • cookpad/license-tools-plugin • Triple-T/gradle-play-publisher • ͓·͚

  24. Triple-T/gradle-play-publisher • Gradle͔ΒGoogle Play Developer Consoleʹ
 ௚઀apkΛσϓϩΠͰ͖ΔΑ • Ϗϧυ ->

    Developer ConsoleΛ։͘ -> Ξοϓ ϩʔυͱ͍͏ྲྀΕΛίϚϯυΆͪʔͰऴΘΔ ʔʼ खಈΑΓ΋ѹ౗తʹਃ੥ָ͕!!
  25. • versionCodeͷࣗಈੜ੒ • cookpad/license-tools-plugin • Triple-T/gradle-play-publisher • ͓·͚

  26. ͓·͚ • Android StudioͷϏϧυͰ͸Φϓγϣϯʹ
 “-Pandroid.injected.invoked.from.ide=true”
 ͕౉͞ΕΔͷͰɺίϚϯυϥΠϯͱAndroid StudioͷϏϧυͷॲཧ͕෼͚ΕΔ def isIdeBuild =

    project.properties[‘android.injected.invoked.from.ide'] if (isIdeBuild == null || isIdeBuild.equalsIgnoreCase("true")) { // do something for ide build }
  27. ศརͳπʔϧΛ࢖ͬͯ ΋ͬͱָΛ͠·͠ΐ͏!!