어떠한 구조를 선택하는 게 좋은가?
- 깔끔한 코드 분리가 가능한가?
- Testing 가능한 구조를 만들 수 있는가?
- View와 Model 간의 관계를 분리할 수 있는가?
- 많은 코드를 손대지 않고, 유지 보수 가능한가?
안드로이드에 잘 맞는 Architecture는?
class MainActivity : AppCompatActivity() {
override fun onCreate (savedInstanceState : Bundle? ) {
// ex) 업데이트 버튼
val fab = findViewById(R.id.fab) as FloatingActionButton
fab.setOnClickListener {
// 데이터 갱신 요청
// Model에 접근해서 최신 데이터를 요청
// ex) fun getItems() : arrayList<>()
// 전달받은 items를 이용해 View 갱신
}
}
}
- Activity / Fragment / Adapter
- View / Control 역할을 함께한다.
- ex) OnClickListener
- Adapter의 경우 Control / Model 도 가질 수 있다.
- MVC : Model View Control
- MVP : Model View Presenter
- MVVM : Model View ViewModel
결론
- 팀 내에서 잘 맞는 Architecture을 선택이 필요
- MVC는 View에서 모델을 사용하기 때문에 공통 코드를 잘 분리해야 한다.
- MVP/MVVM은 기본적으로 View/Model 간의 결합도를 낮출 수 있다.
- 컴포넌트 분리를 함으로써 테스트 가능한 코드를 작성해야 한다.
MVVM Architecture Components
- Android an Architecture
- Lifecycle Components
- LiveData
- Room Database
'# 02 > 코틀린' 카테고리의 다른 글
[Kotlin] MVP 패턴 소개 2 (0) | 2019.07.15 |
---|---|
[Kotlin] MVC 패턴 소개 1 (0) | 2019.07.15 |
[Kotlin] SAM Class (0) | 2019.07.15 |
[Kotlin] Generics (0) | 2019.07.15 |
[Kotlin] 유용한 kotiln Standard 라이브러리 (0) | 2019.07.12 |