[kotlin] 코틀린 안드로이드 MVVM 아키텍처의 프로젝트 구조

MVVM(Model-View-ViewModel) 아키텍처는 안드로이드 앱을 개발할 때 많은 장점을 제공합니다. 코틀린 언어를 사용하여 안드로이드 앱을 개발할 때 이 아키텍처를 사용하면 유지보수성이 높고 확장 가능한 앱을 만들 수 있습니다.

프로젝트 구조

MVVM 아키텍처를 사용한 안드로이드 프로젝트의 일반적인 디렉토리 구조는 다음과 같습니다.

- app
  - src
    - main
      - java/com/example/myapp
        - data
            - model
            - remote
            - repository
        - di
        - ui
            - adapter
            - view
            - viewModel
        - utils
  1. data: 앱의 데이터 관련 클래스를 포함합니다.
    • model: 데이터 모델 클래스입니다. 앱 내에서 사용되는 데이터 구조를 정의합니다.
    • remote: 원격 데이터와 통신하기 위한 클래스를 포함합니다.
    • repository: 데이터를 가져오는 로직을 정의하는 클래스를 포함합니다.
  2. di(Dependency Injection): 앱의 의존성 주입을 위한 클래스를 포함합니다. Dagger, Koin 등의 라이브러리를 사용할 수 있습니다.

  3. ui: 사용자 인터페이스와 관련된 클래스를 포함합니다.
    • adapter: 리사이클러뷰나 리스트뷰 등의 어댑터 클래스를 포함합니다.
    • view: 액티비티, 프래그먼트 등의 화면을 구성하는 클래스를 포함합니다.
    • viewModel: 뷰와 데이터 모델 사이의 상호작용을 처리하는 클래스를 포함합니다.
  4. utils: 앱 전반에 걸쳐 사용되는 유틸리티 클래스를 포함합니다.

코드 예시

다음은 MVVM 아키텍처를 사용한 안드로이드 앱에서의 간단한 코드 예시입니다.

// 모델 클래스
data class User(val id: Int, val name: String)

// 리파지토리 클래스
class UserRepository {
    fun getUser(userId: Int): User {
        // 원격 데이터 소스에서 사용자 데이터를 가져오는 로직
    }
}

// 뷰모델 클래스
class UserViewModel(private val userRepository: UserRepository) : ViewModel() {
    fun getUser(userId: Int): User {
        return userRepository.getUser(userId)
    }
}

참고 자료

MVVM 아키텍처 및 안드로이드 프로젝트 구조에 대해 더 알아보려면 다음 자료를 참고하세요.

MVVM 아키텍처를 사용하여 안드로이드 앱을 개발할 때 위와 같은 프로젝트 구조를 활용하면 향후 유지보수와 확장이 쉬운 안드로이드 앱을 만들 수 있습니다.