ํ๋ฃจ 24๊ฐ์ ๋ธ๋ญ์ ๊ฐ์น์๊ฒ ์์๋๊ฐ๋ ๋ฐฉ๋ฒ,
DayBlock ๋ฐ์ด๋ธ๋ญ๊ณผ ํจ๊ปํด์!
"๋ด๊ฐ ์ผ๋ง๋ ์์ฐ์ฑ ์๋ ์๊ฐ๋ค์ ๋ณด๋์๊น?"
์ฐ๋ฆฌ ๋ชจ๋๋ ํ๋ฃจ๋ฅผ ๋ค์ํ ์๊ฐ์ผ๋ก ์ฑ์๊ฐ๊ณ ์์ด์.
๊ทธ์ค ๊ธฐ๋กํ๊ณ ์ถ์ ์๊ฐ๋ค์ ๋ธ๋ญ์ผ๋ก ๋ง๋ค๊ณ ์์๊ฐ๋ค ๋ณด๋ฉด
๋
ธ๋ ฅ๊ณผ ์ด์ ์ ํ์ ์ ๋ฐ์ด๋ธ๋ญ์์ ํ์ธํ ์ ์์ ๊ฑฐ์์.
APP Store ๋งํฌ
Figma ๋์์ธ ๋งํฌ
- ํ๋ก์ ํธ ์์์ผ :
23.03.01(์)
- ํ๋ก์ ํธ ๋ง๊ฐ์ผ :
24.01.11(๋ชฉ)
- ํ๋ฃจ 24๊ฐ์ ๋ธ๋ญ์ ์ด๋ป๊ฒ ํ์ฉํ๋์ง
์ง๊ด์ ์ธ ์๊ฐ์ ํผ๋๋ฐฑ
์ ๋ฌํ๊ธฐ ์์ฐ์ฑ ์ ๋ฌด์ ์จ์ ํ ์ง์ค
ํ ์ ์๋๋ก ํต์ฌ ์ ๋ณด ์์ฃผ๋ก ์ ๋ฌํ๊ธฐ- ์ด๋ค ์์ฐ์ฑ์ ๋ฐํํ๋์ง
ํ์ธ ๋ฐ ๋๊ธฐ๋ถ์ฌ
๊ฐ ๊ฐ๋ฅํ ํต๊ณ ๋ฆฌํฌํธ ์ ๊ณตํ๊ธฐ
- 1์๊ฐ=1๋ธ๋ญ / 30๋ถ=0.5๋ธ๋ญ ๋จ์๋ก ์์ฐ์ฑ ํธ๋ํน โ
- ๋ฐ๋ณต์ ์ผ๋ก ์งํํ๋ ์์ฐ์ฑ ์์ ์ ๋ธ๋ญ ํ ํ๋ฆฟ์ผ๋ก ์์ฑ ๋ฐ ๋ฑ๋ก โ
- ํ์ฌ๊น์ง ์์ฐํ ๋ธ๋ญ ์ ์ฅ ๋ฐ ๊ทธ๋ฃน/๋ ์ง๋ณ ํต๊ณ ๋ฆฌํฌํธ ์ ๊ณต โ
- ๋ฐ๋ณต ๋ธ๋ญ ์๊ฐ ์ค์ ํ Push ์๋ฆผ ๋ฐ์ก (์ต๊ด ๋ง๋ค๊ธฐ์ ๋์์ฃผ๊ธฐ)
- ๋ธ๋ญ ์์ฑ ํ ์ ๋๋ฉ์ด์ ํจ๊ณผ๋ก ๋ธ๋ญ ์๊ธฐ (๋ง์ดํฌ๋ก์ธํฐ๋์ ์ถ๊ฐ๋ก ๊ธ์ ์ ์ธ ๋ฐ์ ์ด๋์ด๋ด๊ธฐ) โ
- ํต๊ณ ๋ฆฌํฌํธ ๋ด ํฉ๊ธ๋ธ๋ญ ์ ํ์จ ๋ณด๊ธฐ ์ถ๊ฐ (์ผ๋ฐ ๋ธ๋ญ ๋ฐ ์์ฐ์ ๋ธ๋ญ ๊ตฌ๋ถ์ผ๋ก ํจ์จ ๊ณ์ฐ) โ
- ์น๊ตฌ ์ถ๊ฐ๋ฅผ ์ด์ฉํ ํ๋ ๊ณต์ (์๋ก์ ํ๋ ๊ณต์ ๋ก ๋๊ธฐ๋ถ์ฌ ์ ๊ณต)
๋๋ต 10๊ฐ์๊ฐ์ ํ๋ก์ ํธ๊ฐ ๋์ด ๋ฌ์ต๋๋ค. ์ฌ์ค ์ฒ์์ ์ด๋ ๊ฒ ์ค๋ ๊ฑธ๋ฆด ์ค ๋ชฐ๋์ต๋๋ค.(๊ทธ๋ ๊ทธ๋ด ๊ฒ์ด ์ฒ์ ์ผ์ ํ์๋ 3๊ฐ์ ๋ง์ ๋๋ผ ๊ฑฐ๋ผ ์์ ๋ง๋งํ๊ฒ ์์ฑํด๋์์,,) ๊ฐ์ธ ํ๋ก์ ํธ์๊ธฐ์ ๋ ์ง์ ์ซ๊ธฐ์ง ์์๊ณ , ์ถ๊ฐํ๊ณ ์ถ์ ๊ธฐ๋ฅ์ ๋ฃ์ผ๋ฉฐ ์ฌ๋ฐ๊ฒ ์งํํ์ง๋ง ๋์๋ณด๋ ์์ฌ์ด ์ ๋ ๋ถ๋ช ์๋ ๊ฒ ๊ฐ์ต๋๋ค. ํ๋ก์ ํธ๋ฅผ ๋ง๋ฌด๋ฆฌํ๋ฉฐ ์ด๋ฌํ ๋ด์ฉ๋ค์ ๋ณต๊ธฐํ ์ ์๋๋ก ํ๊ณ ๋ฅผ ์์ฑํด ๋ณด๋ ค ํฉ๋๋ค.
์ฒซ ๋ฒ์งธ๋ก ๊ฐ๋ฐ์ ๋น ๋ฅด๊ฒ ์์ํด์ผ๊ฒ ๋ค๋ ์๊ฐ์ด ์์, ๊ธฐํ์ ์ํํ ํ๋ ๋ถ๋ถ์ด์์ต๋๋ค. UX/UI ๋์์ด๋๋ก ํ๋ํ๋ฉฐ ์ค์ค๋ก์๊ฒ ํญ์ ๊ฐ์กฐํ๋ ๊ฒ ํํํ ๊ธฐํ ๋ถ๋ถ์ด์๋๋ฐ, ์ ์ ์ ๊ฐ ๊ฐ๋ฐ์ ์งํํ๋ฉฐ ์ด๋ฅผ ์ํํ ํ๋ ๊ฒ ์์ด๋ฌ๋ํ๊ธฐ๋ ํ ๊ฒ ๊ฐ์ต๋๋ค. ์ฝ์ ํธ๋ ๋ก์ง๋ค์ด "์ด๋ฐ ๋๋์ผ๋ก ๊ฐ์~" ์ ๋๋ก ์ ํด์ ธ ์๋ค ๋ณด๋ ์ด๋ฐ์๋ ์ ํ ๋ฌธ์ ์์ด ์งํ๋๋ ๋ฏํ์ง๋ง, ๊ท๋ชจ๊ฐ ์กฐ๊ธ์ฉ ์ปค์ง์ "์ด๋ฐ ๋ถ๋ถ์ ์ด๋ ๊ฒ ํ๋ฉด ์ ๋์๋ค,,"๋ผ๋ฉฐ ๋ค์ ๋์๊ฐ ์์ ํ๋ ์ผ์ด ๋น๋ฒํด์ก์ต๋๋ค. ๊ฐ๋ฐ์์ ์ ์ฅ์์ ๋ค์ ํ๋ฒ ๊ธฐํ์ ์ค์์ฑ์ ๋๋ ์ ์์์ต๋๋ค.
๋ ๋ฒ์งธ๋ก ๋์์ธ ํจํด์ ์ค์์ฑ์ ๋ค๋ฆ๊ฒ ๊นจ๋ฌ์ ์ ์ด์์ต๋๋ค. ์ฒ์์ ๊ท๋ชจ๊ฐ ํฐ ํธ์ด ์๋๊ธฐ์ MVC ํจํด์ผ๋ก ์ด๋ ์ ๋ ๊ด๋ฆฌ๊ฐ ๋ ์ ์๊ฒ ๋ค๊ณ ์๊ฐํ์์ต๋๋ค. ํ์ง๋ง ๊ฐ๋ฐ์ ์งํํ ์๋ก ํ๋ฌธ์ ์ผ๋ก๋ง ๋ฐฐ์ ๋ MVC ํจํด์ ๋ฌธ์ ์ ์ ์ง์ ๋ง์ฃผํ๊ฒ ๋์๊ณ (ViewController๊ฐ ๋น๋ํด์ง), ๋์ค์ ๊ธฐ์กด ๋ฉ์๋ ์์ ๋ฐ ์ ๊ท ๋ฉ์๋ ์ถ๊ฐ์๋ ์ ๋ฅผ ๋จน๊ฒ ๋์์ต๋๋ค. ๋ํ ํ์ฌ ์ฝ๋์๋ ์ฑ๊ธํค์ด ์ฌ๋ฌ ๊ฐ ์์ฑ๋์ด ์์ ๋ฐ ํ ์คํธ๊ฐ ์ด๋ ต๊ณ , ๋ชจ๋ํ๋ ์ ์ ํ ๋์ด ์์ง ์์ ๋ฌธ์ ์ ๋ ์กด์ฌํฉ๋๋ค. ์ฒซ ํ๋ก์ ํธ์๊ธฐ์ ์ผ๋จ์ ๊ฐ๋ฐํด๋ณด์! ๋ผ๋ ๋ง์์ ์ข์ ์ฝ๋๋ฅผ ์์ฑํ์ง ๋ชปํ ๊ฒ์ ๋ํ ์์ฌ์์ด ์์ง๋ง, ๊ทธ๋งํผ ๋ฐ์ํ ์ ์๋ ๋ฌธ์ ์ ์ ํผ๋ถ๋ก ๋๋ ์ ์์๊ณ ์์ผ๋ก๋ ์ค์ํ์ง ์์ ์ข์ ๋ ํผ๋ฐ์ค๊ฐ ๋ ๊ฒ์ด๋ผ ๋ฏฟ๊ณ ์์ต๋๋ค.
์์ผ๋ก์ ๊ณํ์ ์ฐ์ ์ฌ์ฉ์ ํผ๋๋ฐฑ์ ๋ฐ์ ๋ฒ๊ทธ ์์ ๋ฐ UX๋ฅผ ๊ฐ์ ํ๋ ค ํฉ๋๋ค. (์๋ง์ ํธ๋ํน, ๋ธ๋ญ, ๊ทธ๋ฃน ๊ด๋ฆฌ๋ฅผ ์ํ ํ ์คํธ๋ฅผ ํด๋ดค์ง๋ง ์ธ์ ๋ ๋ฒ๊ทธ๋ ์กด์ฌํ๊ธฐ์,,!) ์ด์ ํจ๊ป ์กฐ๊ธ์ฉ ๋ชจ๋ํ ๋ฐ RxSwift๋ฅผ ์ด์ฉํ MVVM ํจํด์ผ๋ก ๋ฆฌํฉํ ๋ง์ ์งํํ ๊ณํ์ ๋๋ค. ๋ฌผ๋ก ๋คํธ์ํน, BM ๋์ ๋ฑ ๊ธฐ๋ฅ ์ถ๊ฐ๋ ์ ๋ง ํ๊ณ ์ถ์ง๋ง,, ๊ทผ๋ณธ์ ์ธ ์ ๊ธฐ๋ฅ์ ๋ค ํ์ ๋ ๊ฑด๋๋ฆฌ๋ ๊ฒ ์ณ๋ค๊ณ ์๊ฐํ๊ธฐ์ ์๊ฐ์ ๋๊ณ ์ฒ์ฒํ ํ ๊ฑธ์์ฉ ๋์๊ฐ๋ ค ํฉ๋๋ค.
๋ง์ง๋ง์ผ๋ก ๋๋ ์ ์ ์ข ํฉ ์ ๋ฆฌํด ๋ณด์๋ฉด, ์ ๋ง ์๋ ๋ถํฐ ํ๊ณ ์ถ์๋ "๋ด ์๊ฐ์ ๊ตฌ์ฒดํ์์ผ ์๋น์ค๋ก ์ถ์ํด ๋ณด๊ฒ ๋ค"๋ผ๋ ๋ป์ ์ด๋ค ๊ฐํ๊ฐ ์๋กญ์ต๋๋ค. ์ด๊ฒ ์ ๊ฐ๋ฐ ์ธ์์ ์์์ ์ด์ ๋ฐ๊ฑฐ๋ฆ์ด ๋๋ค ์๊ฐํ๊ณ ์ฑ์ฅํด๋๊ฐ๊ณ ์ถ์ต๋๋ค. ๊ฐ์ฌํฉ๋๋ค!
Day01 ~ Day30์ผ์ ๊ธฐํ ๋ฐ UI๋์์ธ์ ์งํํ์ต๋๋ค.
-
Github ์ฐ๋
Repository๋ฅผ ๋ง๋ค๊ณ , README ํ์ด์ง๋ฅผ ์์ฑํ์ต๋๋ค. -
Code base ๋ ์ด์์ ํ๊ฒฝ ์ธํ
Storyboard ์ฌ์ฉ ๋์Code Base ๋ ์ด์์
์ ์ฌ์ฉํฉ๋๋ค. -
View/Controller ๋ถ๋ฆฌ
๊ฐ์ฅ ์ต์ํMVC
ํจํด์ ์ด์ฉํด ์ ์ฒด ๊ตฌ์กฐ๋ฅผ ์ก์ ์์ ์ ๋๋ค. -
์ปค์คํ ํฐํธ ์ถ๊ฐ
Pretendard, Poppins ํฐํธ๋ฅผ ์ถ๊ฐํ์ต๋๋ค. -
์ปฌ๋ฌ ๋ฑ๋ก
GrayScale ์ปฌ๋ฌ๋ฅผ NameSpace์ ๋ฑ๋กํ์ต๋๋ค. -
HomeView ๋ฉ์ธ ๋ผ๋ฒจ ์ถ๊ฐ
-
UINavigationController ์ถ๊ฐ
-
Block Preview ์ปดํฌ๋ํธ ์ถ๊ฐ
BlockPreview
๋ ์์ผ๋ก ๋ง์ด ์ฌ์ฉํ๊ฒ ๋ ์์ ์ด๊ธฐ์ ์ปดํฌ๋ํธํ ์์ผฐ์ต๋๋ค.
์ด 24๊ฐ์ ๋ธ๋ญ์ ๊ฐ๊ฐ์UIView
๋ก ๊ตฌ์ฑํ์ต๋๋ค. -
UITabBarController ์ถ๊ฐ
-
Block, Group ๋ชจ๋ธ ์ถ๊ฐ
Block, Group์ ํ์ ๋ฐ์ดํฐ์ ๋ง๊ฒ Struct๋ฅผ ์์ฑํ์ต๋๋ค. -
UICollectionView ์ ํ
CollectionView
๋ฅผ ์ด์ฉํด ๋ธ๋ญ ์ ํ์ฐฝ ํ์ ์ก์์ต๋๋ค. -
BlockCollectionView์ ์บ๋ฌ์ ์ดํํธ ์ถ๊ฐ
์ฒ์ ๊ตฌํํด๋ณด๋Carousel Effect
๊ฐ ์ด๋ ค์ ์ง๋ง ๋ ํผ๋ฐ์ค๋ฅผ ์ฐธ๊ณ ํด ๊ตฌํํ์ต๋๋ค.
ํต์ฌ์ ๋ณด์ด์ง ์๋ ๋ ์ด์์์ฉ ๋ธ๋ญ ์ฌ์ด์ฆ๋ฅผ ํฌ๊ฒ ์ก๊ณ ,
scrollViewWillEndDragging
๋ฉ์๋๋ฅผ ํ์ฉํด ๋ช๋ฒ์งธ ๋ธ๋ญ์ธ์ง index๊ฐ์ ๊ตฌํด ํฌ์ปค์ฑ ํ๋ ๋ฐฉ์์ ๋๋ค.
์บ๋ฌ์ ์ดํํธ๋ ๋ค์ํ ๋ ์ด์์์ ํ์ฉ๋ ๊ฒ์ผ๋ก ์์ํ๊ธฐ์, ๊ผผ๊ผผํ ๋์๋ณผ ์์ ์ ๋๋ค.
-
BlockCollectionViewCell ๋์์ธ
-
TabBarActiveStackView ๋์์ธ ๋ฐ ์ปดํฌ๋ํธํ
ํ์ฌ ์ด๋ค View์ ์์นํด ์๋์ง ์๊ฐ์ ์ผ๋ก ์๋ ค์ฃผ๋ ์ปดํฌ๋ํธ๋ฅผ TabBar ์๋จ์ ์ถ๊ฐํ์ต๋๋ค.
class๋ก ๋ง๋ค์ด ์ถ๊ฐํด์ฃผ๊ณ , ๊ฐ๋จํ ๋ฉ์๋๋ฅผ ๋ง๋ค์ด ํ์ด์ง์ ๋ฐ๋ผ switch ๋ ์ ์๊ฒ ๊ตฌํํ์ต๋๋ค. -
MessageLabel, TrackingButton ์ถ๊ฐ
-
BlockDataManager ์ถ๊ฐ ๋ฐ TestData๋ก ํ ์คํธ
BlockGroup ์์ Block์ ๋ฃ์ด ๊ด๋ฆฌํ๋ ๊ตฌ์กฐ๋ก ๊ตฌ์ฑํ์ต๋๋ค.
ํ ์คํธ ๋ฐ์ดํฐ๋ก ๊ตฌํ์ ์ฑ๊ณตํ์์ผ๋, BlockGroup ์ด๋ฆ์ ์ด๋ป๊ฒ ๊ด๋ฆฌํด์ผํ ์ง๋ ๋ ๊ณ ๋ฏผํด์ผ ํ ๋ถ๋ถ์ ๋๋ค.
-
ํ์ฌ ๋ ์ง, ์์ผ, ์๊ฐ ๊ตฌํ๊ธฐ
dateFormatter
๋ฅผ ํ์ฉํด ํ์ฌ ๋ ์ง ๋ฐ ์๊ฐ ์ ๋ณด๋ฅผ ๋ถ๋ฌ์์ต๋๋ค. -
๋ ์ง ๋ฐ ์๊ฐ ์ค์๊ฐ ์ ๋ฐ์ดํธ
Timer
๋ฅผ ํ์ฉํด 1์ด ๊ฐ๊ฒฉ์ผ๋ก ๋ ์ง ๋ฐ ์๊ฐ ์ ๋ณด๋ฅผ ์ ๋ฐ์ดํธ ํฉ๋๋ค.
-
BlockPreview ๋ด๋ถ PaintBlock ํด๋์ค ์์ฑ
๊ธฐ์กด์ UIView๋ก ๋ง๋ค์ด์ ธ์๋ ๊ฐ๊ฐ์ ๋ธ๋ญ์ ์ฌ์ฌ์ฉ์ ์ํดPaintBlock
ํด๋์ค๋ก ๋ง๋ค์์ต๋๋ค.
๊ทธ ๊ณผ์ ์์ ์ธ์คํด์ค ์์ฑ ์์ ์ ๋ฐ๋ฅธ frameSize๊ฐ ์ค์ ๋์ง ์์, ๋ฐฐ๊ฒฝ์์์ด ์ ํํ ๋ฐ์๋์ง ์๋ ์ค๋ฅ๋ฅผ ๋ฐ๊ฒฌํด ํด๊ฒฐํ์ต๋๋ค. -
PaintBlock ์ํ์ ๋ฐ๋ฅธ Switch
์ด๊ฑฐํ์ ํ์ฉํ์ฌ ๋ธ๋ญ์ด ๋ฐ๋ง ์ฐผ์ ๋, ๋ชจ๋ ์ฐผ์ ๋ ๋ฑ์ ์ผ์ด์ค๋ฅผ ๊ตฌ๋ถํด ๋ฉ์๋๋ก ๊ตฌํํ์ต๋๋ค. -
Group ์ ํ ๋ฒํผ ๋์์ธ
GroupSelectButton
ํด๋์ค๋ฅผ ๋ง๋ค์ด navigation titleView์ ์ ์ฉํ์ต๋๋ค.
์ถํ ํฐ์น ์ ๊ทธ๋ฃน ๊ฐ ์ ํ ๊ธฐ๋ฅ์ ์ถ๊ฐ ํ ์์ ์ ๋๋ค.
-
๋ธ๋ญ ์ถ๊ฐ ๋ฒํผ ์ปฌ๋ ์ ๋ทฐ ๋ง์ง๋ง์ ์์ฑ
blockDataList
์ count ๋ณด๋ค 1๊ฐ ๋ง์ ์ปฌ๋ ์ ๋ทฐ๋ฅผ ์์ฑ ํ,
๋ง์ง๋ง ์ธ๋ฑ์ค์ ๋ธ๋ญ ์ถ๊ฐ ์ ์ ์ฝ์ ํ์ต๋๋ค.
์ ์ ์ฌ์ฌ์ฉ์ผ๋ก ์ธํ ์ค๋ฅ๋ฅผ ๋ง๊ธฐ ์ํดprepareForReuse
๋ฉ์๋์ ๊ธฐ๋ณธ๊ฐ์ ์ค์ ํ์ต๋๋ค. -
๋ธ๋ญ ์ถ๊ฐ ํ๋ฉด ์์ฑ + ํญ๋ฐ ์จ๊ธฐ๊ธฐ
hidesBottomBarWhenPushed
๋ฉ์๋๋ฅผ ํ์ฉํด push์ TabBar๋ฅผ ์จ๊ฒจ์ฃผ์์ต๋๋ค. -
MainTextFieldView ์ปดํฌ๋ํธํ
blockPreview์ ์ด์ด 2๋ฒ์งธ ์ปดํฌ๋ํธ๋ฅผ ์์ฑํ์ต๋๋ค.
๊ทธ ๊ณผ์ ์์์ ์ ์ฝ์ ํ์คํ๊ฒ ๊ฑธ์ง ์์ผ๋ฉด ๋๋ฒ๊น ์ด ์ด๋ ค์ด ์ ์ ๋ฐ๊ฒฌํด,
init๋ฉ์๋์ print๋ฌธ์ ์ฐ์ผ๋ฉฐ ์ค๋ฅ๋ฅผ ์ก์๋์ต๋๋ค.
-
SelectForm ์ปดํฌ๋ํธํ
-
SelectForm ์คํ์ผ ์ด๊ฑฐํ ์ ์
๊ทธ๋ฃน ์ ํ, ์์, ์์ด์ฝ SelectForm์ ๋ฏธ๋ฆฌ ์ง์ ํ style์ ๋ง๊ฒ ๋ณ๊ฒฝ ๊ฐ๋ฅํ๋๋ก
์ด๊ฑฐํ๊ณผ ๋ฉ์๋๋ฅผ ์์ฑํ์ต๋๋ค.ofType(_ label: String, _ type: SelectType)
-
TrackingMode ํ๋ฉด ๋์์ธ
trackingButton ํด๋ฆญ ์ ์ ํ๋๋ ํ๋ฉด์ ๊ตฌ์ฑํ์ต๋๋ค.
์ถํ ์ ๋๋ฉ์ด์ ์ ์ ์ฉ์ํฌ ์์ ์ ๋๋ค. -
ContentsBlock ์ปดํฌ๋ํธํ
-
ContentsBlock ์ปค์คํ ์์ฑ์ ์ฌ์ฉ
ContentsBlock์ ์ปดํฌ๋ํธํ ํ๊ธฐ ์ํด .middle, .large ์ฌ์ด์ฆ๋ก ๋๋ ์์ฑํ ์ ์๋๋ก ํ์ต๋๋ค.
๊ธฐ์กด UIView์ ์์ฑ์๋ฅผ ์ฌ์ ์ํด์ ์ฌ์ฉํ๋ ๊ฒ์ด ์๋, ์ปค์คํ ์์ฑ์๋ฅผ ๋ง๋ค์ด ๊ตฌํํ์ต๋๋ค.
๋ฌธ์ ํด๊ฒฐ ๊ธฐ๋ก : ์ ๋์ ์ธ ์ฌ์ด์ฆ์ ์ปดํฌ๋ํธ ์์ฑํ๊ธฐ -
HomeViewDelegate ์์ฑ
ํธ๋ํน ๋ชจ๋ ์ง์ ์, TabBarController๋ฅผ ์จ๊ธฐ๊ธฐ ์ํด ์ปค์คํ Delegate ํจํด์ ํ์ฉํด ๊ตฌํํ์ต๋๋ค. -
TrackingMode ์ฌ์ด์ฆ ์กฐ์
trackingTimeLabel์ trackingBlock๊ณผ trackingButton ๊ฐ์ด๋ฐ์ ๋ฐฐ์นํ๊ธฐ ์ํด ์ ์ฝ์กฐ๊ฑด์ ์ ๋ฐ์ดํธํ์ต๋๋ค.
๋ฌธ์ ํด๊ฒฐ ๊ธฐ๋ก : ๋๊ฐ View ์ฌ์ด ์ ๊ฐ์ด๋ฐ์ View ๋ฐฐ์นํ๊ธฐ
+ ํ๋ก์ ํธ ๊ธฐ๊ฐ ์ ๊ฒ
ํ๊ฒฝ ์
ํ
, MVC ํจํด ๊ตฌ์ฑ, ๋ฉ์ธํ๋ฉด ๋ ์ด์์ ์ก๊ธฐ ๋ชฉํ๋ฅผ ๊ฐ์ง๊ณ ๊ณํํ๋ 23.04.09 ๊ธฐ์ค ์งํ์ํฉ์ ์์ ๋ณด๋ค ์ฝ 20% ์ ๋ ๋ ์งํ๋์์ต๋๋ค. ํธ๋ํน, ๋ธ๋ญ ์ถ๊ฐ ํ๋ฉด์ ๋์์ธ์ด ๊ฑฐ์ ๋ง๋ฌด๋ฆฌ๋์๊ธฐ ๋๋ฌธ์ ๋จ๋ ์๊ฐ์ CoreData ๊ด๋ จ ๊ณต๋ถ, ๋ฆฌํฉํ ๋ง์ ์ง์คํ ๊ณํ์
๋๋ค.
-
TimeTracker ๊ตฌ์กฐ์ฒด ์์ฑ ๋ฐ View์ ์ฐ๊ฒฐ
String(format: "%02d:%02d:%02d")
๋ฉ์๋๋ฅผ ํ์ฉํด TimeTracker ๊ฐ์ ํ์ํ์ต๋๋ค. -
TimeTracker progressView ์ฐ๊ฒฐ
ํ์ฌ second์ ๊ธฐ๋ณธ ๋ธ๋ญ ๋จ์ 30๋ถ(1800)๊ณผ ๋๋์ด progressView์ ์ ์ฉํ์ต๋๋ค.
-
TimeTracker Paused ์ํ ์ถ๊ฐ
Paused ์ํ์ผ ๋ ํ์ด๋จธ์progressView
๊ฐ ๋ฉ์ถ๋๋ก ๊ตฌํํ์ต๋๋ค. -
stopTacker BarButtonItem ์ถ๊ฐ
์ค๋ฅธ์ชฝ ์๋จ ์ข ๋ฃ ๋ฒํผ ์์ดํ ์ ์ถ๊ฐํ์ต๋๋ค.
์ถํ ํด๋ฆญ ์ด๋ฒคํธ ๋ฐ์ ์, ํ๋ฒ ๋ ์ข ๋ฃ๋ฅผ ํ์ธํ๋ alert์ฐฝ์ ์ถ๊ฐํ ์์ ์ ๋๋ค. -
TrackingMode ๋ธ๋ญ ๋งค์น
์คํฌ๋กค๋ ํฌ๊ธฐ๋ฅผ ์ด์ฉํด ํ์ฌ ํฌ์ปค์ฑ๋ ๋ธ๋ญ์ ์ธ๋ฑ์ค๋ฅผ ๊ตฌํ ํ,
TrackingMode ์ง์ ์ ํด๋น ๋ธ๋ญ์ ์ธ๋ฑ์ค๋ก ์ ๊ทผํ๋ ๊ธฐ๋ฅ์ ์ถ๊ฐํ์ต๋๋ค. -
GroupSelectBarButtonItem ์์น ๋ณ๊ฒฝ
๊ฐ์ด๋ฐ ์์นํ๊ณ ์๋groupSelectBarButtonItem
์ ์์น๋ฅผ ์ผ์ชฝ ์ ๋ ฌํ์ต๋๋ค.
๊ทธ ๊ณผ์ ์์ ์๊ฐ ๋ณด์ ์ ์ํด ์ผ์ชฝlayoutMargin
์์ฑ์ ์ฌ์ฉํ์ต๋๋ค.
๋ฌธ์ ํด๊ฒฐ ๊ธฐ๋ก : UIStackView์ ContentsInset ์ฃผ๊ธฐ -
๋ธ๋ญ ์ถ๊ฐํ๋ฉด ์์ ๋ช TextField ๊ธ์์ ์ ํ ๋ก์ง ์ถ๊ฐ
UITextFieldDelegate
์shouldChangeCharactersIn
๋ฉ์๋๋ฅผ ์ฌ์ฉํด ๊ธ์์ ์ ํ ๋ก์ง์ ์ถ๊ฐํ์ต๋๋ค.
- SelectForm Tap ์ ์ค์ฒ ์ถ๊ฐ ๋ฐ ํ๋ฉด ์ฐ๊ฒฐ
-
๋ธ๋ญ ์ถ๊ฐ ๋ฒํผ focusing ์ํ์์ trackingButton ๋นํ์ฑํ
ํ๋กํผํฐ ์ต์ ๋ฒ๋ฅผ ํ์ฉํด blockIndex(ํ์ฌ ์ธ๋ฑ์ค)์ผ ๋trackingButton
์ ๋นํ์ฑํ ํ์ต๋๋ค. -
ํ ์คํธ ๋ถ์ฌ๋ฃ๊ธฐ ๋นํ์ฑํ
๊ธฐ์กด ๊ตฌํ ๋ฐฉํฅ์ ์ต๋ ๊ธ์์ 18์๋ฅผ ๋๊ธด ์ํ๋ก ๋ถ์ฌ๋ฃ๊ธฐ ํ ์, 18์๋งํผ๋ง ์๋ ค ๋ถ์ฌ์ง๋ ๊ธฐ๋ฅ์ด์์ง๋ง
๊ธฐ๋ฅ ๊ตฌํ์ ์ด๋ ค์์ ๊ฒช์ด ์ผ์ ์ ๋ถ์ฌ๋ฃ๊ธฐ ๋นํ์ฑํ ๊ธฐ๋ฅ์ผ๋ก ๋์ฒดํ์ต๋๋ค.
์ถํ ์ ๋ฐ์ดํธ ์งํ ์์ ์ ๋๋ค.
-
CustomBottomModal ์ถ๊ฐ
์๋์์ ๋ฐ๋ง ์ฌ๋ผ์ค๋CustomBottomModal
์ ์ถ๊ฐํ์ต๋๋ค.
์ ํ์์ ๊ณต์์ ์ผ๋ก ์ง์ํ๋UISheetPresentationController
๋ฅผ ์ฌ์ฉํ ์๋ ์์์ง๋ง,
iOS 15.0 ๋ถํฐ ์ง์ํ๋ ๊ธฐ๋ฅ์ด๊ธฐ ๋๋ฌธ์ ํด๋น ๋ฐฉ๋ฒ์ ์ ํํ์ต๋๋ค. ์ฐธ๊ณ ๋ ํผ๋ฐ์ค -
ConfirmButton ์ปดํฌ๋ํธํ
+ ํ๋ก์ ํธ ๊ธฐ๊ฐ ์ ๊ฒ
๊ธ์ผ๊น์ง ๋ธ๋ญ ์ถ๊ฐ์ ํ์ํ ๋ชจ๋ ํ๋ฉด์ ๊ตฌ์ฑํ๋ ๊ฒ์ด ๊ณํ์ด์์ง๋ง ๋ฌ์ฑํ์ง ๋ชปํ์ต๋๋ค.
BlockManager
์ ํจ๊ณผ์ ์ธ ์ค๊ณ๋ฅผ ์ํด ํด๋น ๊ธฐ๋ฅ๊ฐ๋ฐ ๊ธฐ๊ฐ์ 2์ผ์์ 7์ผ๋ก ์ฐ์ฅํ๊ธฐ๋ก ๊ฒฐ์ ํ์ต๋๋ค. ~04.21
์ ์ฃผ ๊ณํ๊น์ง๋ ์์กฐ๋กญ๊ฒ ์งํ์ด ๋์์์ง๋ง ์ ์ ์ปค์ง๋ค๋ณด๋ ๊ฐ๋ฐ ์๋๊ฐ ๋๋ ค์ง๊ณ ์๋ ๊ฒ์ด ์ฃผ์ํ ์ด์ ๋ก ์์๋ฉ๋๋ค.
-
BlockManager ๊ตฌ์กฐ ๋ณ๊ฒฝ(์ฑ๊ธํค)
ํ๋ฉด ๊ฐ ํจ๊ณผ์ ์ธ ์ ๋ฐ์ดํธ๋ฅผ ์ํด `BlockManager'๋ฅผ ์ฑ๊ธํค ๊ตฌ์กฐ๋ก ๋ณ๊ฒฝํ์ต๋๋ค.
ํ์ฌ ๋ธ๋ญ ๊ฒ์์ ๋ฐฐ์ด์ ์๋ถ๋ถ๋ถํฐ ์ฐพ์ ๋๊น์ง ๋๊ธฐ ๋๋ฌธ์ ์ถํ ๋ ํจ๊ณผ์ ์ธ ์๊ณ ๋ฆฌ์ฆ ๊ตฌํ์ด ํ์ํฉ๋๋ค. -
SelectGroupVIew TableView ๊ธฐ๋ณธ๊ฐ ์ ํ
- ActionButton, ActionStackView ์ปดํฌ๋ํธํ
-
CreateGroup ConfirmBarButtonItem ์ปค์คํ
๋ฌธ์ ํด๊ฒฐ ๊ธฐ๋ก : UIBarButtonItem์ title font ์ปค์คํ ํ๊ธฐ -
๊ทธ๋ฃน ์ ํ ๊ธฐ๋ฅ ์ถ๊ฐ
ํ์ฌ CreateBlockView์ HomeView์ ๊ณต์ ํ๋ฉฐ ์ฌ์ฉํ๊ณ ์๊ธฐ ๋๋ฌธ์ ํด๋์ค ๋ด ๋ถ๊ธฐ์ฒ๋ฆฌ๊ฐ ํ์ํฉ๋๋ค.
-
๊ทธ๋ฃน ์ ํ ๊ธฐ๋ฅ ์์
createBlockViewController์ ์์ ์ ์กฐ์ ํ์ฌ ๊ทธ๋ฃน ์ ํ ๊ธฐ๋ฅ ์์ ์๋ฃํ์ต๋๋ค. -
SelectColor CollectionView ์ ํ
-
ColorManager ์์ฑ
์์ ์ ํ์ ์ํ ์ปฌ๋ฌ ํ๋ ํธ๋ฅผ 50๊ฐ ์ถ๊ฐํ์์ต๋๋ค. -
Color ์ ํ ์ ์ ๋ฐ์ดํธ
-
Group Color ์ฌ์ฉ
๊ธฐ์กด ๋ธ๋ญ๋ง๋ค ๊ฐ๋ณ ์ปฌ๋ฌ๋ฅผ ๊ฐ์ง๊ณ ์์์ง๋ง, ๊ทธ๋ฃน๋ง๋ค ์ปฌ๋ฌ๋ฅผ ์ง์ ํ๋ ๊ฒ์ด
๋ ํจ๊ณผ์ ์ ๊ฒ์ผ๋ก ํ๋จํด ์ ์ฒด์ ์ธ ๊ตฌ์กฐ๋ฅผ ๊ฐ์ ํจ๊ณผ ๋์์ ์์ ํ์ต๋๋ค.
+ ํ๋ก์ ํธ ๊ธฐ๊ฐ ์ ๊ฒ
์๋ ์ผ์ ๋๋ก๋ผ๋ฉด ์ค๋ ํต๊ณ ํ์ด์ง๋ฅผ ๋ชจ๋ ์์ฑํ์ด์ผ ํฉ๋๋ค. ์กฐ์ ๋ ์ผ์ ์ ๋ฐ์ํ์์์๋ ๋ถ๊ตฌํ๊ณ ๊ธฐ๋ฅ ๊ฐ๋ฐ์ ์๊ฐ์ด ๋ ํ์ํ ๊ฒ์ผ๋ก ํ๋จํด
๋ฐ๋๋ผ์ธ์ ๋๋ฆฌ๋ ๋ฐฉ๋ฒ๊ณผ, ๊ธฐ๋ฅ ๊ฐ๋ฐ์ ๋ํญ ์ถ์ํด ๋ฐฐํฌํ๋ ๋จ๊ณ๋ก ๋๋์ด ์ ํ์ด ํ์ํฉ๋๋ค.
์ฒซ APP ๊ฐ๋ฐ์ด๋ผ ๊ธฐ๋ฅ ๊ฐ๋ฐ์ ์์๋๋ ์๊ฐ์ ์ ํํ ๊ณ์ฐํ์ง ๋ชปํ๊ฒ ์์ฌ์์ผ๋ก ๋จ์ต๋๋ค.
+ ํ๋ก์ ํธ ๊ธฐ๊ฐ ์ ๊ฒ
๊ฐ๋ฐ ๊ธฐ๊ฐ์ ๋ ์ฐ์ฅํ๊ฒ ๋์์ต๋๋ค.
๋ชฉํ๋ก ๋๊ณ ์๋ ์ ํ ๋๋ฒจ๋กํผ ์์นด๋ฐ๋ฏธ ์ง์์ ์์ฑ ๋ฐ ํ์ฌ ํ๋ก์ ํธ๋ฅผ ์ํด ์ ์ฒด ์ผ์ ์ ๋ฏธ๋ฃจ๊ธฐ๋ก ํ์ต๋๋ค.
๋ฐ๋๋ผ์ธ ์ผ์ ์ ๋ฒ๋ณตํ๋ ๊ฒ์ ์ข์ง ์์ต๋๋ค. ์ด๋ฒ ์ผ์ ๊ณ๊ธฐ๋ก ์ดํ ๊ณํ์ ์ธ์ธ ๋๋ ๋์ฑ ์ ์คํ ์ธ์ฐ๊ณ ์ ํฉ๋๋ค.
-
ํ์ด๋จธ ์นด์ดํธ ๋ฒ๊ทธ ์์
1800์ด(30๋ถ) ์ด์ ๋ถํฐ ํธ๋ํน์ด ์ ์์ ์ผ๋ก ์งํ๋์ง ์๋ ์ค๋ฅ๋ฅผ ์์ ํ์ต๋๋ค. -
CustomDelegate ํ์ผ ์์ฑ
๊ธฐ์กด ํด๋์ค ์์ protocol ์์ฑ ํ ๊ด๋ฆฌํ๋ ๋ฐฉ์์์, CustomDelegate ํ์ผ์ ์์ฑํด ํ๋๋ก ๊ด๋ฆฌํ๋ ๋ฐฉ์์ผ๋ก ๋ณ๊ฒฝํ์ต๋๋ค. -
SelectColor ๊ตฌํ
-
TrackingButton ์ํ๊ฐ ๋ฒ๊ทธ ์์
TrackingButton ํ์ฑํ ๋ฌธ์ ๋ก ๊ทธ๋ฃน ์ ํ ์ 0๋ฒ์งธ ์ธ๋ฑ์ค๋ก ์ ํ๋๋๋ก ์์ ํ์ต๋๋ค. -
SFSymbol Manger ์์ฑ
ํ์ฌ ๊ฑฐ์ ๋ชจ๋ symbol์ ๊ฐ์ง๊ณ ์ SymbolManager๋ฅผ ์์ฑํ์ต๋๋ค. .fill ์ํ์ ์์ด์ฝ๋ง ๊ฐ์ง๊ณ ์์ผ๋ฉฐ, ์ถํ ์นดํ ๊ณ ๋ฆฌ๋ณ๋ก ๊ทธ๋ฃนํ ํด ์์ด์ฝ ์ ๊ณต ์์ ์ ๋๋ค. -
SelectIcon ๊ตฌํ
-
CreateBlock BarButtonItem ์ถ๊ฐ
-
Create New Block ๊ธฐ๋ฅ ์ถ๊ฐ
์ ๋ธ๋ญ ์์ฑ ๊ธฐ๋ฅ์ ์ถ๊ฐํ์ต๋๋ค. ๋ํ ์์ํ trackingButton ํ์ฑํ ์ค๋ฅ๋ฅผ ์์ ํ์ต๋๋ค.
- HomeView ๋ธ๋ญ ํฐ์น ์ ํ๋ฉด ์ ํ ์ด๋ฒคํธ ์ถ๊ฐ
๋ธ๋ญ ํฐ์น ์, ํด๋น ์์ดํ ์ผ๋ก ํ๋ฉด ์ ํ์ด ๋๋ ๊ธฐ๋ฅ์ ์ถ๊ฐํ์ต๋๋ค.
๋ํ ๊ฐ๋ณ ๋ธ๋ญ ํฐ์น ์ด๋ฒคํธ๋ฅผ ๋ง๋ค๊ธฐ ์ํด ํฌ์ปค์ฑ ๋์ง ์์์ ๋๋ ์ ์ด ๋๋ฆฌ์ง ์๋๋ก ๊ตฌํํด๋์์ต๋๋ค.
-
๋ค์ ํ๋ก์ ํธ ์์
ํ์ฌ ํ๋ก์ ํธ๋ฅผ ๋ง๋ฌด๋ฆฌํ๊ณ , ๋ค์ ๊ฐ์ธ ํ๋ก์ ํธ๋ก ๋ณต๊ทํ์ต๋๋ค. ์๊ฐ์ด ๋ง์ด ์ง๋ ์ฝ๋๋ฅผ ๋ค์ ์ฒ์ฒํ ๋ฏ์ด๋ณด๋ฉฐ ํ์ ํ ์๊ฐ์ ๊ฐ์ก์ต๋๋ค. -
CoreData ๊ตฌํ
ํต์ฌ ๋น์ฆ๋์ค ๋ก์ง์ธGroup
,Block
๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๊ธฐ ์ํ CoreData๋ฅผ ๊ตฌํํ์์ต๋๋ค. ์ฒ์ ๊ตฌํํด๋ณด๋ ๊ธฐ๋ฅ์ด์๊ธฐ์ ์ํ์ฐฉ์ค๊ฐ ๊ฝค๋ ๊ธธ์ด์ก์ง๋ง, ๊ด๊ณํ ์ค์ ์ ํตํด ํด๊ฒฐํ์ต๋๋ค. ์ฐ์ ๊ธฐ๋ณธ์ ์ธ ๋ฐ์ดํฐ๋ฅผ ์ฝ๊ณ (READ) ์์ฑํ๋(CREATE) ๊ธฐ๋ฅ๋ง์ ๊ตฌํํด๋์๊ณ , ์ถํ ์์ ๊ณผ ์ญ์ ๊ธฐ๋ฅ์ ์ถ๊ฐํ ์์ ์ ๋๋ค.
- BlockCollectionViewCell ๋ค์ง๊ธฐ ๋ชจ๋ ๊ตฌํ
๋ธ๋ญ์ ์ญ์ , ํธ์งํ๊ธฐ ์ํ ๋ค์ง๊ธฐ ๋ชจ๋๋ฅผ ๊ตฌํํ์ต๋๋ค. ํ์ฌ ํด๋ฆญ ์ ์ ์ UI๋ฅผ ์ ๋ฐ์ดํธ ํ Closure๋ฅผ ์ด์ฉํ ๋ฒํผ ์ฐ๊ฒฐ๊น์ง ์๋ฃํ์ต๋๋ค. ๋ถ๋๋ฌ์ด ์ ํ์ ์ํ Alpha๊ฐ์ ์ด์ฉํ ์ ๋๋ฉ์ด์ ์ ์ถ๊ฐํ์ต๋๋ค. ์ถํ CoreData์ ์ฐ๊ฒฐํด ์ญ์ ๋ฐ ํธ์ง ๊ธฐ๋ฅ ์ถ๊ฐ ์์ ์ ๋๋ค.
- BlockEntity ์ญ์ , ์์ ๊ธฐ๋ฅ ์ถ๊ฐ
CoreData์ ์ฐ๋๋์ด BlockEntity๋ฅผ ์ญ์ ํ ์ ์๋ ๊ธฐ๋ฅ์ ์ถ๊ฐํ์ต๋๋ค.
- BlockEntity ์ญ์ ํ์ธ ํ์
์ถ๊ฐ
UX ํฅ์์ ์ํ Block ์ญ์ ์ ํ์ธ ํ์ ์ ์ถ๊ฐํ์ต๋๋ค.
-
๋ธ๋ญ ๊ทธ๋ฃน ๊ฐ ์ด๋ ๊ธฐ๋ฅ ๊ฐ๋ฐ
A๊ทธ๋ฃน์์ B๊ทธ๋ฃน์ผ๋ก ์ด๋ํ ์ ์๋๋ก ์ฝ์ด๋ฐ์ดํฐ๋ฅผ ์กฐ์ํด ๊ธฐ๋ฅ์ ๊ตฌํํ์ต๋๋ค. -
Group ์ปจํธ๋กค์ ์ํ CustomUIMenu ์ถ๊ฐ Group ์์ฑ, ํธ์ง, ์ญ์ ๊ธฐ๋ฅ ํ๋ฉด์ผ๋ก์ ์ด๋์ ์ํ CustomUIMenu ์ปดํฌ๋ํธ๋ฅผ ์ถ๊ฐํ์ต๋๋ค. ์ ํ์ด ์ง์ํ๋ ๊ธฐ์กด์ UIMenu๋ฅผ ์ฌ์ฉํ ์๋ ์์์ง๋ง, ์๋น์ค์ ์ ์ฒด์ ์ธ ํค์ค๋งค๋์ ๋ง์ง ์๋ค๊ณ ํ๋จํด Custom์ผ๋ก ์ ์ํ์ต๋๋ค.
- ๊ทธ๋ฃน ํธ์ง ๊ธฐ๋ฅ ์ถ๊ฐ
๊ทธ๋ฃน ์ญ์ ๋ฐ ํธ์ง์ด ๊ฐ๋ฅํ ํ์ด์ง๋ฅผ ์ถ๊ฐํ์ต๋๋ค. ๊ณ ๋ฏผํด๋ณผ ์ฌํญ์ ํ์ฌ ๊ทธ๋ฃน ์ญ์ ๋ฅผ ํ๊ธฐ ์ํด์๋ Depth๊ฐ ๋ถํ์ํ๊ฒ ๊น์ด์ง๋ค๊ณ ํ๋จ๋์ด ์ถํ ์์ ํด๋ณผ ์์ ์ ๋๋ค.
-
CollectionView ์คํฌ๋กค ๋ฌธ์ ํด๊ฒฐ
Select๋ ๋์ง๋ง, Scroll์ด ๋์ง ์์๋ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ์ต๋๋ค. View ์ ๋ฐ์ดํธ์ ๊ด๋ จ๋ ์ด์๋กviewDidLayoutSubviews
๋ฉ์๋๋ฅผ ์ด์ฉํด ํด๊ฒฐํ์ต๋๋ค.๋ฌธ์ ํด๊ฒฐ ๊ธฐ๋ก : UICollectionView ์ ํ๋ item์ผ๋ก ์คํฌ๋กค์ด ์๋๋ ๋ฌธ์
-
๊ทธ๋ฃน ํธ์ง ์, UI ์ ๋ฐ์ดํธ ๋์ง ์๋ ๋ฌธ์ ์์
NotificationCenter๋ฅผ ํ์ฉํด ๊ทธ๋ฃน์ด ์ ๋ฐ์ดํธ ๋๋ ์์ ์ ๋ง์ถฐ HomeViewController์ UI๋ฅผ ์ ๋ฐ์ดํธ ํด์ฃผ์์ต๋๋ค.
-
TrackingBlock LongPressGesture ์ ๋๋ฉ์ด์ ์ถ๊ฐ
ํธ๋ํน์ด ๋๋๊ณ ์ง๊ธ๊น์ง ์์ฐํ ๋ธ๋ญ์ ์ ์ฅํ๋ ์ด๋ฒคํธ์ธLongPressGesture Animation
์ ์ถ๊ฐํ์ต๋๋ค. ํ์ง๋ง ์ฒ์ ์ฌ์ฉํ๋ ์ฌ์ฉ์์๊ฒ ํด๋น ์ด๋ฒคํธ๋ ์ง๊ด์ ์ด์ง ์๋ค๊ณ ํ๋จํด ์ด๊ธฐ ์จ๋ณด๋ฉ ์งํ ๋ฐ ์๋ด ๋ฒํผ์ ์ถ๊ฐํ ์์ ์ ๋๋ค. -
๊ทธ๋ฃน ์์ ์ ๋ธ๋ญ ์์ฑ UI ํ๋ฉด ์ ๋ฐ์ดํธ๊ฐ ๋์ง ์๋ ๋ฒ๊ทธ ์์
NotificationCenter
๋ฅผ ํ์ฉํด ๋ธ๋ญ ์์ฑ ํ๋ฉด์์ UI ์ ๋ฐ์ดํธ๊ฐ ๋์ง ์๋ ๋ฒ๊ทธ๋ฅผ ์์ ํ์ต๋๋ค.
-
๊ทธ๋ฃน ๋ด ๋์ผํ ์์ ๋ช ๋ธ๋ญ ์์ ์ ์์ฑ ๋ฐ ์ด๋ ์ ํ
๋ธ๋ญ ์๋ณ์ ์ํด ๊ทธ๋ฃน ๋ด ๋์ผํ ์์ ๋ช ์ ๋ธ๋ญ์ ์์ฑ์ ์ ํ์ํค๋ ๊ท์น์ ๋ง๋ค์๊ณ , ์ด๋ฅผ ๋ก์ง์ ์ ์ฉํ์ต๋๋ค. ์ฌ์ฉ์์๊ฒ ๋์ผํ ์์ ๋ช ์ ์ฌ์ฉ์ด ๋ถ๊ฐ๋ฅ ํ๋ค๋ ํผ๋๋ฐฑ์ ๋น ๋ฅด๊ฒ ์ฃผ๊ณ ์ TextField ์ ๋ ฅ ์ค ์ถ๋ ฅ๋๋๋ก ๊ตฌํํ์ต๋๋ค. -
๋์ผํ ๊ทธ๋ฃน๋ช ์์ฑ ๋ฐ ํธ์ง ์ ํ
๊ทธ๋ฃน ์๋ณ์ ์ํด ๋์ผํ ๊ทธ๋ฃน๋ช ์์ฑ์ ์ ํ์ํค๋ ๊ท์น์ ๋ง๋ค์๊ณ , ์ด๋ฅผ ๋ก์ง์ ์ ์ฉํ์ต๋๋ค. ๋ธ๋ญ ์์ฑ ์ ํ ๊ฒฝํ๊ณผ ๋์ผํ๊ฒ ๊ตฌํํ์ต๋๋ค.
- ์์ด์ฝ, ์ปฌ๋ฌ ์ ํ CollectionView Inset ์กฐ์
์์ ํ๋ฉด์ ๊ฐ์ง ๋๋ฐ์ด์ค์์ ๋ชจ์๋ฆฌ์ชฝ ํ ๋๋ฆฌ๊ฐ ์๋ฆฌ๋ ํ์์ ์์ ํ์ต๋๋ค.
-
Tracking ํ์ ํน์
0์ด๋ถํฐ 86,400์ด๋ฅผ ๊ธฐ์ค์ผ๋ก ํ์ฌ ์ด๋ค ๋ธ๋ญ์ ํธ๋ํนํ ์ง ์ค์ ํ๊ณ ๊ด๋ฆฌํ๋ TrackingManager ์ฑ๊ธํค ํด๋์ค๋ฅผ ๊ตฌํํ์ต๋๋ค. -
Tracking Animation ์ถ๊ฐ
ํ์ฌ ํธ๋ํน ๋๊ณ ์๋ค๋ ๊ฒ์ ์๊ฐ์ ์ผ๋ก ์๋ฆฌ๊ธฐ ์ํด, 1์ด ๊ฐ๊ฒฉ์ผ๋ก ๋ฌดํํ ๋ฐ๋ณตํ๋ ์ ๋๋ฉ์ด์ ์ ์ถ๊ฐํ์ต๋๋ค.
- TrackingCompleteView ํผ๋ธ๋ฆฌ์ฑ
ํธ๋ํน ์๋ฃ ํ๋ฉด UI ๋์์ธ ๋ฐ ํผ๋ธ๋ฆฌ์ฑ์ ์๋ฃํ์ต๋๋ค.
- TrackingData CoreData ๋ก์ง ๊ตฌํ
ํธ๋ํน ๋ฐ์ดํฐ ์ ์ฅ์ ์ํ ๋ก์ง์ ์ฌ๊ตฌ์ฑํ์ต๋๋ค. Group - Block - TrackingDate - TrackingTime ์์ผ๋ก ์ด์ด์ง ๋ฐ์ดํฐ ํ์ ์ ์์ฑํ๊ณ , ์ด๋ฅผ CRUD ํ ์ ์๊ฒ ๊ตฌํํ์ต๋๋ค. ๊ฐ์ฅ ์๊ฐ์ด ์ค๋ ๊ฑธ๋ฆฐ ๊ตฌํ ์์ ์ด์๋ ๊ฒ ๊ฐ์ต๋๋ค.
-
ํธ๋ํน ๋ชจ๋ ํ ์คํธ๋ฅผ ์ํ ์ธํ
30๋ถ ๋จ์๋ก ํธ๋ํน์ด ๋๊ณ ํด๋น ์๊ฐ์ ๋ง๊ฒ ํธ๋ํน ๋ฐ์ดํฐ๊ฐ ์ ์ฅ๋๋ค๋ณด๋ ์ด๋ฅผ ํ ์คํธ ํ๊ธฐ ์ํด 30๋ถ ์ด์์ ์๊ฐ์ด ๋งค๋ฒ ์์๋์์ต๋๋ค. ํ์ฌ ๊ฐ๋จํ ์ ๋๋ฉ์ด์ ๋ฐ ๋์ ํ ์คํธ๋ฅผ ์ํํ ํ ์ ์๋๋ก ํ ์คํธ ๋ฐ์ดํฐ ์ ๊ณผ ์๊ฐ์ ์ค์ ํด ๋น ๋ฅธ ํ ์คํธ๋ฅผ ๊ฐ๋ฅํ๋๋ก ๊ตฌํํ์ต๋๋ค. -
๋ฐฑ๊ทธ๋ผ์ด๋ ๋ฐ ์ฑ ์ข ๋ฃ๋์์ ๋ ํธ๋ํน ๋ชจ๋ ๊ธฐ๋ฅ ๊ตฌํ
๋ฐฑ๊ทธ๋ผ์ด๋ ๋ฐ ์ฑ์ด ์ข ๋ฃ๋์์ ๋๋ ํธ๋ํน ์๊ฐ์ด ๊ฐ ์ ์๋๋ก ๊ธฐ๋ฅ์ ๊ตฌํํ์ต๋๋ค. ๋ฐฑ๊ทธ๋ผ์ด๋๋ ๊ธฐ์กด ๋ฐ์ดํฐ๊ฐ ๋ ์๊ฐ์ง ์์ ๋น๊ต์ ์ฌ์ ์ง๋ง, ์ฑ์ด ์ข ๋ฃ๋์์ ๋๋ UserDefaults ๋ฐ์ดํฐ๋ฅผ ์ฌ์ฉํด ์ค์ ํด์ฃผ์ด์ผํ ๋ถ๋ถ์ด ๋ง์ ์์ ๋ณด๋ค ๊ฐ๋ฐ ์๊ฐ์ด ๋์ด๋ฌ์ต๋๋ค. -
๊ทธ๋ฃน ๊ฐ ์ด๋ ๊ธฐ๋ฅ ๊ตฌํ
๊ทธ๋ฃน ๋ฆฌ์คํธ ํ์ด์ง์์ Drag&Drop ๊ธฐ๋ฅ์ผ๋ก ์์น ๋ณ๊ฒฝ ๊ธฐ๋ฅ์ ๊ตฌํํ์ต๋๋ค. TableView์ Delegate ๋ฉ์๋๋ฅผ ์ด์ฉํด ์ฝ๊ฒ ๊ตฌํํ ์ ์์์ง๋ง, ์ฝ์ด๋ฐ์ดํฐ์ ์์๋ ๋ณ๊ฒฝํด์ค์ผํ๋ ๋ก์ง์ ์ํด order ํ๋กํผํฐ๋ฅผ ์ถ๊ฐํ๊ณ , Request๋ฅผ ๋ ๋ฆด ๋NSSortDescriptor
๋ฅผ ์ฌ์ฉํ์ฌ ์ค๋ฆ์ฐจ์ ์ ๋ ฌ ๋ก์ง์ ์ ์ฉํ์ต๋๋ค. -
๊ด๋ฆฌ์ UI ๋์์ธ
๊ทธ๋ฃน ๋ฐ ๋ธ๋ญ์ ์ ๋ณด๋ฅผ ํ์ธํ๊ณ ์์, ์ ๋ณด ๋ฑ์ ์์ ํ ์ ์๋ ๊ด๋ฆฌ์ ํ์ด์ง์ UI ๋์์ธ์ ์๋ฃํ์ต๋๋ค.
- ManageBlockViewController ํผ๋ธ๋ฆฌ์ฑ
๋ธ๋ญ ๋ฐ ๊ทธ๋ฃน ๊ด๋ฆฌ ํ์ด์ง๋ฅผ ์ํ ํผ๋ธ๋ฆฌ์ฑ์ ์๋ฃํ์ต๋๋ค. UITableView์ Header, Footer ๊ธฐ๋ฅ์ ํ์ฉํ์ฌ ๊ตฌํํ์ต๋๋ค.
- ManageBlockViewController ์
์ด๋ ๋ก์ง ๊ตฌํ
๋ธ๋ญ ์ ์ ์ด๋ํด ์์๋ฅผ ๋ฐ๊พธ๋ ๊ธฐ๋ฅ์ ๊ตฌํํ์ต๋๋ค. CoreData์์ ์์๋ฅผ ๋ณด์ฅํด์ฃผ์ง ์์ order ํ๋กํผํฐ๋ฅผ ๋ง๋ค์ด ์ ๋ฐ์ดํธํด์ฃผ๋ ์์ผ๋ก ์งํํ์ต๋๋ค.
- RepositoryViewController ๊ตฌํ
์ธ์ฃผ ๊ฐ๋ฐ์ ๋ง์น ํ ๋ค์ ๋ณธ๊ฒฉ์ ์ธ ๊ฐ์ธ APP ์์ ์ ๋ค์ด๊ฐ์ต๋๋ค. ํด๋น ๋ ์ง์ ์ด๋ค ํธ๋ํน ๋ธ๋ญ์ ์์ฐํ๋์ง ํ์ธ์ด ๊ฐ๋ฅํRepositoryViewController
๋ฅผ ๊ตฌ์ฑํ์ต๋๋ค.FSCalendar
๋ฅผ ์ฌ์ฉํด ๋ฌ๋ ฅ ๊ธฐ๋ฅ์ ๊ตฌํํ์ต๋๋ค. ๊ฐ๊ฐ์ ์ ์ปค์คํ ์ ์ํด ์ฌ๋ฌ๊ฐ์ง ๋ฉ์๋๋ค์ ํ์ฉํ์ต๋๋ค. ์ถ๊ฐ๋กSummaryView
๋ฐฐ์นํ์ต๋๋ค.
- RepositoryViewController ํธ๋ํน ๋ฐ์ดํฐ ์ฐ๊ฒฐ ์๋ฃ
ํธ๋ํน ๋ฐ์ดํฐ์ ๋ฐ๋ผ UI ์ ๋ฐ์ดํธ๋ฅผ ์งํํ์ต๋๋ค. ํด๋น ๋ ์ง์ ํธ๋ํน ๋ฐ์ดํฐ๋ฅผ ์์ ์๊ฐ์ด ๋น ๋ฅธ ์์ ์ ๋ ฌ๋ก ์ถ๋ ฅํ์๊ณ , ์์ฐํ ๋ธ๋ญ ํ์ ์ ๊ฐ์๋ง๋ค ์์์ ์ ์ฉํด ์๊ฐํํ์ต๋๋ค.
- MyPageViewController ํผ๋ธ๋ฆฌ์ฑ
MyPageViewController
๋ฅผ ์์ฑํ์ต๋๋ค. ์ ์ฒด ์์ฐ๋, ์ค๋ ์์ฐ๋, ์ฐ์ ์์ฐ๋์ ์๊ฐํํด ๋ณด์ฌ์ฃผ๊ณ ๊ฐ์ข ์ค์ ๋ฐ ์ ๋ณด๋ฅผ ํ์ธ ํ ์ ์๋ TableView๋ฅผ ์์ฑํ์ต๋๋ค. ๋๊ฐ ์ด์์UITableViewDelegate
๋ฅผ ๋๊ฐ์ ํ ์ด๋ธ์ ์ ์ฉํ๊ธฐ ์ํดtag
์์ฑ์ ์ฌ์ฉํด ๊ตฌ๋ถํ์ต๋๋ค.
- ์ด๊ธฐํ ๊ธฐ๋ฅ ๊ตฌํ
๋ชจ๋ ๊ทธ๋ฃน, ๋ธ๋ญ, ํธ๋ํน ๋ฐ์ดํฐ๋ฅผ ์ญ์ ํ๋ ์ด๊ธฐํ ๊ธฐ๋ฅ์ ๊ตฌํํ์ต๋๋ค. ์ํ๋๊ฐ ๋์ ํ๋์ธ๋งํผ, ์ด 3๋ฒ ํญ์ ํตํด ์ด๊ธฐํ ํ ์ ์๊ฒ UX๋ฅผ ๊ตฌ์ฑํ์ต๋๋ค.
- ์ด๋ฉ์ผ ๋ฌธ์ ๊ธฐ๋ฅ ๊ตฌํ
๊ฐ์ข ๋ฌธ์ ์ ๋ณด๋ฅผ ๋ฐ๊ธฐ ์ํ ์ด๋ฉ์ผ ๋ฌธ์ ๊ธฐ๋ฅ์ ๊ตฌํํ์ต๋๋ค. ๊ธฐ๋ณธ ๋ฉ์ผ ์ฑ ์ฌ์ฉ ๋ถ๊ฐ ์, ๊ฒฝ๊ณ ๋ฉ์์ง๋ฅผ ์ถ๋ ฅํ๋๋ก ๊ตฌํํ์ต๋๋ค.
-
ํ ํฑ ํผ๋๋ฐฑ ๊ตฌํ
UX ํฅ์์ ์ํด ๊ฐ์ข ์ฑ๊ณต, ๊ฒฝ๊ณ ๋ฐ ์ค์ ํญ ์ด๋ฒคํธ์ ํ ํฑ(์ง๋) ์ด๋ฒคํธ๋ฅผ ๊ตฌํํ์ต๋๋ค. -
์จ๋ณด๋ฉ UI ๋์์ธ
APP ์ด๊ธฐ ์ค์น ์ ์ฌ์ฉ ๋ฐฉ๋ฒ ์๋ด๋ฅผ ์ํ ์จ๋ณด๋ฉ ํ์ด์ง ๋์์ธ์ ์๋ฃํ์ต๋๋ค.
-
์จ๋ณด๋ฉ ๋ก์ง ๊ตฌํ
์จ๋ณด๋ฉ์ ์ต์ด 1ํ ์คํ๋๋ฉฐ, ๋์๋ง์์ ํด๋น ๋ด์ฉ์ ๋ค์ ์ด๋ํ ์ ์๊ฒ ๊ตฌํํ์ต๋๋ค. -
ํธ๋ํน ์๋ฃ ์ ๋๋ฉ์ด์ ์ ๋ฐ์ดํธ
๊ธฐ์กด ๋จ์กฐ๋ก์ ๋ ์ ๋๋ฉ์ด์ ์ ์ฌ๋ฌ๊ฐ์ง ํจ๊ณผ๋ฅผ ๋ํด ์ฌ์ฉ์ ์ฌ๋ฏธ๋ฅผ ๋ํ์ต๋๋ค.
-
๋ฐฑ๊ทธ๋ผ์ด๋ ํ๊ฒฝ์์์ ํธ๋ํน ๋ก์ง ์์
APP์ด ์ข ๋ฃ๋์์ ๋์, background๋ก ์ ํ๋์์ ๋ ํธ๋ํน์ด ์ ์์ ์ผ๋ก ์์ง๋์ง ์๋ ํ์์ ์์ ํ์ต๋๋ค. ๊ธฐ์กด ์ค์ ์๊ฐ์ ๋ง์ถ ํ ์คํธ ํ๊ฒฝ์ ๊ฐ์ ํ๊ณ ์, ๋๋ฐ์ด์ค์ ๋ ์ง ๋ฐ ์๊ฐ ์ค์ ์ ์กฐ์ ํด ํ ์คํธ ํ๋ ๋ฐฉ์์ผ๋ก ๋ณ๊ฒฝํ์ต๋๋ค. -
ํธ๋ํน ๋ณด๋ ์ ๋ฐ์ดํธ
๊ธฐ์กด ํธ๋ํน ๋ณด๋ ๋ก์ง์ ์์ ํ ๋ณ๊ฒฝํ์ต๋๋ค. "18:00", "18:30"์ ์ค์ ์๊ฐ ํ์์ผ๋ก ํธ๋ํน ๋ณด๋๋ฅผ ์กฐ์ ํ๋ ๊ธฐ์กด ๋ฐฉ์์์, 3500, 8700๊ณผ ๊ฐ์ ํ์ฌ ์ผ์๋ฅผ ๊ธฐ์ค์ผ๋ก ํ ์ด๋ฅผ ์ฐ๋ ๋ฐฉ์์ผ๋ก ๋ณ๊ฒฝํ๊ณ , ์ง๊ด์ ์ธ ์ ๋ฐ์ดํธ๋ฅผ ์ํด ๋ฉ์๋๋ฅผ ๋ณ๊ฒฝ ๋ฐ ์ถ๊ฐํ์ต๋๋ค.
-
SFSymbol ์น์ ์ถ๊ฐ
์ํํ ์์ด์ฝ ์ ํ์ ์ํด ์ ํ์ด ์ ๊ณตํ๋ ์นดํ ๊ณ ๋ฆฌ์ ๋ง์ถฐ ์น์ ๊ธฐ๋ฅ์ ์ถ๊ฐํ์ต๋๋ค. -
๋ฐฑ๊ทธ๋ผ์ด๋ + ์ผ์์ ์ง ํ๊ฒฝ์์ ํธ๋ํน ์ค๋จ ๊ธฐ๋ฅ ์ถ๊ฐ
๋ฐฑ๊ทธ๋ผ์ด๋์ ๋๊ฐ ์ํ์์ ์ผ์์ ์ง ์๊ฐ์ด 12์๊ฐ ์ด์ ๊ฒฝ๊ณผ ์, ํธ๋ํน์ ์ข ๋ฃํ๋ ๊ธฐ๋ฅ์ ์ถ๊ฐํ์ต๋๋ค. -
๊ธฐ๋ณธ ๊ทธ๋ฃน ์์ ๊ธฐ๋ฅ ์ถ๊ฐ
๊ธฐ์กด ๊ธฐ๋ณธ ๊ทธ๋ฃน์ ์์ ์์ ๋ถ๊ฐ๋ก ์ง์ ํด๋์์ง๋ง, ์์ ๋ก์ด ์ปค์คํ ์ ์ํด ๊ทธ๋ฃน๋ช ๋ฐ ์์์ ๋ฐ๊ฟ ์ ์๋๋ก ์ ๋ฐ์ดํธํ์ต๋๋ค. -
Grayscale ์ปฌ๋ฌ ์ธํธ ์ถ๊ฐ
Grayscale ์ปฌ๋ฌ ์ธํธ๋ฅผ ์ถ๊ฐํ์ต๋๋ค. -
ํ์๋ผ์ธ๋ทฐ ์ ์ ์จ ๋ฐ ์ด ์์ฐ๋ ๋ผ๋ฒจ ์ถ๊ฐ
์ ํํ ๋ ์ง์ ์ด ์์ฐ๋๊ณผ ํ๋ฃจ ๊ธฐ์ค ๋ชํผ์ผํธ์ ๋ธ๋ญ์ ์์ฐํ๋์ง ํ์ํด์ฃผ๋ ๋ผ๋ฒจ์ ์ถ๊ฐํ์ต๋๋ค.
-
๊ฐ์ธ์ ๋ณด์ฒ๋ฆฌ๋ฐฉ์นจ ์์ฑ
์ฑ์คํ ์ด ์ฌ์ฌ ์ ์ถ์ ์ํด์๋ ๊ฐ์ธ์ ๋ณด์ฒ๋ฆฌ๋ฐฉ์นจ์ด ํ์์ ์ผ๋ก ํ์ํ๋ค ํ์ฌ ๊ตฌ๊ธ๋ง์ ํตํด ์์ฑ, Github์ ์ ๋ก๋ํ์ต๋๋ค.
Privacy Policy ๊ฐ์ธ์ ๋ณด์ฒ๋ฆฌ๋ฐฉ์นจ -
์ฌ์ฌ ์ ์ถ ๋ฐ ์น์ธ ์๋ฃ
๊ฐ์ธ์ ๋ณด์ฒ๋ฆฌ๋ฐฉ์นจ, ์ฑ์คํฌ๋ฆฐ์ท, ๊ฐ์ข ์ ๋ณด๋ฅผ ๊ธฐ์ ํ ์ฌ์ฌ๋ฅผ ์ ์ถํ๊ณ , ๋๋ต 5~6์๊ฐ ๋ง์ ์น์ธ์ด ๋์์ต๋๋ค.