Slide 1

Slide 1 text

High ҙࣝ Android mootoh

Slide 2

Slide 2 text

FAQ

Slide 3

Slide 3 text

: ϝϧΧϦͬͯ΋͏
 ΞϓϦ׬੒ͯ͠Δ͠
 ΍Δ͜ͱͳ͍Μ͡Όͳ͍ͷ?

Slide 4

Slide 4 text

A: ·ͩ·ͩ·ͩ·ͩ ·ͩ·ͩ·ͩ·ͩ ͋Δ

Slide 5

Slide 5 text

2016/02~ • νϟϨϯδ • Χϧνϟʔ • ະདྷ

Slide 6

Slide 6 text

2016

Slide 7

Slide 7 text

Stats % git diff --shortstat `git log --pretty=%H --since 'last year' | tail -n 1` → 2,029 files changed, +385,707, -170,628 ■■■■ % git log --pretty=%H --since 'last year' | wc -l → 4,049 commits

Slide 8

Slide 8 text

Team of 4 in "# # "

Slide 9

Slide 9 text

Team of 4→7 in "#$ $ # "

Slide 10

Slide 10 text

ެ҆9՝

Slide 11

Slide 11 text

“զʑͷؒʹ͸ɺνʔϜϓϨʔͳͲͱ͍͏ ౎߹ͷΑ͍ݴ͍༁͸ଘࡏͤΜɻ ͋Δͱ͢Ε͹ελϯυϓϨʔ͔Βੜ͡Δɺ νʔϜϫʔΫ͚ͩͩɻ” — ߥרେี, 2002

Slide 12

Slide 12 text

ެ҆9՝Ϟσϧ • ߈֪ػಈୂ S.A.C • ཱࣗͨ͠ଟ༷ͳϝϯόʔ • ݸʑͷ؍఺͔ΒϓϩμΫτ/૊৫ͷվળΛ
 ࣮ફ͢Δ

Slide 13

Slide 13 text

FAQ

Slide 14

Slide 14 text

: ̓ਓ΋ΤϯδχΞ͍Ε͹ े෼Ͱ͠ΐ

Slide 15

Slide 15 text

A: ·ΔͰ଍Γͳ͍ • #, ", $ ͦΕͧΕʹ෼͔Ε͍ͯΔ • ϓϩδΣΫτ͋ͨΓ 1~2ਓ • ΋ͬͱ͍Ε͹΍ΕΔ͜ͱΛ૿΍ͤΔ

Slide 16

Slide 16 text

Challenges

Slide 17

Slide 17 text

No content

Slide 18

Slide 18 text

ଠฏ༸Λ·͙ͨ Code Review " PR # Review " Revise # Review # LGTM " Revise " Merge ☀ ☀ ☀ ☀ PR ͷ଺ཹ͕࣌ؒ௕͘ͳΔ → ϦϦʔε஗

Slide 19

Slide 19 text

Solution A

Slide 20

Slide 20 text

6:30am standup meeting • " ϝϯόʔ͕Έͳ༮ࣇ࣋ͪͩͬͨ
 → ڧ੍ૣى͖ • # ʹ༏͍͠ (ன) • Նͩͬͨ → ே໌Δ͍ͷͰૣى͖͠΍͍͢
 → ࢼ͠ʹ΍ͬͯΈΑ͏

Slide 21

Slide 21 text

݁Ռ: • • Sync ͷճ਺͕૿͑ͨ͜ͱʹΑΓɺϨϏϡʔͷޮ཰ ্͕͕ͬͨ • • ࢠ͕6am ʹى͖ΔͷͰग़੮Ͱ͖ͳ͍ • ҙਤͷ֬ೝͳͲ͸Ͱ͖Δ͕ PR ϕʔεͳͷͰ async

Slide 22

Slide 22 text

Solution B https://screenhero.com

Slide 23

Slide 23 text

ScreenHero • ϦϞʔτϖΞϓϩ • protected void synchronized review { … } • ࣌ؒ͸߹ΘͤΔඞཁ͕͋Δ

Slide 24

Slide 24 text

݁Ռ • ίϛϡχέʔγϣϯͷଳҬ͕޿͍ • ࢖͍෼͚ • ॏ͍ϨϏϡʔͷ࣌ʹ໾ཱͭ • PR Ͱ2-3౓΍ΓऔΓͯͯ͠Β͕͔ͪ͋ͳ͍ → ͭͳ͍Ͱνϟνϟͬͱղܾ

Slide 25

Slide 25 text

# " $ Or…

Slide 26

Slide 26 text

๺ۃ Meeting • ཱྀ͍͍ͩͨඅ30~100ສ • ͍͍ͩͨ౳ڑ཭ • פ͍⛄️

Slide 27

Slide 27 text

஌ݟ • ૣى͖͸Ωπ͍͕໾ʹཱͭ • ෳࡶ౓ʹԠͯ͡ίϛϡχέʔγϣϯͷଳҬΛม͑Δ • ͕࣌ࠩൃੜ͠ͳ͍Α͏ʹνʔϜΛ෼͚Δͷ΋ • ๺ۃΛఘΊͳ͍❄

Slide 28

Slide 28 text

Challenges

Slide 29

Slide 29 text

https://commons.wikimedia.org/wiki/File:Adobe_guadalupe_wine_barrel.jpg ख़੒

Slide 30

Slide 30 text

ख़੒ίʔυ • ϓϩμΫτ։ൃΛ࠷଎ͰલʹਐΊ͖ͯͨ • 3೥ख़੒ (౰࣌) • ݹΊͷςΫϊϩδ • (ಛʹ)৽͍͠ϝϯόʔʹͱͬͯมߋͮ͠Β͍

Slide 31

Slide 31 text

ݹΊͷςΫϊϩδ 34 • Networking: • HttpUrlConnection / Apache HttpClient
 with ൿ఻ͷϨγϐ • Async Operation: • Callback Interface / EventBus • Singletons • Giant Activities

Slide 32

Slide 32 text

→एฦΓ 5 • Networking: okhttp • Async Operation: RxJava • Singletons: Dagger2 • Giant Activities: MVVM

Slide 33

Slide 33 text

ϦϑΝΫλϦϯά͍͕ͨ͠… • Ҋ݅։ൃͰύπύπ • ϦϑΝΫλϦϯά͢Δ͜ͱͰσάϨ͢Δ͜ͱ ͕͋ͬͨ • QA ͔Βͷ৴པஷۚ㽊

Slide 34

Slide 34 text

࡞ઓ⚽ • Ҋ݅ͷεέδϡʔϧʹ৫ΓࠐΉ • ϦϑΝΫλͨ͠ํ͕ૣ͍ূڌΛ஝ੵ͢Δ • ςετͰσάϨΛ๷ࢭ͠ɺ৴པΛஷΊΔ

Slide 35

Slide 35 text

஌ݟ • ৽͍͠ػೳ࣮૷Λ͢ΔલʹϦϑΝΫλϦϯά • εέδϡʔϧʹ৫ΓࠐΉ • ͡Θ͡Θ޿͛Δ • ಆ͍ଓ͚ΔɺఘΊͳ͍

Slide 36

Slide 36 text

Challenges

Slide 37

Slide 37 text

# " 1 → 8 0 → 1 Product Phase

Slide 38

Slide 38 text

$ # " 0 → 1 8 → 10 1 → 8 Product Phase

Slide 39

Slide 39 text

Repository # " + $ • ONE OK REPOSITORY • flavor Ͱ෼͚͍ͯͨ

Slide 40

Slide 40 text

໰୊ • มߋͮ͠Β͍ • isJP(), isUS(), isUK() • #޲͚ͷมߋΛ͍͚ͨͩ͠ͳͷʹ"ͷίʔυΛؾʹ͠ͳ͍ͱ͍͚ͳ͍ • ࣌ࠩ໰୊ (ઌड़) • QA େม • Өڹൣғ: #޲͚ͷมߋ͚ͩͲɺ΄Μͱʹ"͸յΕͯͳ͍? • Region ͝ͱͰ phase ͕ҟͳΔ • ༏ઌ౓΍։ൃελΠϧ΋ҟͳΔ

Slide 41

Slide 41 text

Solutions • ͻͱ·ͣ Branch Λ෼͚ͨ ⎇ • Fork ͨ͠Β໭Δͷ͸ࠔ೉ • ΋ͬͱ Region ͕૿͑ͨΒ?

Slide 42

Slide 42 text

Challenges

Slide 43

Slide 43 text

ID ج൫

Slide 44

Slide 44 text

ID ج൫ • Single Sign On తͳ΋ͷ • Mercari <-> Souzoh • iOS / Android ͷϥΠϒϥϦॻ͘͜ͱʹͳͬͨ

Slide 45

Slide 45 text

ݸਓతνϟϨϯδ • Kotlin • ຊମΞϓϦʹಋೖ͸᪳᪯ΘΕΔ͕ϥΠϒϥϦʹͳΒ • gRPC • HTTP/2, Protobuf, ΫϩεϓϥοτϑΥʔϜ

Slide 46

Slide 46 text

gRPC "# ໰୊ • #-"Ͱ gRPC ௨৴͢Δͱࢗ͞ΔσόΠε͕ • " Ͱ͸໰୊͕ൃੜ͠ͳ͍ • ϥΠϒϥϦͷԞਂ͍ͱ͜Ζʹ໰୊͕͋Γͦ͏ • ී௨ͷ௨৴͸໰୊͕ͳ͍ • ͔͕࣌ؒ͠͠ͳ͍⌛

Slide 47

Slide 47 text

gRPC-gateway ? • gRPC ͷαʔϏεʹ RESTful JSON API ͰΞΫ ηεͰ͖Δ • ී௨ͷ HTTPS ΞΫηε͸ͭͳ͕Δ • ໰୊ճආ

Slide 48

Slide 48 text

஌ݟ • Kotlin • ϥΠϒϥϦɺςετͳͲ͔Β߈ΊΔ → μϝʔδগͳ͍ • ϨϏϡʔ͞ΕͮΒ͍ • gRPC • REST ͸ಀ͕͛ͩ໾ʹཱͭ • ίϯτϦϏϡʔγϣϯͰ͖Δ༨༟Λ࢒͓ͯ͘͠

Slide 49

Slide 49 text

Future

Slide 50

Slide 50 text

·ͩ·ͩ·ͩ·ͩ·ͩ·ͩ͋Δ • ܻҧ͍ʹͨ͘͞Μͷ A/B ςετΛ
 ؆୯ʹճͤΔ࢓૊Έ • ଞ Region ্ཱͪ͛ • Inter-Region ചങ • 3D ग़඼ɺ VR γϣοϐϯά (ໝ૝)

Slide 51

Slide 51 text

Wrap Up

Slide 52

Slide 52 text

Wrap up • ·ͩ·ͩνϟϨϯδ͕͋Δ • ٕज़త & ϓϩμΫτత • ެ҆̕՝Ϟσϧ

Slide 53

Slide 53 text

“و༷ɺ͍͍࿹Λ͍ͯ͠Δͳɻ ࠓ͔Βࢲͷ෦ԼʹͳΕɻ” — ૲ಽૉࢠ, 2004

Slide 54

Slide 54 text

JOIN US