Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Speaker Deck
PRO
Sign in
Sign up
for free
Android開発における自動化のすゝめ
ayatk
December 24, 2016
Programming
5
710
Android開発における自動化のすゝめ
KIT LT #1で発表したスライドです
ayatk
December 24, 2016
Tweet
Share
More Decks by ayatk
See All by ayatk
ayatk
2
1k
ayatk
2
460
Other Decks in Programming
See All in Programming
orgachem
1
220
chatii
2
290
o0h
PRO
0
330
kubode
2
190
bkuhlmann
6
710
joytomo
1
540
borkdude
1
180
adarapata
1
470
manfredsteyer
PRO
1
110
etagwerker
1
130
rockname
1
330
kaonash
2
1.9k
Featured
See All Featured
brad_frost
157
6.5k
jasonvnalue
81
8.2k
brianwarren
82
4.8k
kneath
220
15k
shpigford
370
42k
zenorocha
296
40k
jonrohan
1021
390k
roundedbygravity
242
21k
stephaniewalter
262
11k
phodgson
88
4k
lara
172
9.8k
addyosmani
312
21k
Transcript
Android։ൃʹ͓͚Δ ࣗಈԽͷ͢ʍΊ @ayatk 2016-12-23@KIT_LT #1
ࣗݾհ Twitter: @AyaTokikaze ͬͯΔ͜ͱ: • αʔόʔαΠυͩͬͨΓWebΞϓϦͩͬͨΓ ͳΜͰ͢Δ • GolangͰίϚϯυϥΠϯπʔϧॻ͍ͯ·ͨ͠
Կಉ͜͡ͱ͍ͬͯΔͳʙ ͬͯࢥ͏࣌͋Γ·ͤΜ͔?
ྫ͑
OSSϥΠϒϥϦͷ ϥΠηϯεཧ
ϥΠϒϥϦΛՃ͢Δ ɹɹɹɹɹɹɹ↘ ɹɹɹɹɹϥΠηϯεจΛίϐϖ ɹɹɹɹɹɹɹ⾫ ϑΝΠϧʹషΓ͚ ɹɹɹɹɹɹ⾪ ɹɹɹɹɹΊΜͲ͍͘͞
ϥΠϒϥϦΛՃ͢Δ ɹɹɹɹɹɹɹ⾪ ɹɹɹɹɹϥΠηϯεจΛίϐϖ ɹɹɹɹɹɹɹ⾫ ϑΝΠϧʹషΓ͚ ɹɹɹɹɹɹ⾪ ɹɹɹɹɹΊΜͲ͍͘͞
ϥΠϒϥϦΛՃ͢Δ ɹɹɹɹɹɹɹ⾪ ɹɹɹɹɹϥΠηϯεจΛίϐϖ ɹɹɹɹɹɹɹ⾫ ϑΝΠϧʹషΓ͚ ɹɹɹɹɹɹ⾪ ɹɹɹɹɹΊΜͲ͍͘͞
ϥΠϒϥϦΛՃ͢Δ ɹɹɹɹɹɹɹ⾪ ɹɹɹɹɹϥΠηϯεจΛίϐϖ ɹɹɹɹɹɹɹ⾫ ϑΝΠϧʹషΓ͚ ɹɹɹɹɹɹ⾪ ɹɹɹɹɹɹΊΜͲ͍͘͞
ʊਓਓਓਓਓʊ ʼɹͭΒ͍ɹʻ ʉ^Y^Y^Y^ʉ
ࣗಈԽ͠·͠ΐ͏
None
ͳΜͰɹɹɹɹɹɹɹʁ • AndroidΞϓϦΛϏϧυ͢Δ࣌ઈରʹ͏ (ࠓ࣌AntͳΜ͔ͬͯΔਓ͍·ͤΜΑͶ…?) • εΫϦϓτΛΊ୭Ͱ(JVMڥ͕͋Ε) Ͳ͜Ͱಉ͡ํ๏ͰϏϧυ͕Ͱ͖Δ • ඞཁͳϥΠϒϥϦউखʹऔ͖ͬͯͯ͘ΕΔ
Android։ൃΛࣗಈԽ͢Δʹ ࠷ߴͷπʔϧ
• versionCodeͷࣗಈੜ • cookpad/license-tools-plugin • Triple-T/gradle-play-publisher • ͓·͚
• versionCodeͷࣗಈੜ • cookpad/license-tools-plugin • Triple-T/gradle-play-publisher • ͓·͚
• versionCodeͷΠϯΫϦϝϯτΛΕͯPlay Storeͷ apk͕ߋ৽Ͱ͖ͳ͍… • ຖճΞοϓσʔτ͢ΔͨͼʹversionName versionCodeߋ৽͢ΔͷΊΜͲ͍͘͞ ʔʼ versionNameΛߋ৽ͨ͠ΒversionCode ɹɹ
ΛࣗಈͰߋ৽ͯ͘͠ΕͨΒศརͩΑͶ? versionCodeͷࣗಈੜ
• versionCodeͷΠϯΫϦϝϯτΛΕͯPlay Storeͷ apk͕ߋ৽Ͱ͖ͳ͍… • ຖճΞοϓσʔτ͢ΔͨͼʹversionName versionCodeߋ৽͢ΔͷΊΜͲ͍͘͞ ʔʼ versionNameΛߋ৽ͨ͠ΒversionCode ɹɹ
ΛࣗಈͰߋ৽ͯ͘͠ΕͨΒศརͩΑͶ? versionCodeͷࣗಈੜ
• versionCodeͷΠϯΫϦϝϯτΛΕͯPlay Storeͷ apk͕ߋ৽Ͱ͖ͳ͍… • ຖճΞοϓσʔτ͢ΔͨͼʹversionName versionCodeߋ৽͢ΔͷΊΜͲ͍͘͞… ʔʼ versionNameΛߋ৽ͨ͠ΒversionCode ɹɹ
ΛࣗಈͰߋ৽ͯ͘͠ΕͨΒศརͩΑͶ? versionCodeͷࣗಈੜ
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/
• versionCodeͷࣗಈੜ • cookpad/license-tools-plugin • Triple-T/gradle-play-publisher • ͓·͚
• GradleͷdependenciesΛಡΈࠐΜͰ ϥΠηϯεจ͕ॻ͔ΕͨHTMLΛੜ͢Δ • ϥΠϒϥϦΛՃ͢ΔͱϏϧυ࣌ʹϥΠηϯε ͷνΣοΫΛͯ͘͠ΕΔ ʔʼ ख࡞ۀͰϥΠηϯεΛཧ͠ͳ͍͍ͯ͘!!!! cookpad/license-tools-plugin
• versionCodeͷࣗಈੜ • cookpad/license-tools-plugin • Triple-T/gradle-play-publisher • ͓·͚
Triple-T/gradle-play-publisher • Gradle͔ΒGoogle Play Developer Consoleʹ apkΛσϓϩΠͰ͖ΔΑ • Ϗϧυ ->
Developer ConsoleΛ։͘ -> Ξοϓ ϩʔυͱ͍͏ྲྀΕΛίϚϯυΆͪʔͰऴΘΔ ʔʼ खಈΑΓѹతʹਃָ͕!!
• versionCodeͷࣗಈੜ • cookpad/license-tools-plugin • Triple-T/gradle-play-publisher • ͓·͚
͓·͚ • 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 }
ศརͳπʔϧΛͬͯ ͬͱָΛ͠·͠ΐ͏!!