Slide 1

Slide 1 text

APIͷσʔλͷϚοϐϯάΛ ໿18ഒ଎ͨ͘͠࿩ potatotips #48 @magie_pooh

Slide 2

Slide 2 text

ࣗݾ঺հ ౻ాୖຏ @magie_pooh @magiepooh झຯɾಛٕ:
 ΫϥϑτϏʔϧɾ೔ຊञɾϚδοΫɾ࠵຾

Slide 3

Slide 3 text

ͱ͋ΔΞϓϦͷ։ൃத • ը໘ભҠ͕஗͍୺຤͕͋Δͳʔͱࢥͬͨ

Slide 4

Slide 4 text

ͱ͋ΔΞϓϦͷ։ൃத • ը໘ભҠ͕஗͍୺຤͕͋Δͳʔͱࢥͬͨ • Nexus5Xͱ͔Ͱ਺ඵ

Slide 5

Slide 5 text

ͱ͋ΔΞϓϦͷ։ൃத • ը໘ભҠ͕஗͍୺຤͕͋Δͳʔͱࢥͬͨ • Nexus5Xͱ͔Ͱ਺ඵ • SO-04G (5.0.2)Ͱը໘ભҠʹ20sec͘Β͍ɾɾ

Slide 6

Slide 6 text

No content

Slide 7

Slide 7 text

ঢ়گ • Wi-Fi઀ଓ؀ڥ • σʔλ͸JSONܗࣜ • αΠζ͸1MB • Kotlin + Moshi(=A modern JSON library for Android and Java)

Slide 8

Slide 8 text

ରࡦ

Slide 9

Slide 9 text

ରࡦ1ɿMoshi͕ѱ͍ͷͰ͸ʁ • moshi(moshi-kotlin: Square੡JSONύʔα)͸ϦϑϨΫγϣϯ Λ༻͍͍ͯΔͨΊɺίετ͕ߴ͍ • KotshiΛ࢖͏ • An annotations processor that generates Moshi adapters from immutable Kotlin data classes. • https://github.com/ansman/kotshi

Slide 10

Slide 10 text

ରࡦ1ɿMoshi͕ѱ͍ͷͰ͸ʁ • moshi(moshi-kotlin: Square੡JSONύʔα)͸ϦϑϨΫγϣϯ Λ༻͍͍ͯΔͨΊɺίετ͕ߴ͍ • KotshiΛ࢖͏ • An annotations processor that generates Moshi adapters from immutable Kotlin data classes. • https://github.com/ansman/kotshi => 20sec -> 12sec

Slide 11

Slide 11 text

ରࡦ2ɿΦϒδΣΫτੜ੒͕ଟ͗͢Δ໰୊ • ഑ྻͷதʹΦϒδΣΫτ͕େྔʹଘࡏ͍ͯͨ͠ { “hogeArray”: [ {“obj”: {123, 456.2}},… ] }

Slide 12

Slide 12 text

ରࡦ2ɿΦϒδΣΫτੜ੒͕ଟ͗͢Δ໰୊ • ഑ྻͷதʹΦϒδΣΫτ͕େྔʹଘࡏ͍ͯͨ͠ => ΦϒδΣΫτ͡Όͳ͘ɺStringܕͷ഑ྻͷ഑ྻͰදݱ͢Δ { “hogeArray”: [ {“obj”: {123, 456.2}},… ] } { “hogeArray”: [ [“123”, “456.2”],… ] }

Slide 13

Slide 13 text

ରࡦ2ɿΦϒδΣΫτੜ੒͕ଟ͗͢Δ໰୊ • ഑ྻͷதʹΦϒδΣΫτ͕େྔʹଘࡏ͍ͯͨ͠ => ΦϒδΣΫτ͡Όͳ͘ɺStringܕͷ഑ྻͷ഑ྻͰදݱ͢Δ { “hogeArray”: [ {“obj”: {123, 456.2}},… ] } { “hogeArray”: [ [“123”, “456.2”],… ] } => 12sec -> 8.4secʢ഑ྻσʔλ͕ͦ΋ͦ΋ڊ େͩͬͨͨΊɺ͔ͳΓ͕ࠩग़ͨʣ

Slide 14

Slide 14 text

ରࡦ3: APIఆٛΛݟ௚͢ • ഑ྻσʔλΛ̍ͭʹڞ௨ԽͰ͖Δɾɾɾʂ • ॏෳͨ͠഑ྻσʔλΛ4ͭड͚औ͍ͬͯͨ => 8.4sec -> 2.9sec

Slide 15

Slide 15 text

·ͱΊ1 • ΄΅Kotshiͷ͓͔͕͛ͩɺ20sec -> 2.9secʹͳͬͨ • େྔͷ഑ྻσʔλʹܕΛ͚ͭΔͷ͸Α͘ͳ͍ • ʮͦͷ೔ɺਓྨ͸ࢥ͍ग़ͨ͠ɻ୺຤ؒͷύϑΥʔϚϯεࠩҟ ͷڪාΛɻͦΕͰ΋αϙʔτ͠ͳ͚Ε͹͍͚ͳ͍۶ৱΛɻʯ • SO-04G (5.0.2): ໿ 2.9sec • SO-02G (4.4.4): ໿ 0.64sec

Slide 16

Slide 16 text

·ͱΊ2 • iOSͰ͸ͦ͜·Ͱύʔεʹ͕͔͔࣌ؒͬͯͳ͔ͬͨͷ͕ٙ໰ • ΋͔ͯ͠͠ݹ͍୺຤ͩͱ͕͔͔࣌ؒΔʁ • ը໘ભҠΞχϝʔγϣϯ(Shared Element Transition)͕͋Δͱɺ 2.9secͰ΋஗͘ײ͡ͳ͍ • ͦΕͰ΋ɺ2.9sec͔͔Δͷ͕ݏͩͬͨͷͰɺେྔͷ഑ྻͷऔಘ͸ ผAPIʹ੾Γग़ͨ͠ɻʢͦΕͰ1.2sec͘Β͍·ͰॖΊͯ18ഒͷύ ϑΥʔϚϯεվળୡ੒ɾɾʣ