Slide 1

Slide 1 text

iOS ͷ HTTP Ωϟογϡʹ͍ͭͯ 2018.10.9 - potatotips #55 Satoshi Hachiya (@jpmartha_jp)

Slide 2

Slide 2 text

Satoshi Hachiya (@jpmartha_jp)

Slide 3

Slide 3 text

ࠓ೔ͷ࿩ • API ͷϨεϙϯεͰߋ৽಺༰͕͙͢ʹ͸൓ө͞Εͳ͔ͬͨ • iOS ଆͷܿനΛূ໌͢ΔͨΊʹࢼͨ͠খωλ • ͙͢࢖͏Α͏ͳωλͰ͸ͳ͍͕Կ͔͋ͬͨͱ͖ͷࢀߟʹ

Slide 4

Slide 4 text

HTTP Ωϟογϡ https://developer.mozilla.org/ja/docs/Web/HTTP/Caching ʮաڈʹऔಘͨ͠ϦιʔεΛ࠶࢖༻͢Δͱɺ΢ΣϒαΠτ΍Ξϓ ϦέʔγϣϯͷύϑΥʔϚϯε͕େ͖͘޲্͢ΔͰ͠ΐ͏ɻ΢Σ ϒΩϟογϡ͸஗Ԇ΍ωοτϫʔΫͷτϥϑΟοΫΛ࡟ݮͯ͠ɺ ϦιʔεΛදࣔ͢ΔͨΊʹඞཁͳ࣌ؒ΋୹ॖ͠·͢ɻ HTTP ΩϟογϡΛ࢖༻͢Δͱɺ΢ΣϒαΠτͷԠ౴ੑ͕ߴ·Γ· ͢ɻʯ

Slide 5

Slide 5 text

https://developers.google.com/web/fundamentals/performance/ optimizing-content-efficiency/http-caching?hl=ja ʮωοτϫʔΫܦ༝Ͱ৘ใΛऔಘ͢Δʹ͸࣌ؒ΋ίετ΋͔͔Γ ·͢ɻϨεϙϯε͕େ͖͍ͱɺΫϥΠΞϯτͱαʔόʔؒͷϥ΢ ϯυτϦοϓΛԿ౓΋܁Γฦ͢ඞཁ͕͋ΔͨΊɺϨεϙϯε͕ར ༻Մೳͱͳͬͯϒϥ΢βͰॲཧͰ͖ΔΑ͏ʹͳΔ·Ͱ͕͔͔࣌ؒ Γ·͢ɻ͞ΒʹɺϢʔβʔଆͰ͸σʔλͷ௨৴ίετ͕ൃੜ͠· ͢ɻͦͷͨΊɺલʹऔಘͨ͠ϦιʔεΛΩϟογϡʹอଘͯ͠࠶ ࢖༻Ͱ͖Δ͜ͱ͸ɺύϑΥʔϚϯεΛ࠷దԽ͢Δ্Ͱඇৗʹॏཁ Ͱ͢ɻʯ

Slide 6

Slide 6 text

iOS Ͱ ΩϟογϡΛಡΈࠐ·ͳ͍ํ๏͸ άάΕ͹͙͢ݟ͔ͭΔ

Slide 7

Slide 7 text

CachePolicy Λมߋ

Slide 8

Slide 8 text

CachePolicy Λมߋ

Slide 9

Slide 9 text

ͪͳΈʹ .reloadIgnoringLocalAndRemoteCacheData ͸ ࣮૷͞Ε͍ͯͳ͍ʂ

Slide 10

Slide 10 text

No content

Slide 11

Slide 11 text

ͦΕ͸͓͖ͯ͞

Slide 12

Slide 12 text

CachePolicy ͷઃఆ͚ͩͰ͸ ΩϟογϡΛಡΈࠐ·ͳ͍͕ ! อଘ͸͢Δ

Slide 13

Slide 13 text

γϛϡϨʔλʔͰΩϟογϡΛ֬ೝ

Slide 14

Slide 14 text

อଘ৔ॴ /Library/Developer/CoreSimulator/Devices/xxx/data/ Containers/Data/Application/xxx/Library/Caches/ com.example.bundleid ʹ͋ͬͨ

Slide 15

Slide 15 text

cache.db Λͷͧ͘ • DB Browser for SQLite

Slide 16

Slide 16 text

͜Μͳײ͡

Slide 17

Slide 17 text

ΩϟογϡΛಡΈࠐ·ͳ͍ ʢΆ͍ʣ͠ɺ͜ΕͰΑ͘ͳ͍ʁ

Slide 18

Slide 18 text

΋ΕͨΒ·͍ͣΩϟογϡ͸อଘ͠ͳ͍ • ॏཁ৘ใͷ࿙͍͑ʹͭͳ͕ΔεϚϗΞϓϦͷΩϟογϡ໰୊ͱ ରࡦɿhttps://www.lac.co.jp/lacwatch/people/ 20180228_001581.html • ͨͩͪ͜͠ΒͰ঺հ͞Ε͍ͯΔํ๏ͷ͏ͪɺCapacity = 0 ͩͱ ͦΕҎ߱ΩϟογϡΛར༻Ͱ͖ͳ͘ͳΓͦ͏

Slide 19

Slide 19 text

ΩϟογϡΛಡΈࠐ·ͳ͍͠ อଘ΋͠ͳ͍ํ๏

Slide 20

Slide 20 text

No content

Slide 21

Slide 21 text

configuration.urlCache = nil

Slide 22

Slide 22 text

·ͨ͸ .ephemeral

Slide 23

Slide 23 text

ͨͩ͠ɺ͍ͣΕ΋ طଘͷΩϟογϡ͸࢒Δ

Slide 24

Slide 24 text

ΩϟογϡΛ࡟আ͢Δํ๏ ͢΂ͯ࡟আ ૂ͍ܸͪʢࣦഊʣ session.configuration.urlCache?.removeCachedResponse(for: urlRequest)

Slide 25

Slide 25 text

No content

Slide 26

Slide 26 text

·ͱΊ • લఏɿΩϟογϡ͸ύϑΥʔϚϯε޲্ʹඞཁ • requestCachePolicy Λมߋ͚ͨͩ͠Ͱ͸ΩϟογϡΛอଘ͢Δ • urlCache = nil ʹมߋͯ͠΋طଘͷΩϟογϡ͸࢒Δ ʢ.ephemeral ΋ʣ • removeAllCachedResponses Ͱ͢΂ͯ࡟আ͢Δ • Capacity = 0 ʹ͢ΔͱͦΕҎ߱ΩϟογϡΛར༻Ͱ͖ͳ͍ʁ

Slide 27

Slide 27 text

ࢀߟ • URL Loading Systemɿhttps://developer.apple.com/ documentation/foundation/url_loading_system • Ωϟογϡͷڍಈɿhttps://developer.apple.com/ documentation/foundation/nsurlrequest/cachepolicy/ useprotocolcachepolicy • Ωϟογϡ΁ͷΞΫηεɿhttps://developer.apple.com/ documentation/foundation/url_loading_system/ accessing_cached_data

Slide 28

Slide 28 text

Thanks!