WWDC 2019 ํค๋ ธํธ๋ฅผ ํ์ธํด๋ณด๋ฉฐ ์์ง ์ ๋ณด๋ฅผ ์์ ๋ฝ์๋ณด์.
Dark Mode
iOS 13๋ถํฐ ์ง์๋๋ ๊ธฐ๋ฅ์ด๋ค. ๋ง ๊ทธ๋๋ก dark mode์ด๋ค.
ํด๋น ๊ธฐ๋ฅ์ ๋ง๋ค๋ฉด์ ๊ณ ๋ฏผํ๋ ๊ฒ์ ์ญ์ Mode์ ๋ฐ๋ผ ๋ณํํ๋ ์์์ด์๋ค. ๊ฐ์ ํ๋ฉด์ด๋ผ๋ ๋ชจ๋์ ๋ฐ๋ผ ๊ฐ์์ฑ์ ์ํด ์์ด ๋ณํํด์ผ ํ๋ค. ๊ธฐ์กด์๋ RGB๊ฐ์ผ๋ก ํ๋์ฝ๋ฉ ๋์ด ์๋ ๊ฒ์, Semantic Color๋ฅผ ๋์ ํ์ฌ ํด๊ฒฐํ๋ค.
semantic color๋ ๋ง ๊ทธ๋๋ก ์๋ฏธ๋ก ์ ์ธ ์์์ด๋ค. label์ด๋ผ๋ ์์์ด ์๋ค๊ณ ๊ฐ์ ํ์ ๋, ์ด ์์์ mode์ ๋ฐ๋ผ ํํํด์ผ ํ๋ ์์์ผ๋ก ๋ณ๊ฒฝ๋๋ค. ์ด๋ฐ์์ผ๋ก prefix๋ก system์ด๋ผ๊ณ ๋ถ์ ๊ฒฝ์ฐ๊ฐ apple์์ ๋ง๋ค์ด๋ semantic color์ด๋ค. mode์ ๋ฐ๋ผ ๊ธฐ๋ณธ์ ์ผ๋ก ๋ง๋ค์ด๋ ์์์ผ๋ก ๋ณ๊ฒฝ๋๋ค.
Apple์ ์ด๋ฌํ semantic color๋ฅผ ์ฌ๋ฟ ๊ตฌ๋นํด๋์๋ค. label์ ๊ฒฝ์ฐ ์ค์๋์ ๋ฐ๋ผ ์ด 4๊ฐ์ง ์์์ ์ ํํ์ฌ ์ฌ์ฉํ ์ ์๋ค. system background์ ๊ฒฝ์ฐ๋ ๋ง์ฐฌ๊ฐ์ง๋ค. ์์ธํ ๋ด์ฉ์ Dark Mode๋ฅผ ํ์ธํ์.
์ด๋ฌํ darkmode ๋์์ Tab Bar, Button ๋ฑ ๋ค์ํ UIKiut ์์์ ์ด๋ฏธ ๋ฐ์๋์ด ์๋ค. Customizingํ๊ณ ์ถ๋ค๋ฉด ์ญ์ ์ด์ ๋ํ ๋ฐฉ๋ฒ ์ญ์ ์ด์ด๋์๋ค.
Dynamic Colors
์์์ ์๊ธฐํ semantic color๋ ๊ฒฐ๊ตญ ํ๋์ ๋จ์ด์ ๋๊ฐ์ง ์์์ ๋ด๊ณ ์๋ค. ์ด๋ ๊ฒ ํ๋์ ์์์ด๋ผ๋ ์๋ฏธ๋ก ์ ์ด๋ฆ์ ๋๊ฐ์ ์์ ๋ด๋ ๊ฒ์ apple์์๋ Dynamic Colors๋ผ ์๊ฐํ๊ณ ์๋ค.
Elevated Level
๊ฐ์ semantic color๋ฅผ ๊ฐ์ง์๋ ๋ถ๊ตฌํ๊ณ , ์ค์ ๋ก ๋ณด์์ ๋ ๋ค๋ฅธ ์์์ ๋ํ๋ผ ์๋ ์๋ค. ์๋ฅผ ๋ค์ด modal์ด ์ฌ๋ผ์จ ๊ฒฝ์ฐ, ์ฌ๋ผ์จ modal์ ๋ฐฐ๊ฒฝ๊ณผ ๋ค VC์ ๋ฐฐ๊ฒฝ์์ด ๊ฐ๋๋ผ๋ ๋ค๋ฅด๊ฒ ํํ๋๋ ๊ฒ์ด ๊ทธ ์์ด๋ค.
์ด๋ ๊ฒ ๋ค๋ฅด๊ฒ ํ๋ฉด์ด ๋ณด์ผ ๋, ํ์ VC๋ฅผ base level์ด๋ผ ๋ถ๋ฅด๊ณ , ์ฌ๋ผ์จ VC๋ฅผ elevated level์ด๋ผ ๋ถ๋ฅธ๋ค. ๋ฐ๋ฅ์ ์๋ ๊ฒฝ์ฐ๋ base์ด๋ค. ์ด๋ป๊ฒ ์ด๋ฌํ ๊ฒ๋ค์ device๋ฅผ ์๊ณ ์์ ๋ณ๊ฒฝํ ์ ์์๊น? ํด๋น ์๋ฌธ ์ฌํญ์ ์ดํ ๊ธ์ธ UITraitCollection์์ ์์๋ณด์.
In Xcode
Storyboard์์๋ ๋ฐ๋ก ์์์ ํ์ธํ ์ ์๋ค.
์คํ ์ค์๋ ํด๋น ๋ฒํผ์ ๋๋ฅด๊ณ ๋ฐ๋ก๋ฐ๋ก dark mode๋ฅผ ๋ณํ๊ฒ ํ ์ ์๋ค.
image์ asset์ ๋ํด appearance์ Any, Dark
๋ฅผ ์ ํํ๋ฉด, dark mode์ผ ๋ option์ด ์๋ก ๋ฌ๋ค. ์ฌ๊ธฐ์ ์ํ๋ asset์ ์ถ๊ฐ์ ์ผ๋ก ๋ฃ์ด์ฃผ๋ฉด dynamic color๋ก ์ฌ์ฉ์ด ๊ฐ๋ฅํ๋ค.
์ฌ๊ธฐ์ ๊ถ๊ธ์ฆ์ด ์๊ฒผ๋๋ฐ, ์ Any, light, dark
๋ ์ ์๋๋ ํ๋ ๋ถ๋ถ์ด์๋ค. Providing Images for Different Appearances ํด๋น ๊ธ์ ๋ณด๋ ์ด์ ๋ฅผ ์ ์ ์์๋ค.
Light and dark appearances. Provide images for both light and dark appearances. Use the Any Appearance slots to support older versions of macOS or iOS.
์ฆ, older version ํ์ ํธํ์ฑ์ ์ํด ๋ง๋ค์ด๋ ๊ฒ์ด Any์ด๋ค. ๋ง์ฝ, older version์๋ Any appearance๋ก ๋ง์ถ๊ณ , iOS 13์ด์ ๋ฒ์ ๊ธฐ๊ธฐ์ ๋ํด์๋ light, dark๋ฅผ ๋ฐ๋ก ์ ์ฉํ๊ณ ์ถ๋ค๋ฉด ํด๋น ์ต์
์ ์ฌ์ฉํ๋ฉด ๋๋ค. ์ง๊ธ์, older version์ ํ๋ฉด๊ณผ iOS 13๋ฒ์ ์ด์ light mode์ ํ๋ฉด์ ๋๊ฐ์ด ๋ง์ถ ์๋์ด๋ฏ๋ก Any, dark
์ต์
์ ์ ํํ๋ค.
iOS 13์ดํ ๋ณ๊ฒฝ ์ฌํญ
Status Bar
UIActivityIndicatorView
Drawing Attributed Text
Reference
- Implementing Dark Mode on iOS
- Dark Mode
- Adopting iOS Dark Mode
- What is the difference between โany, light, darkโ appearances in Xcode assets
- Providing Images for Different Appearances
- https://hcn1519.github.io/articles/2020-03/ios_darkmode
- https://developer.apple.com/videos/play/wwdc2019/214/
- https://eunjin3786.tistory.com/301