๐ํ๋ก์ ํธ ์ด๋ฆ: ๋ฆฌ๋ชจ๋ฆฌ๋ชจ
๐ํ๋ก์ ํธ ์งํ ๊ธฐ๊ฐ: 2024.05.28 - 2024.07.04.
๐๊ฐ๋ฐ ์์ง ๋ฐ ์ธ์ด: Xcode, Swift
๐https://github.com/marimorimo/RimoRimo
๐ย ๋ฆฌ๋ชจ๋ฆฌ๋ชจ๋ ๋ง๋ฆฌ๋ชจ์ ํจ๊ป ์ฑ์ฅํ๋ฉฐ ์ง์ค๋ ฅ์ ๊ธฐ๋ฅผ ์ ์๋ ์ง์ค ๋์ฐ๋ฏธ ์ฑ์ ๋๋ค. ๋ชฉํ ์ง์ค ์๊ฐ์ ์ค์ ํ๊ณ , ๋ชฉํ ๋ฌ์ฑ์ ๊ฐ๊น์์ง ์๋ก ๋ง๋ฆฌ๋ชจ๊ฐ ์ฑ์ฅํด์! ์ง์คํ ์๋ก ์ฑ์ฅํ๋ ๋์ ๋ง๋ฆฌ๋ชจ, ํจ๊ป ๋ชฉํ๋ฅผ ์ด๋ฃจ์ด ๋ด์.
๐ย ์ง์ค ๋ชจ๋ ์์ํ๊ธฐ/์ค๋จํ๊ธฐ ๋ฒํผ์ ๋๋ฌ ์คํฑ์์น๋ฅผ ์คํํ๊ณ ๋ฉ์ถ ์ ์์ด์.
๐ ์ค์ ํ ๋ชฉํ ์๊ฐ ๋ฌ์ฑ๋ฅ ์ ๋ฐ๋ผ ๋ง๋ฆฌ๋ชจ๊ฐ ๋จ๊ณ ๋ณ๋ก ์ฑ์ฅํด์. 5๋จ๊ณ์์๋ ํ๋กํ์์ ์ค์ ํ ๋ง๋ฆฌ๋ชจ๊ฐ ๋ํ๋์.
๐ย ๋ ๋ง๋ค ์ฑ์ฅํ ๋ง๋ฆฌ๋ชจ์ ๋ชจ์ต์ ์บ๋ฆฐ๋์์ ํ์ธํ ์ ์์ด์.
๐ย ์บ๋ฆฐ๋์์ ์ํ๋ ๋ ์ง๋ฅผ ์ ํํ๋ฉด ์ ํํ ๋ ์ง์ ์ง์ค ์๊ฐ, ๋ง๋ฆฌ๋ชจ ์ํ, ๋ฉ๋ชจ๋ฅผ ํ์ธํ ์ ์์ด์.
๐ย ์ค๋ ํด์ผ ํ ์ผ๋ค์ ๊ธฐ๋กํ๊ณ ์๋ฃ ์ฌ๋ถ๋ฅผ ํ์ํ ์ ์์ด์.
๐ย ์บ๋ฆฐ๋์์ ์ํ๋ ๋ ์ง๋ฅผ ์ ํํ๊ณ ํด๋น ๋ ์ง์ ํฌ๋๋ฆฌ์คํธ๋ฅผ ํ์ธํ ์ ์์ด์.
๐ค ๋ง์ดํ์ด์ง - ๋ด ์ ๋ณด, ๋ชฉํ ์๊ฐ๊ณผ D-Day, ์ง๋ 30์ผ ๊ฐ ๋ชจ์ ๋ง๋ฆฌ๋ชจ๋ฅผ ํ์ธํ ์ ์์ด์.
๐ย ๋ด ๋๋ค์๊ณผ ์ด๋ฉ์ผ(์์ด๋)๋ฅผ ํ์ธํ ์ ์์ด์.
๐ย ๋ชฉํ ์ง์ค ์๊ฐ๊ณผ D-Day ์ผ์ ๋ฐ ๋จ์ ์ผ์๋ฅผ ํ์ธํ ์ ์์ด์.
๐ย โ์ต๊ทผ ์ฑ์ฅํ ๋ง๋ฆฌ๋ชจ ๋ณด๊ธฐโ ๋ฒํผ์ ๋๋ฌ ์ง๋ 30์ผ ๊ฐ ๋ชจ์ ๋ง๋ฆฌ๋ชจ๋ค์ ํ๋ฉด์ ํฐ์นํ๋ฉฐ ์ ๋๋ฉ์ด์ ๊ณผ ํจ๊ป ํ์ธํ ์ ์์ด์.
โ๏ธ ํ๋กํ ์์ ํ์ด์ง -ย ํ๋กํ ์ด๋ฏธ์ง, ๋๋ค์, ๋ชฉํ ์ง์ค ์๊ฐ, D-Day ์ผ์ ์ ์ค์ ํ ์ ์์ด์.
๐ย ํ๋กํ์์ ์ค์ ํ ์ด๋ฏธ์ง๋ ๋ง์ดํ์ด์ง ๋ฐ ์คํฑ์์น ํ์ด์ง์์ ํ์ธํ ์ ์์ด์.
๐ย ๋๋ค์์ ์์ ํ ์ ์์ด์.
๐ย ๋ชฉํ ์ง์ค ์๊ฐ์ ์ค์ ํ ์ ์์ด์. ๋ชฉํ ์๊ฐ์ ๋ฌ์ฑํ๋ฉด ๋ฉ์ธ ํ์ด์ง์ ํ๋กํ ์ด๋ฏธ์ง๋ก ์ค์ ํ ๋ง๋ฆฌ๋ชจ๊ฐ ๋ํ๋์.
๐ย D-Day ์ผ์ ์ด๋ฆ๊ณผ ๋ ์ง๋ฅผ ์ ํํ ์ ์์ด์.
๐ย ๋ผ์ดํธ ๋ชจ๋์ ๋คํฌ ๋ชจ๋ ์ค์ ์ ๋ฐ๋ผ ์์์ด ๋ฌ๋ผ์ ธ์.
๐ย ์ผ์ ์ด ๋ค๊ฐ์ฌ์๋ก ํ๋ก๊ทธ๋ ์ค ๋ฐ๊ฐ ์ฑ์์ ธ์.
๐ย ์๋ฃํ ํ ์ผ ๋ชฉ๋ก์ ์์ ฏ์์ ์ฌ๋ผ์ ธ์.
๋ฒ์ | ๊ธฐ์ ์ด๋ฆ |
---|---|
์์กด์ฑ ๊ด๋ฆฌ ๋๊ตฌ | SPM |
ํ์ ๊ด๋ฆฌ ๋๊ตฌ | GitHub Git |
์ํคํ ์ฒ | MVC |
๋์์ธ ํจํด | Delegate Singletone |
์ธํฐํ์ด์ค | UIKit SwiftUI |
๋ ์ด์์ ๊ตฌ์ฑ | SnapKit Then |
์ ์ฅ์ | UserDefaults Firebase |
์ฝ๋ ์คํ์ผ | SwiftStyleGuide |
๐ก ์ํคํ ์ณ - MVC
๐ฌ MVC ์ ํ ์ด์ ?
๊ฐ๋จํ๊ณ ์ง๊ด์ ์ผ๋ก ๋ฐ์ดํฐ ํ๋ฆ์ ๊ตฌ๋ถํ ์ ์์ด ๋น ๋ฅธ ๊ฐ๋ฐ์ ์ ํฉํ๊ธฐ ๋๋ฌธ์ ์ ํํ๊ฒ ๋์์ต๋๋ค.
๐ย ์ ์ฉ
Model
View
Controller
๐ฅ ๋ฉ์ธ ํ์ด์ง
-
๋ฉ์ธ ํ์ด์ง
๋ฌธ์ ์ ํด๊ฒฐ ๋ฐฉ์ ๋ค๋ฅธ ํ์ด์ง ์ด๋ ํ ๋ง๋ฆฌ๋ชจ ์ ๋๋ฉ์ด์ ์ด ์คํ๋์ง ์๋ ๋ฌธ์ ์ด ๋ฌธ์ ๋ก ๊ตฌํ ์ด๊ธฐ๋ถํฐ ์ ๋ฅผ ๋จน์๋๋ฐ ํด๊ฒฐํ๊ณ ์ ์จ๊ฐ ์๋ช ์ฃผ๊ธฐ๋ฅผ ๋ค ์ฌ์ฉํด๋ณด๊ณ ํํฐ๋๋ ์ฐพ์๊ฐ ๋ณด๊ณ ํ์ง๋ง ํด๊ฒฐ๋์ง ์๊ณ ์์๋ค. ์ดํ, ๊ฐ์ด ๊ณต๋ถ๋ฅผ ํ๋ ๋ถ๊ป ์ด ๋ฌธ์ ์ ๋ํด ์กฐ์ธ์ ๊ตฌํ๋๋ฐ ์ ๋๋ฉ์ด์ ์ ๋ณ๋์ ํ์ผ๋ก ๋ถ๋ฆฌํด์ ์์์ ๊ณผ ๋์ ์ ๋ง์ถ์ด ๊ตฌํํด ๋ณด๋ผ๋ ์กฐ์ธ์ ๋ฃ๊ณ ์ด๋ฒ ํผ๋๋ฐฑ ์์ ์ ๋ฐ์ํด ๋ณด์๋ค. ์ฒ์์๋ UIView.animate๋ฅผ ์ฌ์ฉํด์ ๊ตฌํํ๋๋ฐ, UIView.animate์ UIView์ ์ ๋๋ฉ์ด์ API๋ก ์ ๋๋ฉ์ด์ ์ํ๋ฅผ ๊ด๋ฆฌ๊ฐ ์ ์ ํ์ง ์์ ๊ฒฝ์ฐ ์ค๊ฐ์ View๊ฐ ์ฌ๋ผ์ง๊ฑฐ๋, ์ํ๊ฐ ์ด๊ธฐํ๋์ง ์๋ ๋ฌธ์ ๊ฐ ๋ฐ์ํ ์ ์๋ค๋ ๋ฌธ์ ์ ์ด ์์๋ค. UIView.animate๋ฅผ CABasicAnimation์ผ๋ก ๋ณ๊ฒฝํ์ฌ ์ ๋๋ฉ์ด์ ์ ์ถ๊ฐํด ๋ดค๋ค. CABasicAnimation์ ๊ฒฝ์ฐ ๋ ๋ฆฝ์ ์ธ ์ ๋๋ฉ์ด์ ์ฒ๋ฆฌ๊ฐ ๊ฐ๋ฅํด์ ์ ๋๋ฉ์ด์ ์ด UIView์ ์ํ์ ๋ณ๊ฐ๋ก ์๋ํ๊ฒ ๋๊ณ , ํค๋ฅผ ์ฌ์ฉํด์ ์ ๋๋ฉ์ด์ ์ ์ถ๊ฐ/์ญ์ ํ ์ ์๋ค. ๊ทธ๋ ๊ธฐ ๋๋ฌธ์ ์ ๋๋ฉ์ด์ ์ํ๋ฅผ ๋ณด๋ค ๋ช ํํ๊ฒ ๊ด๋ฆฌ ํ ์ ์๊ฒ ๋์ด ๋ค๋ฅธ ํ์ด์ง๋ฅผ ์ด๋ํ๋ค ๋์์๋ ์ ๋๋ฉ์ด์ ์ด ๋ฉ์ถ์ง ์๊ฒ ๊ตฌํํ ์ ์์๋ค. Timer๋ฅผ ์์ํ๋ฉด Background์ ๋ฒ๋ธ ์ ๋๋ฉ์ด์ ์ด ๋ฌด์ํ ๋ง์์ง๋ ๋ฌธ์ ๋ฉ์ธ ํ์ด์ง๋ฅผ View์ Controller๋ก ๋ถ๋ฆฌํ๋ฉฐ ๊ตฌํํ๋ ๋์ค Timer๋ฅผ ์์ํ๋ฉด Background ์ ๋๋ฉ์ด์ ์ธ ๋ฒ๋ธ์ด ์์ฒญ๋๊ฒ ๋์ด๋๋ ๋ฌธ์ ๊ฐ ๋ฐ์ํ๋๋ฐ, viewDidLayoutSubviews๋ ViewController๊ฐ ๋ ์ด์์์ ๋ค ๊ทธ๋ฆฐ ํ์ ํธ์ถ๋๋๋ฐ ์ด๋ setupBubbleEmitter๋ฅผ ํธ์ถํ๊ฒ ๋๋ฉด ๊ทธ ์์ ์ View์ ๋ ์ด์์์ด ์์ ํ ์๋ฃ๋์ง ์๊ธฐ ๋๋ฌธ์ View์ ํฌ๊ธฐ๋ ์์น๋ฑ์ด ์ฌ๋ฐ๋ฅด๊ฒ ์ค์ ๋์ง ์์๋ ๊ฒ ๊ฐ๋ค. ๊ทธ๋์ View๋ฅผ layoutSubviews๋ฅผ ํตํด ๊ฐ๋ณ์ ์ผ๋ก MainViewController์ ํธ์ถํ๋ ์์ผ๋ก ๋ณ๊ฒฝํ๋ ๋ฌธ์ ๊ฐ ํด๊ฒฐ๋์๋ค. ์์ ์ด ๋๋ฉด ์คํ์ค์ธ ํ์ด๋จธ๊ฐ ๋ฆฌ์ ๋๋๋ก ํด์ผ ํ๋๋ฐ ๋ฐฑ๊ทธ๋ผ์ด๋์ ์์๋ ์ ์ฉ๋์ง ์๋ ๋ฌธ์ ์์ ์ ๊ธฐ์ค์ผ๋ก ํ์ด๋จธ๋ฅผ ์ค์ ํ๊ณ ๋งค์ผ ํ ๋ฒ์ฉ ๋ฆฌ์ ํ๋๋ก ํ๋ ๋ฐฉ์์ ์๋ํด๋ณด๊ณ ์ scheduleMidnightTimer ๋ฉ์๋๋ฅผ ์ฌ์ฉํด ์์ ์ ํ์ด๋จธ๋ฅผ ์ค์ ํ๊ณ , ์์ ์ดํ 86400์ด(24์๊ฐ)๋ง๋ค ํ์ด๋จธ๊ฐ ๋ฐ๋ณต ์คํ๋๋๋ก ํ์ฌ ๋ฆฌ์ ์์ ์ด ์คํ๋๋๋ก ํ๋ค. checkAndResetTimerIfNeeded ๋ฉ์๋๋ฅผ ํตํด ํ์ฌ ๋ ์ง์ ์ ์ฅ๋ ์์ ๋ ์ง๋ฅผ ๋น๊ตํ๊ณ , ๋ถ์ผ์น ์ ๋ฐ์ดํฐ๋ฅผ ๋ฆฌ์ ํ๊ณ UI๋ฅผ ์ ๋ฐ์ดํธํ๋๋ฐ, ์ด๋ฅผ ํตํด ๋ฐฑ๊ทธ๋ผ์ด๋ ์์ ์ ์ ํ์ ์ฐํํ๊ณ ํ์ด๋จธ๊ฐ ์ ํํ ์๊ฐ์ ์คํ๋๋๋ก ํ๋ค.
-
์บ๋ฆฐ๋ ํ์ด์ง
๋ฌธ์ ์ ํด๊ฒฐ ๋ฐฉ์ ๊ฐ ๋ ์ง์ ๋ง๋ ๋ง๋ฆฌ๋ชจ ์ด๋ฏธ์ง๊ฐ ์บ๋ฆฐ๋์ ๋ํ๋๊ฒ ๋์ด์๋๋ฐ 1- 4๋จ๊ณ๊น์ง๋ ๋ค ๊ฐ์ ๋ง๋ฆฌ๋ชจ ์ด๋ฏธ์ง์ง๋ง ์ต์ข ์ฑ์ฅ ๋ง๋ฆฌ๋ชจ๋ ํ๋กํ์์ ์ด๋ฏธ์ง ์ ํ์ด ๋์ด์๋ ๋ง๋ฆฌ๋ชจ ์ด๋ฏธ์ง๋ฅผ ๋ถ๋ฌ์์ผ ํ๋ค. ๊ทธ๋์ ๋ง์ง๋ง ๋ถ๋ถ์ ์บ๋ฆฐ๋ ์ ์ ๋์ฐ๋ ๋ฐ ์์ด ์ด๋ฏธ์ง๊ฐ ๋ํ๋์ง ์๋๋ค๋ ๋ฌธ์ ๊ฐ ๋ฐ์ํ๋ค. ํ์ด์ด ๋ฒ ์ด์ค์์ profile-image๋ผ๋ ์ด๋ฆ์ผ๋ก ์ต์ข ๋ง๋ฆฌ๋ชจ์ ์ด๋ฏธ์ง๋ฅผ ์บ๋ฆฐ๋์ ๋์ ์๋๋ฐ userInfo ์ปฌ๋ ์ ์์ ๊ฐ์ ธ์จ ๊ฒ์ด ์๋๋ผ ๋ด๊ฐ study-session์ด๋ผ๋ ์ปฌ๋ ์ ์์ ํ๋กํ์ ๋ถ๋ฌ์ค๊ณ ์์๋ค. ๊ทธ๋์ userInfo์์ profile ์ด๋ฏธ์ง๋ฅผ ๋ถ๋ฌ์ฌ ์ ์๋๋ก ์ฐ๊ฒฐ ๋ถ๋ถ์ ๋ณ๊ฒฝํด ์ฃผ์๋ค.
-
ํฌ๋๋ฆฌ์คํธ ํ์ด์ง
๋ฌธ์ ์ ํด๊ฒฐ ๋ฐฉ์ ํฌ๋ ์ ํฐ์น ์ ํฌ๋๊ฐ ์์ ๋๋๋ฐ ์ด๋ ํค๋ณด๋๊ฐ ์ฌ๋ผ์ค๋ ๊ฒ๊น์ง ์๊ฐํ์ง ๋ชปํด์ ํญ ์ ์ค์ฒ๋ฅผ ๋งจ ๋ง์ง๋ง์ ์ฒ๋ฆฌํ๊ฒ ๋์๋ค. ํญ ์ ์ค์ฒ๋ฅผ ๋งจ ๋ง์ง๋ง์ ์น์๋๋ ์ ์ด ํฐ์น ๋์ง๋ ์๊ณ ์์ ๊ธฐ๋ฅ๋ ๋จนํต์ด ๋๋ ๋ฌธ์ ๊ฐ ์์๋ค. ์์ธ์ ํญ ์ ์ค์ฒ๋ฅผ ์ ์ฒด ํ๋ฉด์ ๋งจ ์์ ์น์๋ค๋ ์ ์ด์๊ณ , ๊ทธ๋์ ํ ์ด๋ธ ๋ทฐ๋ฅผ ์ ์ธํ ํ๋ฉด์ ํฐ์น ์ ํค๋ณด๋๊ฐ ๋ด๋ ค๊ฐ๋๋ก ์ค์ ์ ํ๋๋ฐ ์คํจํ๋ค. ํญ ์ ์ค์ฒ๋ฅผ ํ๋ฉด์ ๋งจ ๋ค์ ์น๋ ๋ฐฉ๋ฒ์ด ์๋ ํ ์ด๋ธ ๋ทฐ๊ฐ ์๋ ๋ถ๋ถ์ ๋ทฐ๋ฅผ ํ๋ฉด ํฌ๊ธฐ์ ๋ง์ถฐ ๋ง๋ค์๊ณ ๋ทฐ๊ฐ ๋ค์ด๊ฐ์ผ ํ ๊ณณ์ ์๋ ๋ฒํผ๋ค์ ์์ ์ฝ๋๋ฅผ ์ ์ด์ค์ ๋ฒํผ๋ค๋ ์ ๋๋ก ๋์ํ๋๋ก ๋ง๋ค์ด์คฌ๋ค. -
ํฌ๋๋ฆฌ์คํธ ์บ๋ฆฐ๋ ํ์ ํ์ด์ง
๋ฌธ์ ์ ํด๊ฒฐ ๋ฐฉ์ ๊ธฐ์กด์๋ ์ฑ ์ข ๋ฃ ํ ์ฌ์ ์ ์์ ์ฌ์ฉ์๊ฐ ๋ง์ง๋ง์ผ๋ก ์ ํํ ๋ ์ง ๋จ๋๋ก ๊ตฌํํ๋๋ฐ, ํฌ๋๋ฆฌ์คํธ ํ์ด์ง์์ ์ฑ ์ข ๋ฃ ํ ์ฌ์ ์ ์ ์ค๋ ๋ ์ง๋ฅผ ํ์ํ๋๋ก ์์ ํ๋ฉด์ ๋์ผํ๊ฒ ์์ ์ด ํ์ํ๋ค. ์ฑ์ ์ข ๋ฃํ์ง ์์์ ๋๋ ์ฌ์ฉ์๊ฐ ๋ง์ง๋ง ์ ํํ ๋ ์ง๊ฐ, ์ฑ์ ์ข ๋ฃํ๊ณ ์ฌ์ ์ ์์๋ ์ค๋ ๋ ์ง๊ฐ ๋จ๋๋ก ์์ ํด์ผ ํ๋๋ฐ, ์ฑ์ ์ข ๋ฃํ์ง ์๊ณ ๋ทฐ๋ฅผ ๋ซ์๋ค๊ฐ ์ด๋ฉด ์ค๋ ๋ ์ง๊ฐ ๋ํ๋๋ ๋ฌธ์ ๊ฐ ์์๋ค. ๊ธฐ์กด์๋ ๋ ์ง๋ฅผ ์ ํํ๊ณ ํ์ธ ๋ฒํผ ๋๋ฌ์ Firebase์ Date ์ ๋ณด๋ฅผ ํฌ๋๋ฆฌ์คํธ ํ์ด์ง๋ก ๋๊ฒจ์ฃผ๊ณ , ๋ทฐ๊ฐ ๋ก๋ ๋ ๋๋ง๋ค Firebase์ ์ ์ฅ๋ ์ ํ ๋ ์ง๋ฅผ ๋ถ๋ฌ์์ ํ์ํ๋๋ก ๊ตฌํํ๋๋ฐ, ํฌ๋๋ฆฌ์คํธ ํ์ด์ง์ ๋ํ๋ ์๋ ๋ ์ง์ string ๊ฐ์ ํฌ๋๋ฆฌ์คํธ ์บ๋ฆฐ๋ ํ์ ํ์ด์ง๋ก ๋ถ๋ฌ์์ date ๊ฐ์ผ๋ก ๋ณํํด ํด๋น ๋ ์ง์ ํ์ํ๋๋ก ์์ ํ๋ค.
-
ํ๋กํ ์์ ํ์ด์ง
๋ฌธ์ ์ ํด๊ฒฐ ๋ฐฉ์ D-Day ๋ ์ง๋ฅผ ์ ํํ๊ณ ํ์ฌ ๋ ์ง๋ถํฐ ์ ํ ๋ ์ง๊น์ง ๋จ์ ์ผ์๋ฅผ ๊ณ์ฐํด D-(๋จ์ ์ผ์)๋ก Firebase์ ์ ์ฅํ๋๋ก ๊ตฌํํ๋๋ฐ, ์ ํ ๋ ์ง๊ฐ ์ง๋ฌ์ ๊ฒฝ์ฐ์ D-(์ง๋ ์ผ์)๋ก ํ์๋๋ ๋ฌธ์ ๊ฐ ์์๋ค. ์์ธ์ฒ๋ฆฌ๋ฅผ ํตํด D-Day ๋ ์ง๊ฐ ์ค๋๋ณด๋ค ์ด์ ๋ ์ง์ผ ๊ฒฝ์ฐ D+(์ง๋ ์ผ์)๋ก ํ์๋๋๋ก ์์ ํ๋ค. D-Day ์ผ์๋ฅผ ์ค๋ ๋ ์ง๋ฅผ ํฌํจํ ๊ฒฝ์ฐ ๊ณ์ฐ ์ผ์์์ 1์ ๋ํด targetDate๋ก Firebase ์ ์ฅํด ๋ค๋ฅธ ๋ทฐ์์ ๋จ์ ์ผ์๋ฅผ ํธํ๊ฒ ๊ณ์ฐํ ์ ์๋๋ก ํ๋๋ฐ, ์ด ๋ฐ์ดํฐ๋ฅผ ๊ทธ๋๋ก D-Day ์ผ์ ์ ํ ์ ๋ํ๋๋ ๋ ์ง์ ๊ฐ์ผ๋ก ๋ฐ์์ค๋, ์ฌ์ฉ์ ์ ํ ๋ ์ง์์ ํ๋ฃจ ๋ํด์ง ๋ ์ง๋ก ํ์๋๋ ๋ฌธ์ ๊ฐ ์์๋ค. ํ์ด์ด๋ฒ ์ด์ค์์ targetDate ๊ฐ์ ๋ฐ์์ฌ ๋ ์ค๋ ๋ ์ง๋ฅผ ํฌํจํ ๊ฒฝ์ฐ์๋ targetDate ๊ฐ์์ 1์ ๋นผ์ ๊ธฐ์กด์ ์ ํํ ๋ ์ง๋ฅผ ๋ฐ์์ฌ ์ ์๋๋ก ์ฝ๋๋ฅผ ์์ ํ๋ค.
iOS 17.0+ ์์ ์์ ฏ์ ๋ฐฑ๊ทธ๋ผ์ด๋ ์ปฌ๋ฌ๊ฐ ์ ๋๋ก ์ ์ฉ๋์ง ์๋ ์ด์๊ฐ ์์์ต๋๋ค. 17.0 ์ด์์ ๋ฒ์ ์์ ๋ถ๊ธฐ์ฒ๋ฆฌ๋ฅผ ํตํด ์๋ก ์ถ๊ฐ๋ containerBackground
๋ฉ์๋๋ฅผ ์ฌ์ฉํด ๋ฐฐ๊ฒฝํ๋ฉด์ ์ค์ ํด ํด๊ฒฐํ์ต๋๋ค.
ํ์ด์ง | ์ ๋ฐ์ดํธ ๋ด์ฉ1 | ์ ๋ฐ์ดํธ ๋ด์ฉ2 |
---|---|---|
๋ฉ์ธ ํ์ด์ง | ๋ชฉํ์๊ฐ ๋ฌ์ฑ ์ ์ฌ์ฉ์์๊ฒ push ์๋์ผ๋ก ์๋ดํ๊ธฐ ๊ตฌํ | ํ์ด๋จธ๊ฐ ์คํ์ค์ผ ๋ ์งํ ์ํฉ์ ์์ ฏ์ผ๋ก ๋ณด์ฌ์ฃผ๊ธฐ ๊ตฌํ |
์บ๋ฆฐ๋ ํ์ด์ง | ์ ํฐ์น ์ selection effect๋ฅผ ์ ์ฉ | |
ํฌ๋๋ฆฌ์คํธ ํ์ด์ง | ํฌ๋ ์๋ฃ ๋ฒํผ ํด๋ฆญ ์ ์๊ฐ์ ์ผ๋ก ๋ ์ ๋ณด์ด๋๋ก ํ ์คํธ ํ๋์ ์ค๊ฐ ์ค ๋ฃ๋ NSMutableAttributedString์ ๊ตฌํ | |
๋ง์ด ํ์ด์ง | ||
์ค์ ํ์ด์ง | ํ๋กํ ์ค์ ํ์ด์ง ๋ง๋ฆฌ๋ชจ ๋์์ธ ๋ณ๊ฒฝ |