[Gradle] 다 같은 Implementation이 아닌가?
728x90
반응형

남의 코드를 볼 때, 당황스러운 경우가 한두번이 아니다.

특히 잘 하는 분야가 아니라면 더욱 그렇다.

안드로이드 app.gradle을 들여다 보았을 때 내가 목격한 것은 그런 것이었다.


1
mockImplementation 'com.squareup.retrofit2:retrofit-mock:2.4.0'
cs


mockImplementation??

이게 당췌 뭐야?



아무리 구글링을 해도 나오지 않더니

엉뚱하게도, 아니지... 당연히도 안드로이드 개발 문서에 답이 있었다.


요약을 하자만 다음과 같다.

  • 먼저 이해할 사항 : 변형 인식 종속성 관리를 위해 버전 차원(flavor dimension) 사용
    • 이게 뭐냐하면... Build Variant를 설정하는 과정을 언급한 것이다.
    • productFlavors에 차원을 명명하고 이 차원에 종속된 라이브러리가 사용되도록 한다.
    • 이해가 안되시면 안드로이드 문서를 참고하자.
  • 진짜 의문 해결 : 로컬 모듈의 종속성 구성을 마이그레이션
    • 위 사항을 잘 사용하면 [로컬 모듈 종속성에 대해 변형별 구성]을 사용할 필요가 없다고 한다.
    • mockImplementation이 바로 변형별 구성인 것이다.
    • 아래 productFlavors를 보면 3개의 버전이 있음을 알 수 있다.
    • 이 이름에 맞게 변형별 구성을 만들 수 있다는 뜻
    • ex) stageImplementation, devImplementation, mockImplementation
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
productFlavors {
    stage {
        dimension "..."
        ...
    }
 
    dev {
        dimension "..."
        ...
    }
 
    mock {
        dimension "..."
        ...
    }
}
cs


끝.

728x90
반응형