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
wwdc19
Search
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
Shigure Shimotori
June 25, 2019
Programming
430
2
Share
wwdc19
https://line.connpass.com/event/134346/
#LINE_DM
Shigure Shimotori
June 25, 2019
More Decks by Shigure Shimotori
See All by Shigure Shimotori
AsyncSequenceとAsyncStreamのプロポーザルを全部読む!!
s_shimotori
1
450
アメ車でサンノゼを走ってきたよ!
s_shimotori
0
350
おっと、お飲みごろの時間です!
s_shimotori
1
150
Synchronizationを支える技術
s_shimotori
1
290
1人で挑むSwiftコンパイラ 〜型システム入門編〜
s_shimotori
0
1.3k
英語
s_shimotori
1
1.1k
Parallel Socket Communication in Swift
s_shimotori
1
960
UIColor Anatomy
s_shimotori
1
2.9k
UIColor Cluster
s_shimotori
1
840
Other Decks in Programming
See All in Programming
VueエンジニアがReactを触って感じた_設計の違い
koukimiura
0
170
Liberating Ruby's Parser from Lexer Hacks
ydah
2
870
Going Multiplatform with Your Android App (Android Makers 2026)
zsmb
2
420
Reactive ❤️ Loom: A Forbidden Love Story
franz1981
2
240
PHP で mp3 プレイヤーを実装しよう
m3m0r7
PRO
0
270
セグメントとターゲットを意識するプロポーザルの書き方 〜採択の鍵は、誰に刺すかを見極めるマーケティング戦略にある〜
m3m0r7
PRO
0
530
Alternatives to JPA 2026
debop
0
110
感情を設計する
ichimichi
5
1.5k
10 Tips of AWS ~Gen AI on AWS~
licux
5
390
iOS機能開発のAI環境と起きた変化
ryunakayama
0
180
夢の無限スパゲッティ製造機 -実装篇- #phpstudy
o0h
PRO
0
210
AWS re:Invent 2025の少し振り返り + DevOps AgentとBacklogを連携させてみた
satoshi256kbyte
3
160
Featured
See All Featured
Lightning talk: Run Django tests with GitHub Actions
sabderemane
0
170
Primal Persuasion: How to Engage the Brain for Learning That Lasts
tmiket
0
320
Stewardship and Sustainability of Urban and Community Forests
pwiseman
0
180
Gemini Prompt Engineering: Practical Techniques for Tangible AI Outcomes
mfonobong
2
370
Measuring Dark Social's Impact On Conversion and Attribution
stephenakadiri
1
190
A better future with KSS
kneath
240
18k
Become a Pro
speakerdeck
PRO
31
5.9k
Game over? The fight for quality and originality in the time of robots
wayneb77
1
160
Large-scale JavaScript Application Architecture
addyosmani
515
110k
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
49
3.4k
A Tale of Four Properties
chriscoyier
163
24k
Claude Code のすすめ
schroneko
67
220k
Transcript
͡ΊͯͷWWDC WWDC19 Recap at LINE
͡ΊͯͷWWDC @S_Shimotori_pub ▸ LINE.appͷUI·ΘΓ ▸ iOSDCωοτϫʔΫελοϑ ▸ DroidKaigiӡӦελοϑ ▸ WWDCॳࢀՃ
͡ΊͯͷWWDC ࠓ͢͜ͱ ▸ ࢀՃऀઍਓͱ ▸ ϥϘͰฉ͍͖ͯͨ͜ͱ ▸ ΞΫηγϏϦςΟͲ͏ͨ͠Β͍͍ͷ ▸ λΠจࣈ;ͨͨͼ
▸ μʔΫϞʔυରԠɺ։ນ
ࢀՃऀઍਓͱ
ࢀՃऀઍਓͱ WWDCʹॳࢀՃͯ͠Θ͔ͬͨ͜ͱ ▸ ᷚ௨Γͷςϯγϣϯͷߴ͞ ▸ ظઓʹ༏͍͠ՌͱOdwalla ▸ /16ͰIPΞυϨεେ൫ৼΔ͍ ▸ ަ௨खஈ͕ͱͯͭΒ͍
▸ ಥવͷ৽ཁૉൃදͰ্खʹϥϘΛ׆༻Ͱ͖ͳ͍ ▸ ϚΠϊϦςΟͷਓΛݟ͔͚Δ͜ͱ͕Ͱ͖Δ
ࢀՃऀઍਓͱ WWDCʹॳࢀՃͯ͠Θ͔ͬͨ͜ͱ ▸ ᷚ௨Γͷςϯγϣϯͷߴ͞ ▸ ظઓʹ༏͍͠ՌͱOdwalla ▸ /16ͰIPΞυϨεେ൫ৼΔ͍ ▸ ަ௨खஈ͕ͱͯͭΒ͍
▸ ಥવͷ৽ཁૉൃදͰ্खʹϥϘΛ׆༻Ͱ͖ͳ͍ ▸ ϚΠϊϦςΟͷਓΛݟ͔͚Δ͜ͱ͕Ͱ͖Δ
ࢀՃऀઍਓͱ ϚΠϊϦςΟͷਓΛݟ͔͚Δ͜ͱ͕Ͱ͖Δ ▸ ൺͰߟ͑Δͱଟ͍ͱݴ͑ͳ͍ ▸ ࢀՃऀ͕ઍਓ͍ΔͷͰਓࣗମଟ͘ײ͡ΒΕΔ ▸ Ҋ൘࠵͠Ͱଘࡏʹؾ͔ͮ͞ΕΔ
None
None
ϥϘͰ ฉ͍͖ͯͨ͜ͱ
ϥϘͰฉ͍͖ͯͨ͜ͱ Ͳ͜ͷϥϘʁ ▸ ΞΫηγϏϦςΟͲ͏ͨ͠Β͍͍ͷ ˠAccessibility Design Lab ▸ λΠจࣈ;ͨͨͼ ˠText
Lab ▸ μʔΫϞʔυରԠɺ։ນ ˠUIKit Lab
ΞΫηγϏϦςΟ Ͳ͏ͨ͠Β͍͍ͷ
None
ΞΫηγϏϦςΟͲ͏ͨ͠Β͍͍ͷ ରԠ࣮ʹࠔΔྫ ▸ ʮ14:30ʯͷຊޠಡΈ্͕͓͔͍͛͠ ▸ ಠࣗʹʮ͡Ύ͏Α͡͞Μͬ͡Μʯͱಡ·͍͍ͤͯʁ ▸ ߴޱ࠲൪߸ͳͲͷݸਓใ ▸ ಡΈ্͍͍͛ͤͯ͞ͷʁ
ΞΫηγϏϦςΟͲ͏ͨ͠Β͍͍ͷ ΞΫηγϏϦςΟରԠͰࠔͬͨΒ ▸ Appleͷ࡞ͬͨΞϓϦͷ࣮ʹ฿͏ ▸ উखʹ͞ͳ͍Ͱόάใࠂ͚ͩ͢Δͱ͔ ▸ Apple PayͷΫϨΧಡΈ্͛Λਅࣅ͢Δͱ͔
λΠจࣈ ;ͨͨͼ
▸ λΠจࣈॎʹ͍ͷͰ༉அ͢ΔͱΈग़ͪΌ͏ʂ λΠจࣈ;ͨͨͼ λΠจࣈͱ ຊ Japan ประเทศญี่ปุ่น
λΠจࣈ;ͨͨͼ λΠจࣈͷߴ͞ΛΓ͍ͨʂ ▸ UIKitͷྗͰจࣈͷ࣮αΠζΛऔಘ͢Δ͜ͱ͕Ͱ͖ͳ͍
λΠจࣈ;ͨͨͼ จࣈͷେ͖͞ʢਅʣΛௐΔ ▸ Core TextΛ͑ਖ਼֬ͳେ͖͕͞Θ͔Δ let word = "ประเทศญี่ปุ่น" let
attributedString = NSAttributedString(string: word) let line = CTLineCreateWithAttributedString(attributedString) let rect = CTLineGetBoundsWithOptions(line, .useGlyphPathBounds)
λΠจࣈ;ͨͨͼ λΠจࣈ;ͨͨͼ - vs Swift UI Text ▸ clip͞Εͨɺͩͱ……ʁʁ
μʔΫϞʔυରԠɺ։ນ
μʔΫϞʔυରԠɺ։ນ ҰൠతͳʁμʔΫϞʔυରԠ ▸ Assetʹొ͢ΕࣗಈͰ͍͚ͯ͘ΕΔΑ ▸ System colorSemantic colorͰҰൃରԠͩΑ
None
μʔΫϞʔυରԠɺ։ນ LINE.appͷμʔΫϞʔυରԠ ▸ Assetʹొ͢ΕࣗಈͰ͍͚ͯ͘ΕΔΑ →ొ͠·ͤΜͰ͖·ͤΜ ▸ System colorSemantic colorͰҰൃରԠͩΑ →͍·ͤΜͰ͖·ͤΜ
μʔΫϞʔυରԠɺ։ນ AssetΛΘͣʹdynamicͳͷΛͭ͘Δ ▸ Dynamic color ▸ UIColor.init(dynamicProvider:) ▸ Dynamic image
▸ ͋Εʁઆ໌͞Ε͚ͯͨͬʁ
μʔΫϞʔυରԠɺ։ນ dynamic imageͷͭ͘Γ͔ͨ ▸ UIImageAssetΛ࡞Ε͍͚Δʂ let imageAsset = UIImageAsset() imageAsset.register(lightImage,
with: lightTraitCollection) imageAsset.register(darkImage, with: darkTraitCollection) let image = imageAsset.image(with: UITraitCollection.current)
·ͱΊʁ
·ͱΊʂ WWDC͜Μͳͱ͜Ζ ▸ ੈքதͷ։ൃऀͱձ͑Δ ▸ ࣗͷ࣮ྗ͕ϥϘͷ׆༻۩߹ʹग़ͪΌ͏ ▸ ظ͕͍ؒͷͰؤுΓ·͠ΐ͏