Upgrade to PRO for Only $50/Year—Limited-Time Offer! 🔥
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.8k
クックパッドの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.5k
たのしいクックパッドでのモバイルアプリエンジニア生活 / newgrads_event2020
slightair
0
700
CI/CD for mobile apps at Cookpad / Bitrise & Cookpad Developer Meetup
slightair
2
3.4k
コンセプトは「機械に人間が合わせる」クックパッドが実践する新しいリリースフローとは / @IT seminar 2018 12 14
slightair
0
630
動作確認のための社内アプリ配信サービスを新たに作った話 / iOSDC 2018
slightair
2
4.1k
RxSwift + API request + MVVM
slightair
9
2.7k
よくわかんないけど最近つくってるゲームで RxJava つかってみてる
slightair
3
2.2k
ゲームのプレイ動画を気軽にシェアしてもらう
slightair
3
3k
Other Decks in Programming
See All in Programming
リリース時」テストから「デイリー実行」へ!開発マネージャが取り組んだ、レガシー自動テストのモダン化戦略
goataka
0
140
ZJIT: The Ruby 4 JIT Compiler / Ruby Release 30th Anniversary Party
k0kubun
1
280
Deno Tunnel を使ってみた話
kamekyame
0
250
Patterns of Patterns
denyspoltorak
0
360
Denoのセキュリティに関する仕組みの紹介 (toranoana.deno #23)
uki00a
0
170
Kotlin Multiplatform Meetup - Compose Multiplatform 외부 의존성 아키텍처 설계부터 운영까지
wisemuji
0
130
AtCoder Conference 2025
shindannin
0
660
マスタデータ問題、マイクロサービスでどう解くか
kts
0
130
Navigation 3: 적응형 UI를 위한 앱 탐색
fornewid
1
470
Findy AI+の開発、運用におけるMCP活用事例
starfish719
0
1.8k
【卒業研究】会話ログ分析によるユーザーごとの関心に応じた話題提案手法
momok47
0
130
TestingOsaka6_Ozono
o3
0
180
Featured
See All Featured
Imperfection Machines: The Place of Print at Facebook
scottboms
269
13k
Bash Introduction
62gerente
615
210k
Bridging the Design Gap: How Collaborative Modelling removes blockers to flow between stakeholders and teams @FastFlow conf
baasie
0
410
How to audit for AI Accessibility on your Front & Back End
davetheseo
0
130
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
49
3.2k
Evolving SEO for Evolving Search Engines
ryanjones
0
77
Mozcon NYC 2025: Stop Losing SEO Traffic
samtorres
0
96
Java REST API Framework Comparison - PWX 2021
mraible
34
9k
What Being in a Rock Band Can Teach Us About Real World SEO
427marketing
0
150
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
122
21k
Highjacked: Video Game Concept Design
rkendrick25
PRO
0
250
KATA
mclloyd
PRO
33
15k
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 Λ͏ඞཁ͕͋Δ͜ͱ → Α΄Ͳͷཧ༝͕ͳ͔ͬͨΒ࠷৽Λ͏
·ͱΊ • ఏڙαʔϏεΞϓϦʹΑΔͱࢥ͏͕ɺϢʔβ͕ศརʹ ͳΔ৽ػೳੵۃతʹ࠾༻͍͖͍ͯͨ͠ • όʔδϣϯΞοϓʹΑΔมߋͷใऩू͔ͬ͠ΓΖ͏ɺ ৭ʑͳ໘͔ΒӨڹ͕ͳ͍͔୳Δ • ҆ఆͨ͠ϦϦʔεαΠΫϧΛճͨ͢Ίɺ։ൃڥʹؔΘΔมߋ ʹૉૣ͘ै͢Δ͠
• ߹ʹΑͬͯόάϨϙʔτΛग़ͨ͠ΓϑΥʔϥϜͰฉ͍ͯΈΔ ͷ͕Α͍