๋จ๊ณ์ ์ผ์ ํ๋ณต์ ๋ชฉํ๋ก ํ ์๋ ์ฝ๋ก๋๊ฐ ์ํ๋จ์ ๋ฐ๋ผ ๋น๋๋ฉด ์์ ์ ํ๋ ๋ํ์๋ค์ ๋๋ฉด ์์ ์ ์ฌ๊ฐ๋ก ํ๊ต ์ธ๊ทผ์์ ์์ฌํด์ผ ํ๋ ๊ฒฝ์ฐ๋ค์ด ๋์ด๋ฌ์ต๋๋ค. ์ฝ๋ก๋ ํ๋ฒ์ด๋ผ๊ณ ๋ถ๋ฆฌ๋ ์ ๋๋ก ๋ ๋ํ ์ํ์ ํด๋ณด์ง ๋ชปํ ํ์๋ค์ ์ํด ์๋น ์ ๋ณด๋ฅผ ์ ๊ณตํ๊ณ ๋์๊ฐ ๋ํ ์๋ฌธํ ๊ต๋ฅ์ ์ฅ์ ๋ง๋ จํ์ฌ ๋ํ๊ฐ ์๊ถ ํ๋ณต๊ณผ ํ์ฑํ์ ๊ธฐ์ฌํ๋ ์๋น์ค๋ฅผ ์ ๊ณตํฉ๋๋ค.
๐ก ๋ฉ์ธ ํ ํ๋ฉด์ ํตํด ์์ ํ๊ต ์ฌ๋๋ค์ ๋ฆฌ๋ทฐ์ธ ํผ๋์ ๋ฆฌ๋ทฐ ์์์ ๋ง์ง ๋ฆฌ์คํธ, ์๋ก ์๊ธด ํ๊ต ์ธ๊ทผ ์๋น์ ์ ๋ณด๋ฅผ ํ์ธํ ์ ์์ต๋๋ค. ์ฌ์ฉ์์ ํ๋ก์์ด ์๋ก์ด ๋ฆฌ๋ทฐ๋ฅผ ์ ๋ฐ์ดํธํ๋ฉด ๋ฉ์ธ ํ ํ๋ฉด ์๋จ์ ํ์ฑํ ๋ฒํผ์ด ๋ํ๋๋ฉฐ ์ค์๊ฐ์ผ๋ก ํ๋ก์์ด ๋จ๊ธด ๋ฆฌ๋ทฐ๋ฅผ ํ์ธํ ์ ์์ต๋๋ค.
โ๏ธ ๋ฉ์ธ ํ๋ฉด์ Toolbar, Recyclerview, 3๊ฐ์ TabItem(Feed, Hot, New)์ผ๋ก ๊ตฌ์ฑ๋ Tablayout, ๊ฐ๊ฐ์ Fragment๋ฅผ ๋ด๋ ViewPager๋ก ์ค๊ณํ์์ต๋๋ค.CoordinatorLayout์ ์์๋ทฐ์ Behaviors๋ฅผ ์ง์ ํ๋ ๋ฐฉ์์ ํ์ฉํ์ฌ ์ธํฐ๋ ์ ์ ๊ตฌํํ์ฌ ์ฌ์ฉ์์ ํธ์์ฑ์ ๊ณ ๋ คํ์์ต๋๋ค. ์๋๋ฐ๋ง์ ํน์ง์ ์ด๋ ค๋ธ ํค์๋ ์ถ์ถ ์๋น์ค๋ ๋ค์ค ์ ํ์ด ๊ฐ๋ฅํ๊ธฐ์ ์ปจํ ์ด๋ ๋ด์ ์์ดํ ์์๋ฅผ ์ปจํ ์ด๋ ํฌ๊ธฐ์ ๋ฐ๋ผ ์๋์ผ๋ก ๋ฐฐ์ดํด์ฃผ๋ ๋ ์ด์์ ๋ชจ๋ธ FlexboxLayout ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ฌ์ฉํ์์ต๋๋ค.
๐ก ํ๋ก์ํ๋ ์ง์ธ๋ค์ ๋ง์ง ๊ธฐ๋ก๊ณผ ๋ด๊ฐ ๊ธฐ๋กํ ์๋น์ ์ ๋ณด ๋ฐ ์์น๋ฅผ ์ง๋์ ์์น ์์ด์ฝ์ ํตํด ํ๋์ ํ์ธํ ์ ์๋ ํ์ด์ง์ ๋๋ค. ๋ง์ปค ์ ํ ์ ํด๋น ์์์ ์ ์นด๋๊ฐ ๋ณด์ฌ์ง๊ณ , ์๋น ์์ธ ์ ๋ณด ํ์ด์ง๋ก ์ฐ๊ฒฐ๋ฉ๋๋ค.
โ๏ธ ์๋๋ฐ ๋งต์ Naver Map API๋ฅผ ์ฌ์ฉํ์์ผ๋ฉฐ, ๊ฒ์ ๊ธฐ๋ฅ์ Naver ๊ฒ์ API๋ฅผ ํ์ฉํ์ฌ ํค์๋ ๊ฒ์์ด ๊ฐ๋ฅํ๊ฒ ํ์์ต๋๋ค. ๋งต์๋ 2๊ฐ์ง ์๋๋ฐ ์ปค์คํ ๋ง์ปค๋ฅผ ํ์ํ์ฌ ์ฌ์ฉ์๊ฐ ์ง๊ด์ ์ผ๋ก ๋ณผ ์ ์์ต๋๋ค.
๐ก ํ๋ก์ ํ๋ก์, ์์ฑํ ์๋น ๊ธฐ๋ก, ๋ถ๋งํฌํ ์์์ ์ ํ์ธํ๊ณ ๊ด๋ฆฌํ ์ ์๋ ํ์ด์ง์ ๋๋ค. ํ๊ฒฝ์ค์ ์์ด์ฝ์ ํตํด ํ๋กํ ์ฌ์ง ๋ฐ ๋๋ค์์ ์์ ํ๊ฑฐ๋ ํ๊ต ์ค์ ๊ด๋ฆฌ, ์ธ์ด ๋ฐ ์๋ฆผ ์ค์ ๋ฑ ๊ธฐํ ์์คํ ์ ๊ด๋ฆฌํ ์ ์์ต๋๋ค.
โ๏ธ ๋ด ์ ๋ณด ํ์ด์ง์์๋ ๋ฉ์ธ ๋ทฐ์ ๋ง์ฐฌ๊ฐ์ง๋ก ๋ฌดํ ์คํฌ๋กค๊ณผ ์ธํฐ๋ ์ ์ด ๊ฐ๋ฅํ๋ฉฐ ๊ฐ๋ดค์ด์ ํญ์ ๋๋ฅด๋ฉด Gridlayout์ผ๋ก ๊ตฌ์ฑ๋ ์๋น ์ ๋ณด๊ฐ ๋ณด์ฌ์ง๊ณ ๊ฐ๊ณ ์ถ์ด์ ํญ์ ๋๋ฅด๋ฉด ์ฌ์ฉ์๊ฐ ๋ถ๋งํฌํ ์๋น ๋ฆฌ์คํธ๋ฅผ ๋ณด์ฌ์ค๋๋ค. ์๋น ์์ดํ ์ ํด๋ฆญํ๋ฉด ์๋น์ ์์ธ ์ ๋ณด๋ฅผ ํ์ธํ ์ ์์ผ๋ฉฐ ์ด๋ Naver Clova Summary API๋ฅผ ํ์ฉํฉ๋๋ค.
1. Single Activity์ Multiple Fragments๋ก ๊ตฌ์ฑ์ ํ์ฌ ์ด ๊ตฌ์กฐ์ ์ต์ ํ๋ Android Jetpack Library์ค Navigation์ ์ฌ์ฉํ์ฌ ํ๋ฉด ์ ํ์ ํฉ๋๋ค. NavArgs๋ก Type์ด ์ง์ ๋ ๋ฐ์ดํฐ ์ ๋ฌ์ด ๊ฐ๋ฅํ ์ ์ ํ์ฉํ์์ต๋๋ค.
2. MVVM ์ํคํ ์ณ๋ฅผ ๊ธฐ๋ณธ์ผ๋ก ํ๊ณ ๋ฐ์ดํฐ ๊ฐ์ฒด ๋งคํ ๋ผ์ด๋ธ๋ฌ๋ฆฌ Room, Rxjava, Flowable, Livedata Observable, Coroutine ๋ฑ์ ํ์ฉํ์ฌ ์์ฉ๊ตฌ ์ฝ๋์ ์์ฑ ๋ฐ ๋ฉ๋ชจ๋ฆฌ ๋์์ ๋น์ ์ ์ข ๋ฃ๋ฅผ ์ค์ฌ์ฃผ๋ Android ๊ถ์ฅ ์ฌํญ์ ์ค์ํฉ๋๋ค.
3. ์กํฐ๋นํฐ๋ ํ๋๊ทธ๋จผํธ์ ๊ฐ์ ๊ตฌ์ฑ์์์ ์๋ช ์ฃผ๊ธฐ ์ํ ๊ด๋ จ ์ ๋ณด๋ฅผ ํฌํจํ๋ฉฐ ๋ค๋ฅธ ๊ฐ์ฒด๊ฐ ์ด ์ํ๋ฅผ ๊ด์ฐฐํ ์ ์๊ฒ ํ๋ Lifecycle์ ํ์ฉํ์ฌ ์๋ช ์ฃผ๊ธฐ ์ํ๋ฅผ ์ถ์ ํฉ๋๋ค. Android ํ๋ ์์ํฌ์ ์ ์๋ ๋๋ถ๋ถ์ ์ฑ ๊ตฌ์ฑ์์์๋ ์๋ช ์ฃผ๊ธฐ๊ฐ ์ฐ๊ฒฐ๋์ด ์๊ธฐ ๋๋ฌธ์ ์๋ช ์ฃผ๊ธฐ๋ฅผ ๊ณ ๋ คํด์ผ ํ๋ฉฐ, ๋ฉ๋ชจ๋ฆฌ ๋์ ๋๋ ๋น์ ์ ์ข ๋ฃ๋ฅผ ๋ฐฉ์งํฉ๋๋ค.
๋ฐ์ฃผ์ |
๐ฉ๐ปโ๐ป Server