0. 서론
이번 업데이트에서는 Dagger2의 구조를 바꾸었다. 이전에는 컴포넌트의 계층이 없이 중구난방으로, 호출되었는가 하면, 업데이트를 하면서 컴포넌트의 계층을 주게 되었다. 그에 대한 결과물이 어떤 모습일까 궁금했고 Dagger2의 시각화 플러그인을 찾기 시작했다.
Scabbard 라는 플러그인을 사용하게 되었다.
https://arunkumar9t2.github.io/scabbard/
1. 플러그인 설치
안드로이드 스튜디오에서 shift + shift를 누르고 plugins 을 실행시켜주자.
2-0. build.gradle에 scabbard 라이브러리 참조
//project build.gradle
buildscript {
apply from: './dependencies.gradle'
repositories {
//...
maven {
url "https://plugins.gradle.org/m2/"
}
}
dependencies {
//...
classpath "gradle.plugin.dev.arunkumar:scabbard-gradle-plugin:0.4.0"
}
}
2-1. 모듈에 scabbard 플러그인 추가
//module:app
//...
apply plugin: "scabbard.gradle"
android{
//...
scabbard {
enabled true
//scabbard 사용 여부
failOnError true // default false
//failOnError:
//기본적으로 Scabbard 프로세서는 오류가 발생하더라도 빌드에 실패하지 않습니다.
//이 플래그는 해당 동작을 변경하는 데 사용될 수 있습니다.
fullBindingGraphValidation true // default false
//fullBindingGraphValidation:
//모든 @Component, @Subcomponent 및 @Module의 모든 바인딩을 포함하여
//전체 그래프의 유효성을 검사하는 Dagger의 전체 바인딩 그래프 유효성 검사를 활성화합니다.
//이를 통해 누락 된 바인딩을 강조 표시하여 오류를 이해하는 데 사용할 수 있습니다.
//또한 @Module 자체에는 그래프가 표시되므로 @Module의 바인딩에 대한 그래프가 생성됩니다.
}
}
3. scabbard의 사용모습
scabbard를 설치를 하게 되면, 인터페이스 왼쪽에, 네모 모양의 그래프 아이콘이 추가된 것을 볼 수 있다.
만약, 보이지 않는 다면 build를 하도록 하자. 해당 아이콘을 누르게 되면, 그래프의 이미지 파일을 볼 수 있다.
4. 가짜 결과 (1)
아무것도 보이지 않았다. 다시 docs를 처음부터 읽어보기 시작했다. docs에는 아래와 같이 써져있었다.
요구 사항
Scabbard는 GraphViz를 사용하여 그래프를 생성하므로 작동하려면 dot 명령을 사용할 수 있어야합니다.
5. GraphViz 설치
자신의 운영체제에 맞게, GraphViz를 설치해주면 된다.
https://graphviz.org/download/
GraphViz를 설치하고, 환경 변수를 절대 잊지 말자.
C:\Program Files (x86)\Graphviz-2.38\bin
C:\Program Files (x86)\Graphviz-2.38\bin\dot.exe
cmd에 dot이라고 입력하면, 무엇인가 돌아가고 있다면 정상적으로 설치가 된 것이다.
6. 가짜 결과 (2)
나는 이미지 파일이 변환이 되지 않았다.
그래서, 부랴부랴 Graphviz 사용법을 찾아 보면서 알게 된 것은 Graphviz는 텍스트를 가지고 그래프를 그려내기 때문에 텍스트를 GraphvizOnline에 변환을 하는 방법을 알게 되었다.
해당 png 파일의 폴더에 찾아가게 되면 워드 파일들이 있게 되는데, 워드 파일의 텍스트를 복사해서 해당 GraphvizOnline에 붙여넣기를 해보자.
7. 진짜 진짜 결과
내가 사용하고 있는 Dagger2를 시각화할 수 있었다.
이번, 업데이트를 진행하면서 dagger2 구조를 다시 잡게 되었고, 프로젝트의 구조도 변하게 되었다.
Hilt까지는 멀지만, 시각화를 하면서 알게 된 점을 다음 블로그를 통해서 설명하도록 하겠다.
'Android 공부 > 담다 개발기' 카테고리의 다른 글
시간표 어플리케이션 개발 회고록 (9) | 2019.11.18 |
---|