# ๋ชจ๋ Kotlin ์ฝ๋ ํธ์ง์ด ์๋ฃ๋๋ฉด ๋ฐ๋์ ์คํ
./gradlew detekt์ค์: detektFormat์ ์กด์ฌํ์ง ์๋ task์
๋๋ค. ./gradlew detekt๋ฅผ ์ฌ์ฉํ์ธ์.
๋ชฉ์ :
- ์ฝ๋ ๋ถ์ ๋ฐ ํ์ง ๊ฒ์ฌ
- ์๋ formatting ์ ์ฉ (autoCorrect: true ์ค์ )
- ktlint ๊ท์น ๋ฐ Compose ๊ท์น ์ ์ฉ
- ์ผ๊ด๋ ์ฝ๋ ํ์ง ์ ์ง
- detekt: 1.23.7 (๊ธฐ๋ณธ ๋ฃฐ์ ์ฌ์ฉ)
- ktlint: detekt-formatting์ ํตํด ํตํฉ
- Compose Rules: 0.4.14 (Compose ์ ์ฉ ๊ท์น)
- ์ต๋ ๋ผ์ธ ๊ธธ์ด: 120์
- Composable ํจ์: ๋๋ฌธ์๋ก ์์, modifier ๋งค๊ฐ๋ณ์ ํ์
- ๋ค์ด๋ฐ: Android ์ปจ๋ฒค์ ์ค์ (camelCase, PascalCase)
- ๋ค์ฌ์ฐ๊ธฐ: 4 spaces
-
Modifier ๊ด๋ จ:
- ๋ชจ๋ Composable์ modifier ๋งค๊ฐ๋ณ์ ํฌํจ
- modifier์ ๊ธฐ๋ณธ๊ฐ
= Modifier์ค์ - Root์์ modifier ์ฌ์ฉ ํ์ธ
-
CompositionLocal ์ฌ์ฉ:
- ํ์ฉ๋ CompositionLocal๋ง ์ฌ์ฉ
- ๋ค์ด๋ฐ ๊ท์น:
Local์ ๋์ฌ
-
๋งค๊ฐ๋ณ์ ์์:
- Composable์์ modifier๋ ์ฒซ ๋ฒ์งธ ์ ํ์ ๋งค๊ฐ๋ณ์
- lambda๋ ๋ง์ง๋ง ๋งค๊ฐ๋ณ์
# ๊ธฐ๋ณธ detekt ์คํ (๋ถ์ + ์๋ formatting)
./gradlew detekt
# ๋ค๋ฅธ ์ ์ฉํ task๋ค
./gradlew detektMain # production ์ฝ๋๋ง ๋ถ์
./gradlew detektTest # test ์ฝ๋๋ง ๋ถ์
./gradlew detektBaseline # baseline ํ์ผ ์์ฑ- Formatting: autoCorrect๋ก ์๋ ์์ ๋จ
- Complexity: ์๋ ๋ฆฌํฉํ ๋ง ํ์ (ํจ์ ๋ถํ , ๋งค๊ฐ๋ณ์ ์ถ์)
- Naming: ๋ค์ด๋ฐ ์ปจ๋ฒค์ ์๋ ์์
- Compose: Compose ๊ท์น ์ค์ ํ์ธ
- @Composable: complexity ๊ท์น์์ ์ ์ธ
- @Preview: UnusedPrivateMember์์ ์ ์ธ
- modifier: UnusedParameter์์ ์ ์ธ
- fromXXX: ReturnCount์์ ์ ์ธ