Upgrade to PRO for Only $50/Year—Limited-Time Offer! 🔥

ダークモード対応で注意すべきこと

 ダークモード対応で注意すべきこと

#potatotips #65

バグの再現リポジトリ
https://github.com/tattn/WeirdDarkMode-iOS12

Qiitaにこの発表をテキスト化したものを投稿しました
https://qiita.com/tattn/items/c56b15ed8d1cea26a955

VRの体を手に入れました
https://twitter.com/tanakasan2525/status/1177736175894908928

Tatsuya Tanaka

October 01, 2019
Tweet

More Decks by Tatsuya Tanaka

Other Decks in Programming

Transcript

  1. ాத ୡ໵ / ͨͳͨͭ (@tattn) • Yahoo!৐׵Ҋ಺ • iOSΞϓϦΤϯδχΞ @tattn

    @tanakasan2525 @tattn Copyright (C) 2019 Yahoo Japan Corporation. All Rights Reserved.
  2. Xcode 11 GM1ͰΧϥʔΞηοτ͕࢖͑ͳ͔ͬͨ (iOS 11) Xcode 11 GM1ͰϏϧυͨ͠ΞϓϦΛiOS 11Ͱಈ͔͢ͱ
 UIColor(named:_)

    ͕ৗʹnilΛฦ͢໰୊ʹ೰·͞Ε·ͨ͠ iOS 13ϦϦʔε೔ͷ3೔લ·Ͱ͜ͷঢ়گͰ
 ͔ͳΓযΓ·ͨ͠ (ॳ೔ϦϦʔεΛ໨ࢦ͍ͯͨͨ͠Ί) Xcode 11 GM2Ͱແࣄ௚Γ·ͨ͠…
  3. iOS 12ҎԼͰμʔΫϞʔυͷ৭͕දࣔ͞ΕΔ ৭ʑݕূ͍ͯ͘͠தͰҎԼͷ໰୊͕෼͔Γ·ͨ͠ • MacΛμʔΫϞʔυʹ͍ͯ͠Δͱɺxib/StoryboardʹຒΊࠐ·ΕΔ
 ΧελϜ৭ͷRGB͕μʔΫϞʔυͷ৭ʹͳΔ • iOS 13Ͱ͸֎؍Ϟʔυʹ߹Θͤͨਖ਼͍͠৭͕දࣔ͞ΕΔ͕ɺ
 iOS

    12ҎԼͰ͸ຒΊࠐ·Εͨ৭͕දࣔ͞Εͯ͠·͏έʔε͕͋Δ • xib/StoryboardʹΧελϜ৭Λઃఆͨ͠ޙɺ
 Asset CatalogͰͦͷ৭Λฤूͯ͠΋Viewଆͷ৭͕มΘΒͳ͍ (iOS 12ҎԼͷΈ) ※Asset CatalogͰ࡞੒ͨ͠৭ͷ͜ͱΛ͜͜Ͱ͸ΧελϜ৭ͱݺͿ͜ͱʹ͠·͢
  4. MacΛμʔΫϞʔυʹ͍ͯ͠Δͱɺxib/StoryboardʹຒΊࠐ·ΕΔ
 ΧελϜ৭ͷRGB͕μʔΫϞʔυͷ৭ʹͳΔ Mac͕ϥΠτϞʔυͷ࣌ <resources> <namedColor name="DynamicColor"> <color red="0.0" green="0.0" blue="1"

    alpha="1" colorSpace="custom" customColorSpace="sRGB"/> </namedColor> </resources> <resources> <namedColor name="DynamicColor"> <color red="1" green="0.0" blue="0.0" alpha="1" colorSpace="custom" customColorSpace="sRGB"/> </namedColor> </resources> Mac͕μʔΫϞʔυͷ࣌
  5. MacΛμʔΫϞʔυʹ͍ͯ͠Δͱɺxib/StoryboardʹຒΊࠐ·ΕΔ
 ΧελϜ৭ͷRGB͕μʔΫϞʔυͷ৭ʹͳΔ class View: UIView { @IBInspectable var ibBackgroundColor: UIColor

    = .white { didSet { backgroundColor = ibBackgroundColor } } } ←͜ͷΑ͏ͳViewΛ༻ҙ BackgroundͰ৭Λઃఆ IBInspectableͰ৭Λઃఆ MacΛμʔΫϞʔυ
 ʹ͍ͯ͠·͢
  6. iOS 12ҎԼͰμʔΫϞʔυͷ৭͕දࣔ͞ΕΔ શͯͷύλʔϯ͸೺ѲͰ͖͍ͯ·ͤΜ͕
 IBInspectable (User Defined Runtime Attributes) Ͱ
 ઃఆͨ͠৭͸͜ͷݱ৅͕ى͖΍͍͢Ͱ͢

    ͦΕҎ֎ͷͱ͖΋ൃੜ͢Δ͜ͱ͕͋ͬͨͨΊɺ
 μʔΫϞʔυରԠ͸MacΛϥΠτϞʔυʹͯ͠
 ࡞ۀ͢ΔͷΛ͓͢͢Ί͠·͢
  7. ·ͱΊ • ࣗ෼͕ѱ͍ͷ͔ͦΕͱ΋…໰୊ʹ೰·͞Ε·ͨ͠ • μʔΫϞʔυରԠ࣌ʹiOS 12ҎԼ΋αϙʔτ͢Δ৔߹͸
 ͦΕΒͷಈ࡞֬ೝΛ๨Εͣʹ • όάϨϙʔτΛ6ͭૹΓ·ͨ͠ (࠶ݱੑ͕ߴ͍΋ͷͷΈ)


    ɾiOS 13΍Xcode 11ʹ͸·ͩ·ͩ՝୊͕͋ΔͷͰ
 ɹͨ͘͞ΜϑΟʔυόοΫ͍͖ͯ͠·͠ΐ͏ • ibtoolͰ৭ΛҰׅߋ৽Ͱ͖ͦ͏ͳؾ΋͠·͢ (Ͱ͖ͨํ͍ͨΒڭ͑ͯ΄͍͠Ͱ͢)