안녕하세요 오늘은 안드로이드에서 MVVM 패키지 구조 예시를 보여드리려고 합니다
많은 분들이 MVVM 디자인 패턴을 공부하는데 패키지는 어떻게 해야할지 감이 잘 안오시는 분들이 있을 것 같습니다
그런 분들을 위해 예시를 보여드리려 합니다! (이게 꼭 정답은 아닙니다, 패키지 구조는 마음대로 유동적으로 해도 문제가 되지 않습니다!)
모듈 구조
설명을 드리기 위한 예시에서는 가본 모듈인 app 모듈 한개만 사용했습니다
하위 패키지 구조
하나씩 차근차근 설명해 드리겠습니다
base
여러 base들이 되는 파일들 BaseActivity, BaseFragment등이 위치합니다
data
db와 remote로 나눠집니다
- db : room등 로컬 저장 db등이 위치한다
- remote : API 호출등 뜻 그대로 원격에 있는 것들을 가져오는 retrofit등이 위치합니다
- api : 요청을 보낼 API interface등이 위치합니다
- model : 요청을 보낼때나 보내고 나서 결과를 받을 data class가 위치합니다
di
dagger hilt, koin등 의존성 관련 파일들이 위치합니다
repository
Repository에 해당하는 파일이 위치합니다
view
view와 관련된 Activity, Fragment등 파일이 위치합니다
view의 하위패키지 구성은 기능별로 나눌수도 있고 activiy와 fragment, adapter등으로도 나눌수 있습니다 (방법은 여러가지)
viewmodel
ViewModel 파일이 위치합니다
widget
extension, utils등 파일이 위치합니다
- extension : kotlin 확장함수 파일등이 위치합니다
- utils : 자주쓰는 함수나 변수등의 파일들이 위치합니다
Github 예시
구조 예시
https://github.com/ParkSangSun1/Quick_Setup/tree/mvvm
이 구조를 적용한 간단한 Github 사용자 이름으로 검색 후 repository 출력 예제
https://github.com/ParkSangSun1/Github_RxKotlin
궁금한 점이나 부족한 점이 있다면 댓글 남겨주세요!
감사합니다
추가로
안드로이드 개발에 대한 질문과 정보 등을 공유 및 소통하는 채팅방입니다
'Android' 카테고리의 다른 글
Clean Architecture + MVVM + Coroutine + Hilt + Retrofit을 이용하여 안전하게 Github API를 호출해 보자! (0) | 2021.12.27 |
---|---|
Android Clean Architecture를 지향한 MVVM 패키지 구조 (0) | 2021.12.16 |
Android Studio에서 Pytorch mobile을 사용하며 (4) | 2021.12.06 |
Activity에서 Activity로 사용자가 원하는 값 보내기 (0) | 2021.11.30 |
Android bottom navigation bar Text와 Icon 사이 margin (0) | 2021.11.12 |