Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
クックパッドのiOS更新との付き合い方 / CAMPFIRE iOS #2
Search
Tomohiro Moro
June 13, 2017
Programming
0
1.7k
クックパッドのiOS更新との付き合い方 / CAMPFIRE iOS #2
CAMPFIRE iOS #2 で発表した時の資料です。
iOSの更新がきたときにクックパッドではどういう事を考えてどう対応しているか話しました。
Tomohiro Moro
June 13, 2017
Tweet
Share
More Decks by Tomohiro Moro
See All by Tomohiro Moro
法改正を乗り越えるiOSアプリのリリース戦略
slightair
0
4.3k
たのしいクックパッドでのモバイルアプリエンジニア生活 / newgrads_event2020
slightair
0
680
CI/CD for mobile apps at Cookpad / Bitrise & Cookpad Developer Meetup
slightair
2
3.4k
コンセプトは「機械に人間が合わせる」クックパッドが実践する新しいリリースフローとは / @IT seminar 2018 12 14
slightair
0
610
動作確認のための社内アプリ配信サービスを新たに作った話 / iOSDC 2018
slightair
2
4k
RxSwift + API request + MVVM
slightair
9
2.7k
よくわかんないけど最近つくってるゲームで RxJava つかってみてる
slightair
3
2.1k
ゲームのプレイ動画を気軽にシェアしてもらう
slightair
3
3k
Other Decks in Programming
See All in Programming
テスターからテストエンジニアへ ~新米テストエンジニアが歩んだ9ヶ月振り返り~
non0113
2
230
状態遷移図を書こう / Sequence Chart vs State Diagram
orgachem
PRO
2
210
レベル1の開発生産性向上に取り組む − 日々の作業の効率化・自動化を通じた改善活動
kesoji
1
310
スタートアップの急成長を支えるプラットフォームエンジニアリングと組織戦略
sutochin26
1
7.4k
チームのテスト力を総合的に鍛えて品質、スピード、レジリエンスを共立させる/Testing approach that improves quality, speed, and resilience
goyoki
5
1.2k
テスト駆動Kaggle
isax1015
1
760
Claude Code派?Gemini CLI派? みんなで比較LT会!_20250716
junholee
1
610
AI時代のソフトウェア開発を考える(2025/07版) / Agentic Software Engineering Findy 2025-07 Edition
twada
PRO
99
37k
「次に何を学べばいいか分からない」あなたへ──若手エンジニアのための学習地図
panda_program
3
520
構文解析器入門
ydah
5
1.4k
PHPUnitの限界をPlaywrightで補完するテストアプローチ
yuzneri
0
190
Goで作る、開発・CI環境
sin392
0
270
Featured
See All Featured
Building Flexible Design Systems
yeseniaperezcruz
328
39k
KATA
mclloyd
30
14k
XXLCSS - How to scale CSS and keep your sanity
sugarenia
248
1.3M
Why Our Code Smells
bkeepers
PRO
337
57k
Building a Scalable Design System with Sketch
lauravandoore
462
33k
How GitHub (no longer) Works
holman
314
140k
Making Projects Easy
brettharned
116
6.3k
Building Better People: How to give real-time feedback that sticks.
wjessup
367
19k
Docker and Python
trallard
45
3.5k
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
138
34k
Testing 201, or: Great Expectations
jmmastey
43
7.6k
Optimising Largest Contentful Paint
csswizardry
37
3.3k
Transcript
ΫοΫύουͷ iOSߋ৽ͱͷ͖߹͍ํ 2017/06/12 CAMPFIRE iOS #2 ΫοΫύουגࣜձࣾ ໜ࿊ ஐେ
ࣗݾհ • ໜ࿊ ஐେ - @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 Λ͏ඞཁ͕͋Δ͜ͱ → Α΄Ͳͷཧ༝͕ͳ͔ͬͨΒ࠷৽Λ͏
·ͱΊ • ఏڙαʔϏεΞϓϦʹΑΔͱࢥ͏͕ɺϢʔβ͕ศརʹ ͳΔ৽ػೳੵۃతʹ࠾༻͍͖͍ͯͨ͠ • όʔδϣϯΞοϓʹΑΔมߋͷใऩू͔ͬ͠ΓΖ͏ɺ ৭ʑͳ໘͔ΒӨڹ͕ͳ͍͔୳Δ • ҆ఆͨ͠ϦϦʔεαΠΫϧΛճͨ͢Ίɺ։ൃڥʹؔΘΔมߋ ʹૉૣ͘ै͢Δ͠
• ߹ʹΑͬͯόάϨϙʔτΛग़ͨ͠ΓϑΥʔϥϜͰฉ͍ͯΈΔ ͷ͕Α͍