CAMPFIRE iOS #2 で発表した時の資料です。 iOSの更新がきたときにクックパッドではどういう事を考えてどう対応しているか話しました。
ΫοΫύουͷiOSߋ৽ͱͷ͖߹͍ํ2017/06/12CAMPFIRE iOS #2ΫοΫύουגࣜձࣾໜ࿊ ஐେ
View Slide
ࣗݾհ• ໜ࿊ ஐେ - @slightair• iOS ΞϓϦΤϯδχΞ• ΫοΫύουגࣜձࣾ ٕज़෦ ϞόΠϧج൫άϧʔϓ• ࣾͷ։ൃڥඋɺαʔϏε։ൃ෦ॺͷٕज़తࢧԉ͕ۀ• https://github.com/slightair
༰• աڈͷ iOS & Xcodeߋ৽ͷରԠࣄྫͷհ• ৽͍͠ػೳΛಋೖɾར༻͢Δཧ༝• iOSͷߋ৽࣌ʹҙ͍ͯ͠Δͱ͜Ζ• ৽ػೳಋೖͷஅج४
Handoff ରԠ• iOSͱMacͷମݧΛҾ͖ܧ͙ػೳɺiOS8ͰՃ͞Εͨ• ΫοΫύουΞϓϦͰΞϓϦ·ͨ MacͰΈ͍ͯͨϨγϐը໘Λ͏ยํʹҾ͖ܧ͙Α͏ʹ• ϦϦʔεॳ apple-app-site-associationͷΞΫηε͕ΞϓϦࣗಈΞοϓσʔτʹ࿈ಈͯ͠ʁΛ͑Δ࣌ʹεύΠΫ͢Δʹૺ۰ .BD͔ΒJ1IPOFʹભҠͤ͞Α͏ΫοΫύου։ൃऀϒϩάIUUQUFDIMJGFDPPLQBEDPNFOUSZ
AppleWatch ରԠ• AppleWatch ʹϨγϐΛදࣔ• ϨγϐͰࢦఆ͞Εͨ࣌ؒͷλΠϚʔΛઃఆ• 2015/3/27 ެ։ɺ2016/10/27 ऴྃ $PPLQBE"QQMF8BUDI"QQੜͷཪΫοΫύου։ൃऀϒϩάIUUQUFDIMJGFDPPLQBEDPNFOUSZ
Swift• WWDC2014 ͰൃදɺΫοΫύουΞϓϦͰ 2016/5 ͋ͨΓ͔Βར༻։࢝• ΞϓϦΛૉૣ͘ɺ҆શʹॻ͖͍ͨ…→ϥΠϒϥϦͷબఆؚΊɺ৻ॏʹಋೖΛਐΊ͖ͯͨ• ϨΨγʔίʔυΛϦϑΝΫλϦϯάͨ͠Γ ObjC ͷ nullability,LightweightGenerics ͳͲΛՃͨ͠Γेʹ४උΛͯ͠ಋೖ • Swift 2.3 Λܦ༝ͯ͠ 2016/12 ʹ Swift 3 ʹҠߦྃ4XJGUϚΠάϨʔγϣϯΫοΫύου։ൃऀϒϩάIUUQUFDIMJGFDPPLQBEDPNFOUSZ
100%Λࢦ͍ͯ͠ΔΘ͚Ͱͳ͍͕ɺׂ߹͕େ͖͚ΕSwiftͷػೳΛϑϧͰ͑Δͱ͜Ζ͕͍ͱ͍͏͜ͱʹͳΔͣ…2017/6 ݱࡏͷ Swift coverage
৽͍͠ػೳΛಋೖɾར༻͢Δཧ༝• རศੑ্ͷͨΊ• ϓϩϞʔγϣϯͷͨΊ• ։ൃޮ্ͷͨΊ
རศੑ্ͷͨΊ• 4.7 / 5.5 Πϯν ը໘ରԠ (ࠓͱͳͬͯͨΓલ)• Spotlight ͰϨγϐݕࡧ• Shared Web Credential• ͳͲͳͲOSͷਐԽʹΑͬͯΞϓϦͰͰ͖Δ͜ͱͲΜͲΜ૿͍͑ͯΔ
ϓϩϞʔγϣϯͷͨΊ• Handoff ରԠ• AppleWatch ରԠ (ݱࡏऴྃͯ͠Δ͚Ͳ…)‣ Apple ͷαΠτʹࡌͤͯΒͬͨΓɺχϡʔεαΠτͳͲͰʹͯ͠ΒͬͨΓ͠·ͨ͠৽ػೳΛར༻ͨ͠ΞϓϦ AppStoreͰऔΓ্͛ΒΕΔ͜ͱ͋ΓɺޮՌ͕ߴ͍
։ൃޮ্ͷͨΊ• Swift ͷར༻• AutoLayoutؔ࿈ɺUIStackViewɺWebViewͳͲͳͲ• ඇਪʹͳͬͨ API ͷར༻ՕॴΛ͢ͱෛ࠴ʹ… Ϣʔβʹݟ͑Δͱ͜Ζ͚ͩͰͳ͘։ൃͷ͢͠͞ɺ҆ఆੑ্ʹӨڹ͕͋Δ
iOSߋ৽࣌ʹҙ͍ͯ͠Δͱ͜Ζ• มߋͷใऩू• ࣄۀͷӨڹ• ։ൃڥͷมԽʹै• αϙʔτόʔδϣϯͷݟ͠
มߋͷใऩू• ެࣜυΩϡϝϯτɺAPI diff ͳͲ• iOS Xcode ͷ beta ൛͕͖ͨΒ͙͢ࢼͦ͏• beta ൛Λ৮͍ͬͯͯυΩοͱͨ͜͠ͱ‣ UniversalLinks ͷόάͰҙਤͤͣ SPWeb ͷશͯͷϦϯΫ͔ΒΞϓϦىಈͪ͠Ό͏ → ్தͰಈ͖͕มΘͬͨ‣ 10.3 beta2ɺΞϓϦআͰ Keychain ͷใফ͑Δ → औΓԼ͛• όά͔ͳʁͬͯࢥͬͨΒόάϨϙʔτΛૹΖ͏ɺϑΥʔϥϜΛݟΑ͏J04ͷϦϦʔεͰΫοΫύουʹى͖ͨ͜ͱΫοΫύου։ൃऀϒϩάIUUQUFDIMJGFDPPLQBEDPNFOUSZ
ࣄۀͷӨڹ͕ͳ͍͔୳Δ• ίϯςϯπϒϩοΧʔ‣ εϚʔτϑΥϯWebͷࠂͲ͏ͳΔͷ‣ ΞϓϦͷ͜ͱ͚ͩؾʹ͢Ε͍͍Θ͚Ͱͳ͍• App Transport Security‣ Ͳ͜·ͰରԠ͢Ε͍͍ͷɺඞਢԽԆظͨ͠͠…‣ ࠂ SDK ͷ௨৴ͳͲ͚ࣗࣾͩͰղܾ͠ͳ͍ͷ͋ΔࠂϒϩοΧʔͷݕͱܭଌʹ͍ͭͯΫοΫύου։ൃऀϒϩάIUUQUFDIMJGFDPPLQBEDPNFOUSZ"QQ5SBOTQPSU4FDVSJUZͱωοτϫʔΫࠂΫοΫύου։ൃऀϒϩάIUUQUFDIMJGFDPPLQBEDPNFOUSZ
։ൃڥͷมԽʹै͢Δ• Xcode, Swift ͷόʔδϣϯΞοϓʹैͯ͠ɺ҆ఆͨ͠ϦϦʔεαΠΫϧͷͨΊͷݒ೦Λ১͢Δ• Swift ͷϥΠϒϥϦπʔϧΛߋ৽͢Δ• ։ൃΛଓ͚Δ͜ͱ͕Ͱ͖ͳ͍Α͏ͳঢ়گʹͳΒͳ͍Α͏ؾΛΔ
αϙʔτόʔδϣϯͷݟ͠• جຊతʹ৽ػೳ͕͑Δͷ৽͍͠όʔδϣϯͷiOSͷΈ• جຊۙ2όʔδϣϯΛαϙʔτ͢ΔํɺϢʔβൺΛݟͯஅ• Ϣʔβతʹૢ࡞͕ಘҙͰͳ͍ਓߟྀͯ͠ɺOSߋ৽ͷҊΛ͖ͪΜͱߦ͑ΔΑ͏ʹ͢Δ
৽ػೳಋೖͷஅج४• Ϣʔβ͕ศརʹͳΔػೳɺఏڙαʔϏεͱϚον͢ΔͷੵۃతʹऔΓΉ• ػೳϦϦʔεޙʹऔΓԼ͛Δ͜ͱ͋Δ‣ AppleWatch զʑ͕αʔϏε֦େ૾Λ͏·͘ඳ͚ͳ͔ͬͨ‣ த్ͳରԠঢ়گͰͯ͠ϢʔβɾαʔϏεఏڙଆํʹෆརӹͱஅ• ϦϦʔε͠ͳͯ͘ϓϩτλΠϓΛ࡞͍ͬͯͨɺͱ͍͏͜ͱ‣ tvOS ͷΞϓϦΛࢼ͠ʹ࡞ͬͨ
৽ػೳಋೖͷஅج४• ։ൃޮύϑΥʔϚϯεɺηΩϡϦςΟ্͕͢ΔͳΒɺ࠾༻• ໌Β͔ʹΒͳ͍ͱߦ͖٧·ΔͷΔ͔͠ͳ͍‣ Swift Xcode ͳͲͷ։ൃπʔϧͷߋ৽‣ ৽APIͷͨΊʹ࠷৽ͷ SDK Λ͏ඞཁ͕͋Δ͜ͱ → Α΄Ͳͷཧ༝͕ͳ͔ͬͨΒ࠷৽Λ͏
·ͱΊ• ఏڙαʔϏεΞϓϦʹΑΔͱࢥ͏͕ɺϢʔβ͕ศརʹͳΔ৽ػೳੵۃతʹ࠾༻͍͖͍ͯͨ͠• όʔδϣϯΞοϓʹΑΔมߋͷใऩू͔ͬ͠ΓΖ͏ɺ৭ʑͳ໘͔ΒӨڹ͕ͳ͍͔୳Δ• ҆ఆͨ͠ϦϦʔεαΠΫϧΛճͨ͢Ίɺ։ൃڥʹؔΘΔมߋʹૉૣ͘ै͢Δ͠• ߹ʹΑͬͯόάϨϙʔτΛग़ͨ͠ΓϑΥʔϥϜͰฉ͍ͯΈΔͷ͕Α͍