Slide 1

Slide 1 text

AndroidΞϓϦ ϦϦʔεͯ͠·͔͢ Fuji, Goro (gfx) at Cookpad Inc. potatotips #8 2014/8/20 in Retty ‣ YES ‣ ͸͍

Slide 2

Slide 2 text

No content

Slide 3

Slide 3 text

ࣗݾ঺հ • ΫοΫύουͰϞόΠϧΤϯδχΞ΍ͬͯ·͢ • Android/iOSΞϓϦ։ൃͷੜ࢈ੑ㽉㽉Λ୲౰ • ࠷ۙͷ໺๬ • Maven Centralͱܾผ͢ΔͨΊͷweb serviceΛͭ͘Δʂ

Slide 4

Slide 4 text

ΞϓϦͷϦϦʔεͯ͠·͔͢ • ϦϦʔεΤϯδχΞϦϯά(releng)ͷλεΫ͸ෳࡶ • όʔδϣϯΛઃఆͯ͠ςετͯ͠Ϗϧυͯ͠apkʹ ॺ໊ͯ͠λάΛ͏ͬͯdeploygateʹ഑৴ͯ͠ google playʹΞοϓϩʔυͯ͠ߋ৽৘ใΛΞοϓ σʔτͯ͠ެ։ઃఆͯؔ͠܎ऀʹΞφ΢ϯεͯ͠ ެ։͞ΕͨΒGA΍CrashlyticsΛோΊͯ͢΂ͯ໰୊ ͳͦ͞͏Ͱ͋Ε͹Ұଉͭ͘

Slide 5

Slide 5 text

՝୊ɿrelengͷखॱ͕ෳࡶ͗͢Δ

Slide 6

Slide 6 text

λεΫΛ෼ղͯ͠ΈΔ • όʔδϣϯΛద੾ͳ΋ͷʹઃఆ͢Δ • ࣗಈςετɾlintΛ࣮ߦ͢Δ • ΫϦʔϯϏϧυ͢Δ • ϦϦʔε༻ͷॺ໊ͷઃఆΛ͢ΔʢॳΊͯϦϦʔε͢Δͱ͖ͷΈʣ • deploygate/testflightʹ഑৴͢Δ • Google PlayͰΞϓϦέʔγϣϯͷઃఆΛߦ͏ʢॳΊͯϦϦʔε͢Δͱ͖ͷΈʣ • Google Playʹupload͢Δ • Google Playͷߋ৽৘ใΛΞοϓσʔτ͢Δ • Google PlayͰެ։ͷઃఆΛ͢Δ • ࣾ಺ʹΞφ΢ϯε͢Δ • ϦϦʔεޙʹΫϥογϡ౳Λ؂ࢹ͢Δ

Slide 7

Slide 7 text

relengλεΫଟ͗͢Δ݅ • λεΫ͕ଟ͍ͱԿ͔͕ൈ͚͕ͪʹͳΔ • ྫɿʮ͋ɺversion codeͷߋ৽Λ๨Εͨͷ ͰϏϧυ͠ͳ͓͠·͢ʯ • Կ౓͔ܦݧ͠ͳ͍ͱ΋͸΍ਖ਼͍͠खॱΛ౿Ή ͷ͕ෆՄೳ

Slide 8

Slide 8 text

ॺ໊ͷ໰୊ • ॺ໊ͷઃఆΛbuild.gradleʹॻ͘ͷ͕μϧ͍ • keystoreϑΝΠϧΛ͹Β·͖ͨ͘ͳ͍͔Β JenkinsͰϦϦʔε༻apkΛ࡞ΔΑ͏ʹͯ͠ ͍Δ • ͦΕ΋͋ͬͯ͸͡ΊͯϦϦʔε͢Δͱ͖ʹ߹ ܭ10ߦ΄Ͳίϐϖ͠ͳ͍ͱ͍͚ͳ͍

Slide 9

Slide 9 text

Google Play΁ͷΞοϓϩʔυ • JenkinsͷϏϧυ݁Ռ͔ΒapkϑΝΠϧΛऔಘ • औಘͨ͠apkϑΝΠϧΛplayʹΞοϓϩʔυ • ख࡞ۀͳͷͰΘΓͱ໘౗͍͘͞

Slide 10

Slide 10 text

औΓ૊Έ

Slide 11

Slide 11 text

ࣗಈԽ • όʔδϣχϯάͷ໰୊ -> Jenkinsͷ BUILD_NUMBERΛ͔ͭ͏ • ॺ໊ͷ໰୊ -> app-unsigned.apkʹ͋ͱ͔Βsign ͢Δ • Ξοϓϩʔυͷ໰୊ -> Google Play Developer APIΛ࢖͏

Slide 12

Slide 12 text

όʔδϣχϯάͷ໰୊ • major.minor.patch.build ͷ4ύʔπ • ݱࡏͷAndroidΞϓϦ͸4.0.0.1 • build෦෼ΛJenkinsʹࣗಈͰৼΒͤΔ

Slide 13

Slide 13 text

ॺ໊ͷ໰୊ • build.gradleʹॺ໊ઃఆ༻ίʔυΛίϐϖ͢Δͷ͕໰୊ͩͬͨ • ॺ໊ઃఆͤͣʹϏϧυͯ͋͠ͱͰॺ໊͢Ε͹ղܾͰ͖Δ͸ͣ • $ jarsigner -verbose -sigalg SHA1withRSA -digestalg SHA1 - keystore ~/.android/debug.keystore -storepass android ./ app/build/outputs/apk/app-product-release-unsigned.apk androiddebugkey • http://developer.android.com/tools/publishing/app-signing.html

Slide 14

Slide 14 text

Ξοϓϩʔυͷ໰୊ • Google Play Developer APIΛ࢖͏ • apkͷΞοϓϩʔυ • ެ։ઃఆʢalpha / beta / rollout / productionʣ • εΫϦʔϯγϣοτ΍આ໌จͳͲͷઃఆ • εΫγϣ΍આ໌จΛϦϙδτϦʹೖΕͯ؅ཧͰ͖Δͧʂ • ͍͔ͭ͘gradle plugin͕։ൃ͞Ε͍ͯΔʢະݕূʣ

Slide 15

Slide 15 text

ࣗಈԽͷঢ়گʢ✓ʣ • ✓ όʔδϣϯΛద੾ͳ΋ͷʹઃఆ͢ΔʢJenkinsʣ • ✓ ࣗಈςετɾlintΛ࣮ߦ͢ΔʢJenkinsʣ • ✓ ΫϦʔϯϏϧυ͢ΔʢJenkinsʣ • ✓ ϦϦʔε༻ͷॺ໊ͷઃఆΛ͢Δʢbuild.gradleΛฤू͠ͳͯ͘Α͍ʣ • ✓ deploygate/testflightʹ഑৴͢ΔʢJenkinsʣ • Google PlayͰΞϓϦέʔγϣϯͷઃఆΛߦ͏ʢॳΊͯϦϦʔε͢Δͱ͖ͷΈʣ • ✓ Google Playʹupload͢ΔʢGoogle Play Developer APIʣ • Google Playͷߋ৽৘ใΛΞοϓσʔτ͢Δ • Google PlayͰެ։ͷઃఆΛ͢Δ • ࣾ಺ʹΞφ΢ϯε͢Δ • ϦϦʔεޙʹΫϥογϡ౳Λ؂ࢹ͢Δ

Slide 16

Slide 16 text

To be continued… • relengࣗಈԽͷ੒Ռ͸ github.com/cookpad Ͱެ։͢Δ༧ఆͰ͢ • ଞͷࣗಈԽͰ͖ͯͳ͍ͱ͜Ζ΋ͲΜͲΜࣗಈ Խ͍͖͍ͯͨ͠

Slide 17

Slide 17 text

We are hiring @ Cookpad Inc. • iOS & Android ΤϯδχΞืूத • https://info.cookpad.com/jobs/position/ios- android-app-engineer