2022.10.24 > ๊ธฐ์กด ํ ์ด๋ธ ๋ทฐ๋ฅผ Compositional Layout + Diffable Datasource๋ก ๋ณ๊ฒฝ
UserDefaults
์์ Bool
ํ์
๋ณ์๋ฅผ ์ด์ฉํด ์ฑ ์ฒซ์คํ์ฌ๋ถ๋ฅผ ์ฒดํฌํ๊ณ ์ฒ์์ผ ๊ฒฝ์ฐ์๋ง ๋ณด์ฌ์ค๋๋ค.
- ํ์ ํ์ |
---|
- ๋ฉ๋ชจ ์์ฑ ์ ์ฒซ๋ฒ์งธ ๊ฐํ๋ฌธ์๋ฅผ ๋ฐ๊ฒฌํ๊ธฐ ์ ๊น์ง๋ ํ์ดํ, ์ดํ๋ ์ฝํ ์ธ ๋ก ์ ์ฅํฉ๋๋ค. ์๋ฃ๋ฒํผ์ ๋๋ฅด๊ฑฐ๋ ๋ค๋ก๊ฐ๊ธฐ๋ฅผ ๋๋ฅด๋ฉด ์ ์ฅ๋ฉ๋๋ค.
- ๋ฉ๋ชจ ์์ฑ ์ ํค๋ณด๋์ ๋ฐ ๋ฒํผ์ด ๋ชจ๋ ๋ณด์ ๋๋ค.
- ๋ด์ฉ์ด ์์ผ๋ฉด ์ ์ฅํ์ง ์์ต๋๋ค.
- ๊ณต์ ๋ฒํผ์ ๋๋ฅด๋ฉด ์์ฑ๋ ๋ด์ฉ์ด
Activity View
๋ฅผ ํตํด ๊ณต์ ๋ฉ๋๋ค. (๋ด์ฉ์ด ์์ ๊ฒฝ์ฐ ๊ณต์ ๊ฐ ๋์ง ์์ต๋๋ค.)
- ๋ฉ๋ชจ ์์ฑํ๊ธฐ | - ๋ด์ฉ์ด ์์ผ๋ฉด ์ ์ฅํ์ง ์๊ธฐ | - ๋ฉ๋ชจ ๊ณต์ ํ๊ธฐ |
---|---|---|
- ๋ฆฌ์คํธ์์ ์ ์ ์ ํํ๋ฉด ์์ ํ๊ธฐ๋ก ๋์ด๊ฐ๊ณ , ํค๋ณด๋์ ๋ฐ ๋ฒํผ์ด ๋ณด์ด์ง ์์ต๋๋ค.
- ์์ ์ฐฝ์์ ํ ๋ฒ ๋ ํญํ๋ฉด ํค๋ณด๋์ ๋ฐ ๋ฒํผ์ด ๋ณด์ ๋๋ค.
- ๋ฉ๋ชจ ์์ |
---|
- ์ค๋ ์ค์ ์์ฑ๋ ๋ฉ๋ชจ๋ ์๊ฐ, ์ฃผ์ค์ ์์ฑ๋ ๋ฉ๋ชจ๋ ์์ผ, ๊ทธ ์ธ์๋ ๋ ์์ ์ด ์ ๋ ฅ๋๋๋ก ํฉ๋๋ค.
- ๋ฉ๋ชจ์ ๊ฐ์๋ ๋ฐ๋ก ๋ฐ์๋์ ์์ ๋จ๊ฒ ๋ฉ๋๋ค. ๋ง์ฝ 1์ฒ๊ฐ๊ฐ ๋์ ๊ฒฝ์ฐ ์ธ์๋ฆฌ์๋ง๋ค ์ผํ๊ฐ ํ์๋ฉ๋๋ค.
leadingSwipeAction
์ผ๋ก ๋ฉ๋ชจ๋ฅผ ๊ณ ์ ํ ์ ์์ต๋๋ค.trailingSwipeAction
์ผ๋ก ๋ฉ๋ชจ๋ฅผ ์ญ์ ํ ์ ์์ต๋๋ค.
- ๋ฉ๋ชจ ๋ชฉ๋ก | - ์ค์์ดํ์ก์ - ํ ๊ณ ์ | - ์ค์์ดํ์ก์ - ์ญ์ |
---|---|---|
- ๊ฒ์์ด์ ์ผ์นํ๋ ๋ฉ๋ชจ๋ฅผ ์ค์๊ฐ์ผ๋ก ๋ณด์ฌ์ค๋๋ค.
- ์ผ์นํ ๋ฌธ์์ด์ ์๊น์ด ๋ค๋ฅด๊ฒ ํ์๋ฉ๋๋ค.
- ๊ฒ์์ฐฝ์์ ๊ฒ์๊ฒฐ๊ณผ๋ฅผ ํด๋ฆญํด๋ ๋ฉ๋ชจ ์์ ํ๊ธฐ ํ๋ฉด์ ๋ณผ ์ ์์ต๋๋ค.
- ๊ฒ์ํ๋ฉด |
---|
ํ์์๋ ์ปค๋ฐ์ด๋ ๋ฌธ์, ์ด์์ ์ ํ ์ ๊ฒฝ์ฐ์ง ์์๋๋ฐ, ์ด๋ฒ์๋ ์ต๋ํ ๊ณผ์ ๊ณผ ์ฝ๋์ ์ปค๋ฐ์ ๋จ์๋ฅผ ๋ณด๊ธฐ ์ข๊ฒ ๋ง๋ค๊ณ ์ถ๋ค๋ ์๊ฐ์ผ๋ก ํ๋ก์ ํธ๋ฅผ ์งํํ์ต๋๋ค.
๋ฏธ๋ฆฌ ์๊ตฌ์ฌํญ์ ์ด์๋ก ์ ๋ฆฌํ๊ณ ์ปค๋ฐ์ ์๊ฐ ์ชผ๊ฐ๊ณ , ์ด์ ํ
ํ๋ฆฟ๊ณผ PR ํ
ํ๋ฆฟ์ ๋ง๋ค๊ณ ์ปค๋ฐ ๋ฉ์์ง์๋ ์ ๊ฒฝ์ ์ฐ๊ณ , ํด๋๋ง๊ณผ ์ฃผ์, ๊ตฌํํ๋ฉด์๋ ์ต๋ํ ๋ฐฐ์ด ๊ฐ๋
์ ํ์ฉํด๋ณด์๊ณ ์๊ฐํ๋๋ฐ์.
์์ํ ์์ฌ์์ ์ฐจ์นํ๊ณ ์๋ผ๋ ๋ฉ๋ชจ ํ๋ก์ ํธ ์์ ์ง์ ์ ๋ฐฐ์ด Observable
๊ทธ๋ฆฌ๊ณ ์ ์ฉํด๋ณด๊ณ ์ถ์๋ DiffableDataSource
์ Compositional Layout
์ ์จ๋ณด์ง ๋ชปํด ํฐ ์์ฌ์์ด ๋จ์ต๋๋ค.
- RX์ MVVM์ ์ด์ฉํด ๊ฐ์ ํ๊ธฐ
- ์น์ ์ ๋๋ฌด ์์กดํ๋ ๋ถ๋ถ: ๊ฒ์์ค์ด ์๋ ๋์๋ ์์ ์น์ 0์ ๊ณ ์ ๋ฉ๋ชจ ์์ญ์ผ๋ก ์ก์๋์๊ธฐ ๋๋ฌธ์, ๊ณ ์ ๋ฉ๋ชจ๊ฐ ์์ ๊ฒฝ์ฐ ์์ ๋น ๊ณต๊ฐ์ด ์ข ๋ ์๊ธด๋ค. ๋ค๋ฅธ ๊ณณ์์๋ ์น์ 0์ ๊ธฐ์ค์ ์ผ๋ก ์ก์๋์๋๋ฐ, ์ด๊ฑธ ๋ฐ์ดํฐ ์ค์ฌ์ผ๋ก ๋ฐ๊ฟ์ผํ ๊ฒ ๊ฐ๋ค.
- ๊ฒ์ ์ฟผ๋ฆฌ์ ์ ์ฉ๋๋ ๋ฌธ์์ด์ ๋ ์ด๋ธ์ ๋ฐ๋ก ์ ์ฉํ ์ ์๋๋ก
UILabel
์extension
์ผ๋ก ํด๋์๋๋ฐ, ์คํ๋ ค ๋ฒ์ฉ์ ์ผ๋ก ์ฌ์ฉํ๊ธฐ๊ฐ ์ด๋ ต๊ฒ ๋์๋ค.String
์extension
์ผ๋ก ๋ฐ๋ก ๋ง๋ค์ด์ Attributed String์ ๋ฐ์์ค๋ ํํ๋ก ๊ฐ์ ํ๊ณ ์ถ๋ค.
ํด๊ฒฐํจ
ํ๋กํ ์ฝ์ ์ด์ฉํ์ฌ ๊ฐ์ ์ญ์ ๋ฌ ํ ๋: ์๊พธ ํด๋น ํ๋กํ ์ฝ ํ์ ์ VC๋ฅผ ๋ฃ์ ์ ์๋ค๋ ์๋ฌ๊ฐ ๋ด๋๋ฐ, ์๊ณ ๋ณด๋var delegate = protocolName?
์ผ๋ก ํด๋ ๊ฒ... ๐คฆ ๋ชป ์ฐพ์์ ๊ฒ์์ผ๋ก 3์๊ฐ ํค๋งธ๋ค.ํด๊ฒฐํจ
ํ๋กํ ์ฝ ์ ์ํ ๋AnyObject
๋ฅผ ์ฑํํ์ง๋ง, ์ฝํ ์ฐธ์กฐ๋ก ์ ์ธํ์ง ์์ ๋ถ๋ถ -> ์ฝํ ์ฐธ์กฐ์ ๋ํด ์ฝํ ์ดํด๊ฐ ์์๋ค! ์์ ์ผ๋ก ๋ฐฐ์์ ๋ฐ๋ก ์ ์ฉํ๋ค!ํด๊ฒฐํจ
์ฝ๋๋ก ๊ตฌํํ๊ณ ๋๋ ๊ฑธ ํ์ธํ๋ ๊ฒ ๊ฐ์๋ฐ, ์์ ๋ชจ๋์์ ๋ฐ๋ฒํผ ์์ดํ ๊ณผ ํค๋ณด๋๊ฐ ์ ๋๋ก ์ ์์ด์ง๋ ๊ฑธ ํ์ธํจ...๐ฅฒ -> ์กธ๋ ค์ ์ฝ๋๋ฅผ ์ข ๋ ๋ ธ๋ ๊ฒ ๊ฐ๋ค. ์ ์ถ ํ์ ์์ ํจ (์ด์ #40)
Realm Object
๋ฅผ ๋ค๋ฅธ ํ๋ฉด์ผ๋ก ๋ณด๋ด์, ๊ทธ๊ณณ์ ์ ์ธํrepository
๋ฅผ ์ด์ฉํ๋ฉด ๋์ผํ write thread๊ฐ ์๋๋ผ์ ์๊ธฐ๋ ์๋ฌ. ์ฐ๋ ๋์ ๋ํ ๋ถ๋ถ์ด ์์ง ์ด๋ ต๋ค.Done
-searchController
๋ฅผ ์ ์ฉํ ์ํ์์ ์์ฑํ๊ธฐ๋ฅผ ํด๋ฆญํ๋ฉด, ์๋ฎฌ๋ ์ดํฐ์์๋ ๋ค๋น๊ฒ์ด์ ๋ฐ๊ฐ ์์ ์์ดํ ํฌ๊ธฐ์ ๋ง์ถฐ ์๋์ผ๋ก ์ค์ด๋ค์ง๋ง ์ ๋๋ฐ์ด์ค์์๋ ๋ค๋น๊ฒ์ด์ ๋ฐ๊ฐ ์๋์ผ๋ก ์ ์ค์ด๋ค๊น? ->prefersLargeTitle
์false
๋ก ๋ฐ๊ฟ์ฃผ๋ฉด ๋๋ค. thx to @GoForWalkinset grouped
์์ ์น์ ํค๋๊ฐ ์ ์ด ์์ํ๋ ์์น์ ๊ฐ์ผ๋ฉด ์ข๊ฒ ๋๋ฐ ์ด๋ป๊ฒ ์ฎ๊ธธ์ง.์ค์์ดํ ์ก์ ์์ญ์ด ๋๋ฌด ํฐ ๊ฒ ๊ฐ์๋ฐ ๊ณต๊ฐ์ ์ค์ผ ์ ์์๊น?<- ์ ๋์ด๊ฐ ์์์ ๊ทธ๋ ๊ฒ ๋ณด์ด๋ ๊ฒ. ์ค์์ดํ์ก์ ์์ ๊ฐ๋ก๋ก ์ฐจ์งํ๋ ์์ญ ์์ฒด๋ ๋๊ฐ๋ค!isEditing
์ ๋ํด ์ข ๋ ์ฐพ์๋ณด๊ธฐ!