메트로놈 Simple Metronome 4
메트로놈 Simple Metronome
바로가기 ↗
이 글은 메트로놈 Simple Metronome 시리즈의 5번째 기록입니다. (총 11개)
오늘 한 일
- git 없이 관리되던 프로젝트를 저장소로 만들고, 평문으로 노출돼 있던 서명 비밀번호를
keystore.properties로 분리해 gitignore 처리 - 비트 인디케이터를 벡터로 교체 — 첫 박은 강아지 얼굴, 나머지는 발자국. 켜짐/꺼짐은 drawable을 갈아끼우지 않고
backgroundTintList로 색만 바꿈 - 기본(다크) ↔ 강아지(크림·밤색) 테마 전환 토글 추가. 색을 커스텀 테마 속성(
?attr/mt*)으로 바꿔 테마만 바꿔도 화면 전체가 따라오게 함
막힌 부분
Gradle Kotlin DSL에서 java.util.Properties가 안 풀렸다
keystore.properties를 읽으려고 java.util.Properties()를 썼더니 빌드가 Unresolved reference: util로 죽었다. Kotlin DSL(build.gradle.kts)에는 java라는 Gradle 접근자가 이미 있어서, java.util…의 java가 패키지가 아니라 그 접근자로 먼저 잡혀 버린 것이다. 파일 맨 위에 import를 넣어 이름을 확정했다.
import java.util.Properties
val keystorePropsFile = rootProject.file("keystore.properties")
val keystoreProps = Properties().apply {
if (keystorePropsFile.exists()) keystorePropsFile.inputStream().use { load(it) }
}
테마를 바꿔도 색이 안 따라왔다
레이아웃과 드로어블이 색을 @color/...로 하드코딩하고 있어서, 테마만 바꿔선 색이 그대로였다. 커스텀 속성을 만들어 ?attr/로 참조하게 바꾸고, 두 테마가 값만 다르게 채우도록 했다.
<!-- attrs.xml -->
<attr name="mtBg" format="color" />
<attr name="mtInk" format="color" />
<attr name="mtAccent" format="color" />
스피너 팝업만은 페이지와 반대 색(밝은 배경 + 어두운 글씨)이라, 팝업 전용 색(mtPopupBg/mtPopupInk)을 따로 뒀다.
다음에 할 일
- 인디케이터 크기 키우기 (지금 너무 작음)
- 강아지 표시를 이모지(🐶 / 🐾) 느낌으로 — 기기별 렌더 차이와 테마 틴트 불가 트레이드오프를 두고 방향 결정
Series: 메트로놈 Simple Metronome
1
|
메트로놈 Simple Metronome
2
|
메트로놈 Simple Metronome ― 처음 만든 앱, Google Play 출시기
3
|
메트로놈 Simple Metronome ― ver 1.9
4
|
메트로놈 Simple Metronome ― ver 1.10
5
|
메트로놈 Simple Metronome 4
읽는 중
6
|
메트로놈 Simple Metronome 5
7
|
메트로놈 Simple Metronome 6
8
|
메트로놈 Simple Metronome 7
9
|
메트로놈 Simple Metronome 8
10
|
메트로놈 Simple Metronome 9
11
|
메트로놈 Simple Metronome 10