クックパッドのiOS更新との付き合い方 / CAMPFIRE iOS #2

クックパッドのiOS更新との付き合い方 / CAMPFIRE iOS #2

CAMPFIRE iOS #2 で発表した時の資料です。
iOSの更新がきたときにクックパッドではどういう事を考えてどう対応しているか話しました。

0e463e4432ba6d9b7ef02dbebe99c70d?s=128

Tomohiro Moro

June 13, 2017
Tweet

Transcript

  1. ΫοΫύουͷ iOSߋ৽ͱͷ෇͖߹͍ํ 2017/06/12 CAMPFIRE iOS #2 ΫοΫύουגࣜձࣾ ໜ࿊ ஐେ

  2. ࣗݾ঺հ • ໜ࿊ ஐେ - @slightair • iOS ΞϓϦΤϯδχΞ •

    ΫοΫύουגࣜձࣾ ٕज़෦ ϞόΠϧج൫άϧʔϓ • ࣾ಺ͷ։ൃ؀ڥ੔උɺαʔϏε։ൃ෦ॺͷٕज़తࢧԉ͕ۀ຿ • https://github.com/slightair
  3. ಺༰ • աڈͷ iOS & Xcodeߋ৽ͷରԠࣄྫͷ঺հ • ৽͍͠ػೳΛಋೖɾར༻͢Δཧ༝ • iOSͷߋ৽࣌ʹ஫ҙ͍ͯ͠Δͱ͜Ζ

    • ৽ػೳಋೖͷ൑அج४
  4. Handoff ରԠ • iOSͱMacͷମݧΛҾ͖ܧ͙ػೳɺiOS8Ͱ௥Ճ͞Εͨ • ΫοΫύουΞϓϦͰ͸ΞϓϦ·ͨ͸ MacͰΈ͍ͯͨϨγϐը ໘Λ΋͏ยํʹҾ͖ܧ͙Α͏ʹ • ϦϦʔε౰ॳ

    apple-app-site-association΁ͷΞΫηε͕ΞϓϦ ࣗಈΞοϓσʔτʹ࿈ಈͯ͠ʁ೔෇Λ௒͑Δ࣌ʹεύΠΫ͢Δ ໰୊ʹૺ۰ .BD͔ΒJ1IPOFʹભҠͤ͞Α͏ΫοΫύου։ൃऀϒϩά IUUQUFDIMJGFDPPLQBEDPNFOUSZ
  5. AppleWatch ରԠ • AppleWatch ʹϨγϐΛදࣔ • ϨγϐͰࢦఆ͞Εͨ࣌ؒͷ λΠϚʔΛઃఆ • 2015/3/27

    ެ։ɺ2016/10/27 ऴྃ $PPLQBE"QQMF8BUDI"QQ஀ੜͷ෣୆ཪΫοΫύου։ൃऀϒϩά IUUQUFDIMJGFDPPLQBEDPNFOUSZ
  6. Swift • WWDC2014 ͰൃදɺΫοΫύουΞϓϦͰ͸ 2016/5 ͋ͨΓ͔Βར༻։࢝ • ΞϓϦΛૉૣ͘ɺ҆શʹॻ͖͍ͨ…→ϥΠϒϥϦͷબఆ΋ؚΊɺ৻ॏʹಋೖ ΛਐΊ͖ͯͨ •

    ϨΨγʔίʔυΛϦϑΝΫλϦϯάͨ͠Γ ObjC ͷ nullability, LightweightGenerics ͳͲΛ௥Ճͨ͠Γे෼ʹ४උΛͯ͠ಋೖ • Swift 2.3 Λܦ༝ͯ͠ 2016/12 ʹ͸ Swift 3 ʹҠߦ׬ྃ 4XJGUϚΠάϨʔγϣϯΫοΫύου։ൃऀϒϩά IUUQUFDIMJGFDPPLQBEDPNFOUSZ
  7. 100%Λ໨ࢦ͍ͯ͠ΔΘ͚Ͱ͸ͳ͍͕ɺׂ߹͕େ͖͚ Ε͹SwiftͷػೳΛϑϧͰ࢖͑Δͱ͜Ζ͕޿͍ͱ͍͏ ͜ͱʹͳΔ͸ͣ… 2017/6 ݱࡏͷ Swift coverage

  8. ৽͍͠ػೳΛಋೖɾར༻͢Δཧ༝ • རศੑ޲্ͷͨΊ • ϓϩϞʔγϣϯͷͨΊ • ։ൃޮ཰޲্ͷͨΊ

  9. རศੑ޲্ͷͨΊ • 4.7 / 5.5 Πϯν ը໘ରԠ (ࠓͱͳͬͯ͸౰ͨΓલ) • Spotlight

    ͰϨγϐݕࡧ • Shared Web Credential • ͳͲͳͲ ୺຤΍OSͷਐԽʹΑͬͯΞϓϦͰͰ͖Δ͜ͱ͸ ͲΜͲΜ૿͍͑ͯΔ
  10. ϓϩϞʔγϣϯͷͨΊ • Handoff ରԠ • AppleWatch ରԠ (ݱࡏ͸ऴྃͯ͠Δ͚Ͳ…) ‣ Apple

    ͷαΠτʹࡌͤͯ΋ΒͬͨΓɺχϡʔεαΠτ ͳͲͰ࿩୊ʹͯ͠΋ΒͬͨΓ͠·ͨ͠ ৽ػೳΛར༻ͨ͠ΞϓϦ͸ AppStoreͰऔΓ্͛ ΒΕΔ͜ͱ΋͋ΓɺޮՌ͕ߴ͍
  11. ։ൃޮ཰޲্ͷͨΊ • Swift ͷར༻ • AutoLayoutؔ࿈ɺUIStackViewɺWebViewͳͲͳͲ • ඇਪ঑ʹͳͬͨ API ͷར༻ՕॴΛ࢒͢ͱෛ࠴ʹ…

    Ϣʔβʹݟ͑Δͱ͜Ζ͚ͩͰ͸ͳ͘։ൃͷ͠΍ ͢͞ɺ҆ఆੑ޲্ʹ΋Өڹ͕͋Δ
  12. iOSߋ৽࣌ʹ஫ҙ͍ͯ͠Δͱ͜Ζ • มߋ఺ͷ৘ใऩू • ࣄۀ΁ͷӨڹ • ։ൃ؀ڥͷมԽʹ௥ै • αϙʔτόʔδϣϯͷݟ௚͠

  13. มߋ఺ͷ৘ใऩू • ެࣜυΩϡϝϯτɺAPI diff ͳͲ • iOS ΍ Xcode ͷ

    beta ൛͕͖ͨΒ͙͢ࢼͦ͏ • beta ൛Λ৮͍ͬͯͯυΩοͱͨ͜͠ͱ ‣ UniversalLinks ͷόάͰҙਤͤͣ SPWeb ͷશͯͷϦϯΫ͔Β ΞϓϦىಈͪ͠Ό͏ → ్தͰಈ͖͕มΘͬͨ ‣ 10.3 beta2ɺΞϓϦ࡟আͰ Keychain ͷ৘ใ΋ফ͑Δ → औΓԼ͛ • όά͔ͳʁͬͯࢥͬͨΒόάϨϙʔτΛૹΖ͏ɺϑΥʔϥϜΛݟΑ͏ J04ͷϦϦʔεͰΫοΫύουʹى͖ͨ͜ͱΫοΫύου։ൃऀϒϩά IUUQUFDIMJGFDPPLQBEDPNFOUSZ
  14. ࣄۀ΁ͷӨڹ͕ͳ͍͔୳Δ • ίϯςϯπϒϩοΧʔ ‣ εϚʔτϑΥϯWebͷ޿ࠂͲ͏ͳΔͷ ‣ ΞϓϦͷ͜ͱ͚ͩؾʹ͢Ε͹͍͍Θ͚Ͱ΋ͳ͍ • App Transport

    Security ‣ Ͳ͜·ͰରԠ͢Ε͹͍͍ͷɺඞਢԽԆظͨ͠͠… ‣ ޿ࠂ SDK ͷ௨৴ͳͲ͚ࣗࣾͩͰղܾ͠ͳ͍΋ͷ΋͋Δ ޿ࠂϒϩοΧʔͷݕ஌ͱܭଌʹ͍ͭͯΫοΫύου։ൃऀϒϩά IUUQUFDIMJGFDPPLQBEDPNFOUSZ "QQ5SBOTQPSU4FDVSJUZͱωοτϫʔΫ޿ࠂΫοΫύου։ൃऀϒϩά IUUQUFDIMJGFDPPLQBEDPNFOUSZ
  15. ։ൃ؀ڥͷมԽʹ௥ै͢Δ • Xcode, Swift ͷόʔδϣϯΞοϓʹ௥ैͯ͠ɺ ҆ఆͨ͠ϦϦʔεαΠΫϧͷͨΊͷݒ೦Λ෷১ ͢Δ • Swift ੡ͷϥΠϒϥϦ΍πʔϧΛߋ৽͢Δ

    • ։ൃΛଓ͚Δ͜ͱ͕Ͱ͖ͳ͍Α͏ͳঢ়گʹͳ Βͳ͍Α͏ؾΛ഑Δ
  16. αϙʔτόʔδϣϯͷݟ௚͠ • جຊతʹ৽ػೳ͕࢖͑Δͷ͸৽͍͠όʔδϣϯͷ iOSͷΈ • جຊ͸௚ۙ2όʔδϣϯΛαϙʔτ͢Δํ਑ɺ Ϣʔβൺ཰Λݟͯ൑அ • Ϣʔβ૚తʹૢ࡞͕ಘҙͰͳ͍ਓ΋ߟྀͯ͠ɺ OSߋ৽ͷҊ಺Λ͖ͪΜͱߦ͑ΔΑ͏ʹ͢Δ

  17. ৽ػೳಋೖͷ൑அج४ • Ϣʔβ͕ศརʹͳΔػೳɺఏڙαʔϏεͱϚον͢Δ΋ͷ͸ ੵۃతʹऔΓ૊Ή • ػೳϦϦʔεޙʹऔΓԼ͛Δ͜ͱ΋͋Δ ‣ AppleWatch ͸զʑ͕αʔϏε֦େ૾Λ͏·͘ඳ͚ͳ͔ͬͨ ‣

    த్൒୺ͳରԠঢ়گͰ࢒ͯ͠΋ϢʔβɾαʔϏεఏڙଆ૒ํ ʹෆརӹͱ൑அ • ϦϦʔε͠ͳͯ͘΋ϓϩτλΠϓΛ࡞͍ͬͯͨɺͱ͍͏͜ͱ΋ ‣ tvOS ͷΞϓϦΛࢼ͠ʹ࡞ͬͨ
  18. ৽ػೳಋೖͷ൑அج४ • ։ൃޮ཰΍ύϑΥʔϚϯεɺηΩϡϦςΟ͕޲্͢ ΔͳΒɺ࠾༻ • ໌Β͔ʹ΍Βͳ͍ͱߦ͖٧·Δ΋ͷ͸΍Δ͔͠ͳ͍ ‣ Swift ΍ Xcode

    ͳͲͷ։ൃπʔϧͷߋ৽ ‣ ৽APIͷͨΊʹ࠷৽ͷ SDK Λ࢖͏ඞཁ͕͋Δ͜ͱ ΋ → Α΄Ͳͷཧ༝͕ͳ͔ͬͨΒ࠷৽Λ࢖͏
  19. ·ͱΊ • ఏڙαʔϏε΍ΞϓϦʹ΋ΑΔͱ͸ࢥ͏͕ɺϢʔβ͕ศརʹ ͳΔ৽ػೳ͸ੵۃతʹ࠾༻͍͖͍ͯͨ͠ • όʔδϣϯΞοϓʹΑΔมߋ఺ͷ৘ใऩू͸͔ͬ͠Γ΍Ζ͏ɺ ৭ʑͳ໘͔ΒӨڹ͕ͳ͍͔୳Δ • ҆ఆͨ͠ϦϦʔεαΠΫϧΛճͨ͢Ίɺ։ൃ؀ڥʹؔΘΔมߋ ʹ͸ૉૣ͘௥ै͢Δ΂͠

    • ৔߹ʹΑͬͯόάϨϙʔτΛग़ͨ͠ΓϑΥʔϥϜͰฉ͍ͯΈΔ ͷ͕Α͍