์ฑ์คํ ์ด: https://apps.apple.com/us/app/์ผ์ดํฌํฌ/id6449973946
iOS | iOS | Android | Android |
---|---|---|---|
์ด์น๊ธฐ | ๊น๋ํฉ | ์ค์์ | ์ด์ค๊ฒฝ |
@WallabyStuff | @Mason Kim | @Wonseok | @lee989898 |
Designer | Designer | Backend | Backend |
---|---|---|---|
์ค์น๋ฏผ | ๊นํ๋ | ๋ฐ์๋ฏผ | ๋ฐฐ์งํ |
@5m_____o | @hae_na_a | @Youngmin Park | @govl6113 |
ํ๋ก์ ํธ ๊ธฐ๊ฐ : 23.03.11 ~
- ์ง๋๋ฅผ ์์ง์ฌ ์๋ก๊ณ ์นจํ์ฌ ์ผ์ดํฌ์ต๋ค์ ์กฐํํ ์ ์์ด์.
- ํํฐ๋ฅผ ์ ์ฉ์์ผ ์ํ๋ ์ข ๋ฅ์ ์ผ์ดํฌ๋ฅผ ์ทจ๊ธํ๋ ์ผ์ดํฌ์ต๋ค๋ง ์กฐํํ ์ ์์ด์.
- ์ผ์ดํฌ์ต๋ค์ ์ง์ญ๋ณ๋ก ๋ฌถ์ด์ ์ฝ๊ณ ๋น ๋ฅด๊ฒ ์กฐํํ ์ ์์ด์
- ํผ๋ ํ๋ฉด์ ํตํด ์ฌ๋ฌ ์ผ์ดํฌ์ต์ ์ด๋ฏธ์ง๋ฅผ ํ ๋์ ํ์ธํ ์ ์์ด์
- ์ผ์ดํฌ์ต์ ์ฃผ์, ์ผ์ดํฌ ์ด๋ฏธ์ง, ๋ธ๋ก๊ทธ ๋ฆฌ๋ทฐ๋ฅผ ํ์ธํ ์ ์์ด์
- ์ํ๋ ์ผ์ดํฌ์ต์ ๋ถ๋งํฌ๋ก ์ ์ฅํ๊ณ ๊ด๋ฆฌํ ์ ์์ด์
MVVM ๊ตฌ์กฐ์ input output ํจํด์ combine์ผ๋ก ๊ตฌํํ์ฌ ๊ด๋ฆฌํ๊ณ ์์ด์.
์ฑ ๋ด์์ ์๋ก์ด ๋ทฐ์ปจ์ ์์ฑํ๊ณ ๋์์ฃผ๋ ๋ก์ง์ ๋ฐ๋ณต์ด ๋ง์ด ์๊ธฐ๊ณ ๋ฐ์ดํฐ๋ฅผ ๋ถ๋ฌ์ฌ ํ๊ฒ(๋ชฉ ๋ฐ์ดํฐ, ์๋ฒ ๋ฐ์ดํฐ)์ ๋ชจ๋ ๋ทฐ์ปจ์ ํ ๋ฒ์ ๋๋ ๊ฐ ๋ทฐ์ปจ์์ ์ฝ๊ฒ ๊ต์ฒดํด์ ํ ์คํธ ์ฉ์ด์ฑ์ ์ฑ๊ธฐ๊ธฐ ์ํด์ ์ฝ๋๋ค์ดํฐ ํจํด์ ์ ์ฉํ์ด์.
๊ธฐ์กด์ Splash๋ฅผ ์ฒ์ ์ง์ ํ๋ ViewController์์ UIView ํํ๋ก ๋ณด์ฌ์คฌ๋ค๊ฐ ์ฌ๋ผ์ง๋ ์ ๋๋ฉ์ด์ ์ ๊ตฌํํด ์คฌ์์ด์. ์ด๋ ๊ฒ ํ๋ ์ด์ ๋ ์์ฐ์ค๋ฝ๊ฒ Splash๋ฅผ ๋์ฐ๊ณ fade out ์ํค๋ฉด์ Splash๋ฅผ ์ ๊ฑฐํ๊ธฐ ์ํจ ์ด์์ฃ . ๊ทธ๋ฐ๋ฐ SplashView๊ฐ ๋ฉ๋ชจ๋ฆฌ์์ ์ ํด์ง๋์ง ์๋ ๋ฌธ์ ๋ ์์๊ณ , ์ด๊ธฐ ์ง์ ํ๋ ๋ทฐ์ปจํธ๋กค๋ฌ์์ SplashView๋ฅผ ์ง์ ๋์์ค์ผํ๊ธฐ ๋๋ฌธ์ ์ฌ์ฌ์ฉ์ฑ์ด ๋ง์ด ๋จ์ด์ก์์ฃ ๐ฅน ์๋ฅผ๋ค๋ฉด MainViewController์์ ๋์ฐ๋ SplashView๋ฅผ TabViewController๋ก ์ด๋ ์ํค๋ ค๋ฉด SplashView๋ฅผ ๋์ฐ๊ณ ๊ฐ๋ฆฌ๋ ๋ก์ง์ ํต์ฑ๋ก ์ฎ๊ฒผ์ด์ผ ํ์์ด์.
๊ทธ๋์ ์ ํฌ๋ SplashView๋ฅผ UIViewController๋ก ๋ถ๋ฆฌํ์ด์! ๊ทธ๋ฆฌ๊ณ AppCoordinator์์ ์ด๊ธฐ์ ๋์์ฃผ๋ ๋ทฐ์ปจํธ๋กค๋ฌ ์์ present ์์ผ์คฌ์ด์. ์ด๋
modalPresentationStyle
์overFullScreen
์ผ๋ก ํด์ ๋ทฐ์ปจ ์์ฒด๋ฅผ fade out ์ํฌ๋ ๋ฐฑ๊ทธ๋ผ์ด๋๊ฐ ํฌ๋ช ํ๊ฒ ๋ณด์ฌ์ง๋ฉด์ ์์ฐ์ค๋ฝ๊ฒ fade out ๋๊ฒ ๋ง๋ค์ด ์คฌ์ด์. ์ต์ข ์ ์ผ๋ก ์ผ์ ์๊ฐ์ด ์ง๋ ํ fadeOut ์ ๋๋ฉ์ด์ ์ ์ํค๊ณ completion ํธ๋ค๋ฌ์์dismiss(animated: false)
์ผ๋ก ๋ฉ๋ชจ๋ฆฌ์์ ์์ ํ ํด์ง์์ผฐ์ฃ .
๊ธฐ์กด์ CakeShopList ์์ ์์ดํ ์ด ์ ํ ๋์ ๋ handler๋ฅผ ํตํด์ MainViewcontroller์์ ๋ฏธ๋ฆฌ ์ ์ํ๋ ํจ์๋ฅผ ์คํ ์์ผฐ์์ด์. ๊ทธ๋ฐ๋ฐ ์ด๋ ๊ฒ ํ๋๊น MainVC์ ๋ก์ง์ด ๋๋ฌด ๋ณต์กํด์ง๊ณ MapView, CakeShopListVC, ShopDetailVC ์ฌ์ด์ ์์กด์ฑ์ด ๊ฐํด์ก์์ฃ . ๊ฐ์ฒด๊ฐ ์์กด์ฑ์ด ๊ฐํด์ง๋ฉด์ ์์ฐ์ค๋ฝ๊ฒ ๊ด๋ฆฌํ๊ธฐ๊ฐ ์ด๋ ค์์ก๊ณ ์ ์ง๋ณด์ํ๊ธฐ ๊น๋ค๋ก์ ์์ด์.
๊ทธ๋์ CakeShopListVC์ ViewModel์ธ CakeShopListViewModel์ ๋ฐ๋ก ๋ง๋ค์ด์ ๊ด๋ฆฌํ์ง ์๊ณ MainViewModel์ ๊ทธ๋๋ก ์ฌ์ฉํ์ด์! ์ด์ฐจํผ ๋ง์ปค์ ์ต ๋ฆฌ์คํธ์ ์์ดํ ๋ค์ ๋ฐ๋ก ๋ถ๋ฆฌํด์ ๋ฐ์ง ์๊ณ ์๋ฒ๋ก๋ถํฐ ๋ฐ์์จ [CakeShop] ๋ฐฐ์ด์ ๊ฐ์ง๊ณ ๋ง์ปค๋ ๋ณด์ฌ์ฃผ๊ณ ๋ฆฌ์คํธ๋ ๋ฟ๋ ค์คฌ๊ธฐ ๋๋ฌธ์ ์ด๋ฐ ๋ทฐ๋ชจ๋ธ ์ฌ์์ฉ์ด ๊ฐ๋ฅํ์์ฃ . (๋ง์ฝ ๋ง์ปค ๋ฐ์ดํฐ, ๋ฆฌ์คํธ ๋ฐ์ดํฐ ๋ถ๋ฆฌํด์ ๊ฐ์ ธ์ค๋ฉด MainViewModel์ ์๋ธ ๋ทฐ๋ชจ๋ธ๋ก ๊ฐ์ง๊ณ ์๋ CakeShopListViewModel์ ๋ง๋ค์์ ๊ฒ์)
๋ฐ๋ผ์ CakeShopList์์ ์์ดํ ์ด ์ ํ๋๋ฉด ๋ฐ๋ก MainViewModel์๊ฒ ์๋ ค์ฃผ๊ณ MainViewModel์ output์ ๋ฐ์ธ๋ฉ ๋์ด์๋ ์ก์ ๋ค์ด ๊ฐ MapView, MainVC์๊ฒ ์ ๋ฌ๋์ด ๊ฐ์์ ์ญํ ์ ์ํํ ์ ์๋๋ก ๋ก์ง์ ๊ฐ์ ํ์ด์.