๐๊ณต๋ถํ ๊ฑฐ List๐
- ์๋๋ก์ด๋ - bottom navigation with fragment ์ฝ๋ ๋ถ์
android studio์์ New > Activity > Bottom Navigation Activity๋ฅผ ํด๋ฆญํ๋ฉด ์๋์ผ๋ก ํ์ผ๋ค๊ณผ ํด๋๋ค์ด ์์ฑ๋๋ค.
Home | Dashboard | Notifications |
---|---|---|
|_MainActivity.kt
|_/ui
|/dashboard
|__DashBoardFragment.kt
|__DashBoardViewModel.kt
|/home
|__HomeFragment.kt
|__HomeViewModel.kt
|_/notifications
|__NotificationsFragment.kt
|__NotificationsViewModel.kt
|_/drawable
|__ic_dashboard_black_24dp.xml
|__ic_home_black_24dp.xml
|__ic_launcher_background.xml
|__ic_notifications_black_24dp.xml
|_/drawable-v24*
|_/layout
|__activity_main.xml
|__fragment_dashboard.xml
|__fragment_home.xml
|__fragment_notifications.xml
|_/menu
|__bottom_nav_menu.xml
|_/navigation
|__mobile_navigation.xml
|_/values
|__colors.xml
|__dimens.xml
|__strings.xml
|__styles.xml
Android Developer:Fragment ์ค๋ช ๋ฐ๋ก๊ฐ๊ธฐ
- ์ฌ๋ฌ ๊ฐ์ ํ๋๊ทธ๋จผํธ๋ฅผ ํ๋์ ์กํฐ๋นํฐ์ ๊ฒฐํฉํ์ฌ ์ฐฝ์ด ์ฌ๋ฌ ๊ฐ์ธ UI๋ฅผ ๋น๋ํ ์ ์์ผ๋ฉฐ, ํ๋์ ํ๋๊ทธ๋จผํธ๋ฅผ ์ฌ๋ฌ ์กํฐ๋นํฐ์์ ์ฌ์ฌ์ฉํ ์ ์์ต๋๋ค.
- ํ๋๊ทธ๋จผํธ๋ ํญ์ ์กํฐ๋นํฐ ๋ด์์ ํธ์คํ ๋์ด์ผ ํ๋ฉฐ ํด๋น ํ๋๊ทธ๋จผํธ์ ์๋ช ์ฃผ๊ธฐ๋ ํธ์คํธ ์กํฐ๋นํฐ์ ์๋ช ์ฃผ๊ธฐ์ ์ง์ ์ ์ผ๋ก ์ํฅ์ ๋ฐ์ต๋๋ค.
onCreate()
: ํ๋๊ทธ๋จผํธ๋ฅผ ์์ฑํ ๋ ํธ์ถ๋๋ค. ํ๋๊ทธ๋จผํธ๊ฐ ์ผ์์ ์ง๋๊ฑฐ๋ ์ค๋จ๋์๋ค๊ฐ ์ฌ๊ฐ๋์์ ๋ ์ ์งํ๊ณ ์ ํ๋ ๊ฒ์ ์ด๊ธฐํํ๋ ๊ณต๊ฐ์.
onCreateView()
: ์์คํ
์ ํ๋๊ทธ๋จผํธ๊ฐ ์์ ์ ์ฌ์ฉ์ ์ธํฐํ์ด์ค๋ฅผ ์ฒ์์ผ๋ก ๊ทธ๋ฆด ์๊ฐ์ด ๋๋ฉด ์ด๊ฒ์ ํธ์ถํฉ๋๋ค. ํ๋๊ทธ๋จผํธ์ ๋ง๋ UI๋ฅผ ๊ทธ๋ฆฌ๋ ค๋ฉด ๋ฉ์๋์์ View
๋ฅผ ๋ฐํํด์ผ ํฉ๋๋ค. ์ด ๋ฉ์๋๋ ํ๋๊ทธ๋จผํธ ๋ ์ด์์์ ๋ฃจํธ์
๋๋ค. ํ๋๊ทธ๋จผํธ๊ฐ UI๋ฅผ ์ ๊ณตํ์ง ์๋ ๊ฒฝ์ฐ null์ ๋ฐํํ๋ฉด ๋ฉ๋๋ค.
onPause()
: ์์คํ
์ด ์ด ๋ฉ์๋๋ฅผ ํธ์ถํ๋ ๊ฒ์ ์ฌ์ฉ์๊ฐ ํ๋๊ทธ๋จผํธ๋ฅผ ๋ ๋๋ค๋ ๊ฒ์ ๋ํ๋ด๋ ์ฒซ ๋ฒ์งธ ์ ํธ์
๋๋ค(๋ค๋ง ํญ์ ํ๋๊ทธ๋จผํธ๊ฐ ์๋ฉธ ์ค์ด๋ผ๋ ๊ฒ์ ์๋ฏธํ์ง๋ ์์ต๋๋ค). ์ผ๋ฐ์ ์ผ๋ก ์ฌ๊ธฐ์์ ํ์ฌ ์ฌ์ฉ์ ์ธ์
์ ๋์ด์ ์ง์๋์ด์ผ ํ๋ ๋ณ๊ฒฝ ์ฌํญ์ ์ปค๋ฐํฉ๋๋ค(์ฌ์ฉ์๊ฐ ๋์์ค์ง ์์ ์ ์๊ธฐ ๋๋ฌธ์
๋๋ค).
Android Developers:ViewModel ์ค๋ช ๋ฐ๋ก๊ฐ๊ธฐ
Medium_ViewModels : A Simple Example ๊ธ ๋ฐ๋ก๊ฐ๊ธฐ
- ViewModel์ UI์ ๊ด๋ จ๋ ๋ฐ์ดํฐ(=Activity๋ Fragment์ ๋ฐ์ดํฐ)๋ฅผ ์๋ช ์ฃผ๊ธฐ๋์ ์ ์งํ๊ณ ๊ด๋ฆฌํ๊ธฐ ์ํด ๊ณ ์๋ ๊ฒ์ด๋ค.
- ViewModel์ ์ฌ์ฉํ๋ ๋ฐฉ๋ฒ์ ๋ค์๊ณผ ๊ฐ๋ค.
- ViewMode์ ์์ํ๋ ํด๋์ค๋ฅผ ๋ง๋ค์ด์ UI ์ปจํธ๋กค๋ฌ์ ๋ฐ์ดํฐ๋ฅผ ๋ถ๋ฆฌ์ํจ๋ค.
- ViewModel๊ณผ UI controller์ ๋ฐ์ดํฐ ์ํต์ ๊ตฌํํ๋ค.
- UI controller์์ ViewModel์ ์ฌ์ฉํ๋ค.