-
Notifications
You must be signed in to change notification settings - Fork 0
chore: README 작성 #168
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
chore: README 작성 #168
Conversation
Walkthrough문서 README 신규 추가, Settings의 OSS 이벤트명 변경(OnBackClicked → OnBackClick) 및 사용처 업데이트, BookDetailPresenter의 초기 로드 이펙트 LaunchedEffect → RememberedEffect 교체, gradle 버전 카탈로그에서 lifecycle-runtime-ktx 제거. Changes
Sequence Diagram(s)sequenceDiagram
participant Presenter as BookDetailPresenter
participant Effect as RememberedEffect
participant UseCase as initialLoad()
rect rgb(232,245,233)
Presenter->>Effect: register RememberedEffect(Unit)
note right of Effect: Compose의 기억된(remembered) 효과로\n초기 로드 트리거 실행
Effect->>UseCase: invoke initialLoad()
UseCase-->>Presenter: data / result
end
Estimated code review effort🎯 3 (Moderate) | ⏱️ ~20 minutes Assessment against linked issues
Assessment against linked issues: Out-of-scope changes
Tip 🔌 Remote MCP (Model Context Protocol) integration is now available!Pro plan users can now connect to remote MCP servers from the Integrations page. Connect with popular remote MCPs such as Notion and Linear to add more context to your reviews and chats. ✨ Finishing Touches🧪 Generate unit tests
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. 🪧 TipsChatThere are 3 ways to chat with CodeRabbit:
SupportNeed help? Create a ticket on our support page for assistance with any issues or questions. CodeRabbit Commands (Invoked using PR/Issue comments)Type Other keywords and placeholders
CodeRabbit Configuration File (
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 1
Caution
Some comments are outside the diff and can’t be posted inline due to platform limitations.
⚠️ Outside diff range comments (1)
feature/detail/src/main/kotlin/com/ninecraft/booket/feature/detail/book/BookDetailPresenter.kt (1)
305-316
: emotionTags[0] 직접 인덱싱으로 인한 크래시 가능성 제거
selectedRecordInfo.emotionTags[0]
는 빈 리스트일 경우IndexOutOfBoundsException
를 발생시킵니다. 안전하게 첫 요소를 조회하고, 없으면 사용자에게 안내 후 조기 반환하세요.is BookDetailUiEvent.OnShareRecordClick -> { isRecordMenuBottomSheetVisible = false scope.launch { - navigator.delayedGoTo( - RecordCardScreen( - quote = selectedRecordInfo.quote, - bookTitle = selectedRecordInfo.bookTitle, - emotionTag = selectedRecordInfo.emotionTags[0], - ), - ) + val emotion = selectedRecordInfo.emotionTags.firstOrNull() + if (emotion == null) { + sideEffect = BookDetailSideEffect.ShowToast("감정 태그가 없습니다.") + return@launch + } + navigator.delayedGoTo( + RecordCardScreen( + quote = selectedRecordInfo.quote, + bookTitle = selectedRecordInfo.bookTitle, + emotionTag = emotion, + ), + ) } }
🧹 Nitpick comments (12)
feature/detail/src/main/kotlin/com/ninecraft/booket/feature/detail/book/BookDetailPresenter.kt (3)
244-246
: RememberedEffect(Unit)로 초기 로딩 트리거 변경 — 재호출 조건을 더 안전하게 고정하세요compose-effects의 RememberedEffect는 키가 바뀔 때마다 즉시 실행됩니다. 최초 1회 호출만을 의도했다면, 키를
screen.userBookId
로 고정하거나, 1회 실행 가드를 두는 편이 안전합니다. 현재uiState = Loading
으로 인한 재구성이 촉발될 수 있어 의도치 않은 중복 호출 가능성을 배제하기 어렵습니다.권장 변경안(키를 userBookId로 고정):
- RememberedEffect(Unit) { + RememberedEffect(screen.userBookId) { initialLoad() }대안(1회 실행 가드 추가): 아래 상태를 선언한 뒤,
// 파일 상단의 state들과 함께 선언 var hasLoaded by rememberRetained { mutableStateOf(false) }이 구간을 다음처럼 변경합니다.
- RememberedEffect(Unit) { - initialLoad() - } + RememberedEffect(Unit) { + if (!hasLoaded) { + hasLoaded = true + initialLoad() + } + }
392-396
: 중복 코루틴 래핑 제거
initialLoad()
내부에서 이미scope.launch { ... }
를 사용합니다. 여기서 한 번 더scope.launch
로 감싸면 불필요한 중첩이 생깁니다. 바로 호출로 간소화하세요.- is BookDetailUiEvent.OnRetryClick -> { - scope.launch { - initialLoad() - } - } + is BookDetailUiEvent.OnRetryClick -> { + initialLoad() + }
337-342
: 분석 이벤트 명칭 확인 요청(BOOK_DELETE → 레코드 삭제 이벤트?)레코드 삭제 UI 진입에서
BOOK_DELETE
이벤트를 로깅합니다. 상수 이름상 도서 삭제 용도로 보이는데, 실제로는 “기록(레코드)” 삭제 UX에 사용됩니다. 이벤트 분석 혼동을 막기 위해 명칭/키를 분리하는지 확인 부탁드립니다. 필요하다면 별도 상수(예:RECORD_DELETE
)로 분리 추천합니다.feature/detail/src/main/kotlin/com/ninecraft/booket/feature/detail/card/RecordCardSideEffect.kt (1)
43-47
: isCapturing / isSharing 플래그 리셋 경로 보장 확인RememberedEffect는 키 변경 시마다 실행됩니다. 현재 구현은
true
로 전이되는 순간에만 이벤트를 발행하므로 의도는 맞습니다. 다만 상위 상태에서 해당 플래그를 즉시false
로 되돌리는 로직이 없다면(예: 처리 완료 후 리셋), 이후 시나리오에서 재수행이 막힐 수 있습니다. 이벤트 처리부에서 플래그를 반드시 리셋하는지 확인해 주세요. 필요 시 별도 Init 이벤트를 추가해 여기서도 리셋 신호를 보내는 것을 고려할 수 있습니다.Also applies to: 49-53
README.md (6)
25-25
: 섹션 표기 오타: TroubleShooting → Troubleshooting일관된 용어 사용과 검색성을 위해 표기를 교정하세요.
-## TroubleShooting +## Troubleshooting
41-42
: 서브 리스트 들여쓰기 수정(MD007)마크다운 린트 규칙에 따라 하위 항목은 2칸 들여쓰기를 권장합니다.
- - (권장) Android Studio 설치 시 Embeded 된 JDK (Open JDK) - - Java 17을 사용하는 JDK (Open JDK, AdoptOpenJDK, GraalVM) + - (권장) Android Studio 설치 시 Embeded 된 JDK (Open JDK) + - Java 17을 사용하는 JDK (Open JDK, AdoptOpenJDK, GraalVM)
66-76
: 중복 라이브러리 표기 정리
Landscapist
/Coil-Compose
가 두 번 나옵니다. 한 곳만 남기세요.- Coil-Compose, [Landscapist](https://github.com/skydoves/landscapist) @@ -- [Landscapist](https://github.com/skydoves/landscapist), Coil-Compose
102-102
: 펜스 코드블럭에 언어 지정(MD040)렌더링 안정성과 린팅을 위해 언어를 명시하세요.
-``` +```text
23-24
: Features 섹션 보강 제안PR 설명에 따르면 feature 파트는 리뷰어 기여를 요청한 상태입니다. 최소한 화면 타이틀/핵심 포인트를 불릿 형태로 채워 넣을 수 있도록 TODO 가이드를 추가하거나 체크리스트를 두면 합류가 쉬워집니다. 원하시면 초안 템플릿을 드리겠습니다.
35-76
: 개발 가이드에 컨벤션 플러그인 사용 명시 제안이 저장소는 feature 모듈에서
booket.android.feature
컨벤션 플러그인을 사용해 공통 의존성을 관리합니다(이전에 공유해주신 팀 학습 노트 참고). README Development 섹션에 이를 한 줄 추가하면 신규 기여자 온보딩이 빨라집니다.feature/settings/src/main/kotlin/com/ninecraft/booket/feature/settings/osslicenses/OssLicensesPresenter.kt (2)
21-22
:Navigator.pop()
의 반환값 무시 — 실패 시 폴백 고려(선택 사항)Slack Circuit의
Navigator.pop()
은Boolean
반환(성공/실패)을 제공합니다. 루트에서 실패하는 경우를 대비해 로깅 혹은 폴백을 두는 방안을 고려할 수 있습니다. 필수는 아니며 제품 정책에 따릅니다.다음과 같이 최소한의 가드만 추가하는 방식도 가능합니다:
- navigator.pop() + if (!navigator.pop()) { + // TODO: 필요 시 폴백 처리(예: 호스트 Activity finish, 로깅 등) + }
16-28
: eventSink 람다의 참조 안정성 향상 제안(선택 사항)현재 구조도 문제 없지만, 재구성(Recomposition) 시
eventSink
참조가 매번 바뀌지 않도록remember
로 감싸 두면 하위 컴포저블에 불필요한 변경 신호를 줄일 수 있습니다.@Composable override fun present(): OssLicensesUiState { - fun handleEvent(event: OssLicensesUiEvent) { - when (event) { - is OssLicensesUiEvent.OnBackClick -> { - navigator.pop() - } - } - } - return OssLicensesUiState( - eventSink = ::handleEvent, - ) + val eventSink: (OssLicensesUiEvent) -> Unit = remember(navigator) { + { event -> + when (event) { + is OssLicensesUiEvent.OnBackClick -> { + if (!navigator.pop()) { + // 필요 시 폴백 + } + } + } + } + } + return OssLicensesUiState(eventSink = eventSink) }위 변경 시 필요한 import:
import androidx.compose.runtime.remember
📜 Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro
💡 Knowledge Base configuration:
- MCP integration is disabled by default for public repositories
- Jira integration is disabled by default for public repositories
- Linear integration is disabled by default for public repositories
You can enable these sources in your CodeRabbit configuration.
📒 Files selected for processing (6)
README.md
(1 hunks)feature/detail/src/main/kotlin/com/ninecraft/booket/feature/detail/book/BookDetailPresenter.kt
(2 hunks)feature/detail/src/main/kotlin/com/ninecraft/booket/feature/detail/card/RecordCardSideEffect.kt
(1 hunks)feature/settings/src/main/kotlin/com/ninecraft/booket/feature/settings/osslicenses/OssLicensesPresenter.kt
(1 hunks)feature/settings/src/main/kotlin/com/ninecraft/booket/feature/settings/osslicenses/OssLicensesUi.kt
(1 hunks)feature/settings/src/main/kotlin/com/ninecraft/booket/feature/settings/osslicenses/OssLicensesUiState.kt
(1 hunks)
🧰 Additional context used
🧠 Learnings (1)
📚 Learning: 2025-07-20T12:34:23.786Z
Learnt from: easyhooon
PR: YAPP-Github/Reed-Android#61
File: feature/webview/build.gradle.kts:17-21
Timestamp: 2025-07-20T12:34:23.786Z
Learning: Reed-Android 프로젝트에서는 `booket.android.feature` convention plugin을 사용하여 feature 모듈들의 공통 의존성을 관리한다. 이 plugin은 Circuit, Compose, 그리고 core 모듈들의 의존성을 자동으로 포함하므로, 각 feature 모듈의 build.gradle.kts에서는 특별한 의존성(예: libs.logger, libs.kakao.auth)만 별도로 선언하면 된다.
Applied to files:
README.md
🪛 markdownlint-cli2 (0.17.2)
README.md
14-14: Images should have alternate text (alt text)
(MD045, no-alt-text)
15-15: Images should have alternate text (alt text)
(MD045, no-alt-text)
16-16: Images should have alternate text (alt text)
(MD045, no-alt-text)
19-19: Images should have alternate text (alt text)
(MD045, no-alt-text)
20-20: Images should have alternate text (alt text)
(MD045, no-alt-text)
41-41: Unordered list indentation
Expected: 2; Actual: 4
(MD007, ul-indent)
42-42: Unordered list indentation
Expected: 2; Actual: 4
(MD007, ul-indent)
96-96: Images should have alternate text (alt text)
(MD045, no-alt-text)
96-96: Images should have alternate text (alt text)
(MD045, no-alt-text)
102-102: Fenced code blocks should have a language specified
(MD040, fenced-code-language)
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (1)
- GitHub Check: ci-build
🔇 Additional comments (6)
README.md (1)
2-7
: 버전 뱃지와 실제 설정 값 동기화 확인 결과다음 항목들은
gradle/libs.versions.toml
및 빌드 설정(convention plugin 적용)과 일치하는 것으로 확인되었습니다.
- Kotlin: 2.2.0 (
libs.versions.toml
의kotlin = "2.2.0"
과 동일)- minSdkVersion: 28 (
libs.versions.toml
의minSdk = "28"
과 동일)- targetSdkVersion: 35 (
libs.versions.toml
의targetSdk = "35"
과 동일)- compileSdkVersion: 35 (
libs.versions.toml
의compileSdk = "35"
으로 정의되어 있으며, convention plugin에서 적용 중)추가로, 아래 항목들은 수동으로 한 번 더 검토해 주세요:
- Gradle 버전(README 뱃지: 8.11.1)이
gradle/wrapper/gradle-wrapper.properties
의distributionUrl
에 정의된 버전과 일치하는지- Android Studio 버전(README 뱃지: 2025.1.2 – Narwhal)이 현재 권장 IDE 버전과 부합하는지
필요 시 아래 명령어로 확인할 수 있습니다:
# Kotlin 및 SDK 버전 확인 fd -t f gradle/libs.versions.toml \ | xargs -I{} sh -c 'echo "# {}"; rg -n "kotlin|minSdk|targetSdk|compileSdk" {}' # Gradle Wrapper 버전 확인 rg -n "distributionUrl" gradle/wrapper/gradle-wrapper.propertiesfeature/settings/src/main/kotlin/com/ninecraft/booket/feature/settings/osslicenses/OssLicensesUi.kt (1)
74-74
: 이벤트 명칭 변경 일관성 확인 완료리포지토리 전역 스캔 결과
OnBackClicked
사용이 전혀 없으며, 모든 호출부에서OnBackClick
으로 통일되어 있습니다.
이로써 리네이밍이 적절히 반영되었음을 확인했습니다.feature/settings/src/main/kotlin/com/ninecraft/booket/feature/settings/osslicenses/OssLicensesUiState.kt (1)
11-11
: 공개 UI 이벤트 리네이밍 LGTM외부 모듈에서 이 이벤트를 직접 참조한다면(예: UI 테스트, Deep link handler 등) 컴파일 브레이크가 발생할 수 있으니 의존 모듈 빌드/테스트를 한 번 돌려 확인해 주세요. 필요 시 typealias로 한 버전 유지도 가능합니다.
feature/settings/src/main/kotlin/com/ninecraft/booket/feature/settings/osslicenses/OssLicensesPresenter.kt (3)
20-22
: LGTM — 이벤트 명 변경과 동작 유지가 적절합니다
OnBackClicked
→OnBackClick
로의 명칭 정리 좋습니다.navigator.pop()
로 뒤로가기 동작도 이전과 동일하게 유지됩니다.
1-35
: PR 범위 확인 요청: README 작업 PR에 코드 변경이 포함되어 있습니다PR 요약은 README 작성(chore) 중심인데, 본 파일과 다른 UI/State 파일에서 이벤트 명 변경이 포함된 것으로 보입니다. 의도된 범위라면 PR 제목/설명을 업데이트하고, 아니라면 문서/코드 변경을 분리하는 것을 권장합니다.
17-27
: ✅ 레거시 이벤트OnBackClicked
잔존 여부 점검 완료레거시 이벤트 명
OnBackClicked
는 전역에서 더 이상 사용되지 않으며, 신규 이벤트OnBackClick
이 Search, Settings, Detail, Edit 등 여러 모듈에서 정상적으로 호출되고 있음을 확인했습니다.
<img src="https://github.com/user-attachments/assets/f31d5681-bbf0-4de4-93a6-37a2adf54df7" width="30%"/> | ||
<img src="https://github.com/user-attachments/assets/db92e159-091d-425b-8cc2-2324d4191463" width="30%"/> | ||
<img src="https://github.com/user-attachments/assets/5fd3f726-f493-4850-9d99-3933815dcd8b" width="30%"/> | ||
</p> | ||
<p align="center"> | ||
<img src="https://github.com/user-attachments/assets/bb7e3281-c7e4-453d-a921-cc4e9a051434" width="30%"/> | ||
<img src="https://github.com/user-attachments/assets/7c211781-58e5-4413-9f20-f92b1d0c8f24" width="30%"/> | ||
</p> |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
🛠️ Refactor suggestion
이미지에 대체 텍스트(alt) 추가
접근성과 SEO, 그리고 markdownlint(MD045) 규칙을 위해 <img>
에 alt 속성을 추가하세요.
-<img src="https://github.com/user-attachments/assets/f31d5681-bbf0-4de4-93a6-37a2adf54df7" width="30%"/>
-<img src="https://github.com/user-attachments/assets/db92e159-091d-425b-8cc2-2324d4191463" width="30%"/>
-<img src="https://github.com/user-attachments/assets/5fd3f726-f493-4850-9d99-3933815dcd8b" width="30%"/>
+<img alt="screenshot-1" src="https://github.com/user-attachments/assets/f31d5681-bbf0-4de4-93a6-37a2adf54df7" width="30%"/>
+<img alt="screenshot-2" src="https://github.com/user-attachments/assets/db92e159-091d-425b-8cc2-2324d4191463" width="30%"/>
+<img alt="screenshot-3" src="https://github.com/user-attachments/assets/5fd3f726-f493-4850-9d99-3933815dcd8b" width="30%"/>
-<img src="https://github.com/user-attachments/assets/bb7e3281-c7e4-453d-a921-cc4e9a051434" width="30%"/>
-<img src="https://github.com/user-attachments/assets/7c211781-58e5-4413-9f20-f92b1d0c8f24" width="30%"/>
+<img alt="screenshot-4" src="https://github.com/user-attachments/assets/bb7e3281-c7e4-453d-a921-cc4e9a051434" width="30%"/>
+<img alt="screenshot-5" src="https://github.com/user-attachments/assets/7c211781-58e5-4413-9f20-f92b1d0c8f24" width="30%"/>
-|<img width="144" src="https://github.com/user-attachments/assets/7e54768a-ce44-421d-8c03-9df7d0492855">|<img width="144" src="https://github.com/user-attachments/assets/a6cea688-cf9b-41ad-a3a0-9a0c11775fa2">|
+|<img alt="easyhooon-avatar" width="144" src="https://github.com/user-attachments/assets/7e54768a-ce44-421d-8c03-9df7d0492855">|<img alt="seoyoon513-avatar" width="144" src="https://github.com/user-attachments/assets/a6cea688-cf9b-41ad-a3a0-9a0c11775fa2">|
Also applies to: 96-96
🧰 Tools
🪛 markdownlint-cli2 (0.17.2)
14-14: Images should have alternate text (alt text)
(MD045, no-alt-text)
15-15: Images should have alternate text (alt text)
(MD045, no-alt-text)
16-16: Images should have alternate text (alt text)
(MD045, no-alt-text)
19-19: Images should have alternate text (alt text)
(MD045, no-alt-text)
20-20: Images should have alternate text (alt text)
(MD045, no-alt-text)
🤖 Prompt for AI Agents
In README.md around lines 14 to 21 (also apply same change at line 96), the
<img> tags are missing alt attributes which breaks accessibility, SEO and
markdownlint rule MD045; add an alt attribute to each <img> tag (use a short,
meaningful description of the image for content images, or alt="" for purely
decorative images) so each tag becomes <img src="..." alt="descriptive text"
...>, and ensure alt text is concise and relevant.
toImageBitmap() 은 suspend 함수임;
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 0
♻️ Duplicate comments (2)
README.md (2)
14-16
: 이미지에 대체 텍스트(alt) 추가로 접근성/SEO/markdownlint 개선현
<img>
태그들에 alt 속성이 없어 MD045가 발생합니다. 간단한 설명 alt를 추가해 주세요.-<img src="https://github.com/user-attachments/assets/f31d5681-bbf0-4de4-93a6-37a2adf54df7" width="30%"/> -<img src="https://github.com/user-attachments/assets/db92e159-091d-425b-8cc2-2324d4191463" width="30%"/> -<img src="https://github.com/user-attachments/assets/5fd3f726-f493-4850-9d99-3933815dcd8b" width="30%"/> +<img alt="screenshot-1" src="https://github.com/user-attachments/assets/f31d5681-bbf0-4de4-93a6-37a2adf54df7" width="30%"/> +<img alt="screenshot-2" src="https://github.com/user-attachments/assets/db92e159-091d-425b-8cc2-2324d4191463" width="30%"/> +<img alt="screenshot-3" src="https://github.com/user-attachments/assets/5fd3f726-f493-4850-9d99-3933815dcd8b" width="30%"/> -<img src="https://github.com/user-attachments/assets/bb7e3281-c7e4-453d-a921-cc4e9a051434" width="30%"/> -<img src="https://github.com/user-attachments/assets/7c211781-58e5-4413-9f20-f92b1d0c8f24" width="30%"/> +<img alt="screenshot-4" src="https://github.com/user-attachments/assets/bb7e3281-c7e4-453d-a921-cc4e9a051434" width="30%"/> +<img alt="screenshot-5" src="https://github.com/user-attachments/assets/7c211781-58e5-4413-9f20-f92b1d0c8f24" width="30%"/>Also applies to: 19-20
94-98
: 개발자 아바타 이미지 alt 텍스트 추가(MD045)표 내 아바타 이미지에도 alt를 추가해 주세요.
-|<img width="144" src="https://github.com/user-attachments/assets/7e54768a-ce44-421d-8c03-9df7d0492855">|<img width="144" src="https://github.com/user-attachments/assets/a6cea688-cf9b-41ad-a3a0-9a0c11775fa2">| +|<img alt="easyhooon-avatar" width="144" src="https://github.com/user-attachments/assets/7e54768a-ce44-421d-8c03-9df7d0492855">|<img alt="seoyoon513-avatar" width="144" src="https://github.com/user-attachments/assets/a6cea688-cf9b-41ad-a3a0-9a0c11775fa2">|
🧹 Nitpick comments (8)
README.md (8)
42-43
: 서브 리스트 들여쓰기와 오탈자 수정(MD007), 용어 표기 통일들여쓰기는 2칸 권장이고, “Embeded” → “Embedded”, “Open JDK” → “OpenJDK”로 통일을 제안합니다.
- - (권장) Android Studio 설치 시 Embeded 된 JDK (Open JDK) - - Java 17을 사용하는 JDK (Open JDK, AdoptOpenJDK, GraalVM) + - (권장) Android Studio 설치 시 Embedded 된 JDK (OpenJDK) + - Java 17을 사용하는 JDK (OpenJDK, AdoptOpenJDK, GraalVM)
25-25
: 헤딩 오탈자: TroubleShooting → Troubleshooting일관된 영문 표기 권장합니다.
-## TroubleShooting +## Troubleshooting
64-76
: 라이브러리 목록 중복 항목 제거 및 정리Landscapist/Coil-Compose가 중복 기재되어 있습니다. 한 번만 노출되도록 정리해 주세요.
- - Coil-Compose, [Landscapist](https://github.com/skydoves/landscapist) + - Coil-Compose, [Landscapist](https://github.com/skydoves/landscapist) ... - - [Landscapist](https://github.com/skydoves/landscapist), Coil-Compose - - [ComposeExtensions](https://github.com/taehwandev/ComposeExtensions) + - [ComposeExtensions](https://github.com/taehwandev/ComposeExtensions)
103-103
: 펜스 코드블록에 언어 지정(MD040)
패키지 트리 블록에 언어를 명시하세요. 일반 텍스트면 text를 권장합니다.-``` +```text
23-25
: Features 섹션에 화면별 간단 타이틀 추가 제안PR 설명에 따라 화면 단위의 간단 타이틀만 먼저 채워두는 걸 제안합니다. 모듈 리스트(117–129라인)를 근거로 스켈레톤을 추가했습니다. 필요 시 추후 상세 보완해도 됩니다.
## Features - +- 홈 +- 기록(Record) +- 상세(Detail) +- 라이브러리(Library) +- 로그인 · 온보딩 +- 메인 · 스플래시 +- 설정(오픈소스 라이선스 등) +- 웹뷰추가로 원하시면 제가 각 화면에 1줄 설명도 붙여드릴게요. 적용 여부 코멘트 부탁드립니다.
100-100
: 모듈 다이어그램 이미지 alt 텍스트 구체화보다 의미 있는 대체 텍스트를 사용하면 접근성과 검색성이 좋아집니다.
-<img width="1631" height="719" alt="image" src="https://github.com/user-attachments/assets/f6a26dcd-761a-4dab-ae3f-a32e87eb423b" /> +<img width="1631" height="719" alt="module-diagram" src="https://github.com/user-attachments/assets/f6a26dcd-761a-4dab-ae3f-a32e87eb423b" />
40-45
: 요구 도구 버전 명시로 빌드 재현성 향상상단 배지와 일치하도록 최소 IDE 버전을 명시하면 온보딩/빌드 재현성이 좋아집니다.
-- IDE : Android Studio 최신 버전 +- IDE : Android Studio 2025.1.2 (Narwhal) 이상 - JDK : Java 17을 실행할 수 있는 JDK @@ -- Kotlin Language : 2.2.0 +- Kotlin Language : 2.2.0실제 개발 환경이 2025.1.2 이상인지 확인 부탁드립니다. 아니면 배지/요구사항 중 하나를 조정하죠.
133-134
: 말미의 불필요한 숫자 라인 제거문서 끝에 단독 숫자
134
가 출력됩니다. 빌드/렌더링 노이즈로 보이니 제거하세요.<br/> -134
📜 Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro
💡 Knowledge Base configuration:
- MCP integration is disabled by default for public repositories
- Jira integration is disabled by default for public repositories
- Linear integration is disabled by default for public repositories
You can enable these sources in your CodeRabbit configuration.
📒 Files selected for processing (1)
README.md
(1 hunks)
🧰 Additional context used
🧠 Learnings (1)
📚 Learning: 2025-07-20T12:34:23.786Z
Learnt from: easyhooon
PR: YAPP-Github/Reed-Android#61
File: feature/webview/build.gradle.kts:17-21
Timestamp: 2025-07-20T12:34:23.786Z
Learning: Reed-Android 프로젝트에서는 `booket.android.feature` convention plugin을 사용하여 feature 모듈들의 공통 의존성을 관리한다. 이 plugin은 Circuit, Compose, 그리고 core 모듈들의 의존성을 자동으로 포함하므로, 각 feature 모듈의 build.gradle.kts에서는 특별한 의존성(예: libs.logger, libs.kakao.auth)만 별도로 선언하면 된다.
Applied to files:
README.md
🪛 markdownlint-cli2 (0.17.2)
README.md
14-14: Images should have alternate text (alt text)
(MD045, no-alt-text)
15-15: Images should have alternate text (alt text)
(MD045, no-alt-text)
16-16: Images should have alternate text (alt text)
(MD045, no-alt-text)
19-19: Images should have alternate text (alt text)
(MD045, no-alt-text)
20-20: Images should have alternate text (alt text)
(MD045, no-alt-text)
42-42: Unordered list indentation
Expected: 2; Actual: 4
(MD007, ul-indent)
43-43: Unordered list indentation
Expected: 2; Actual: 4
(MD007, ul-indent)
97-97: Images should have alternate text (alt text)
(MD045, no-alt-text)
97-97: Images should have alternate text (alt text)
(MD045, no-alt-text)
103-103: Fenced code blocks should have a language specified
(MD040, fenced-code-language)
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (1)
- GitHub Check: ci-build
🔇 Additional comments (2)
README.md (2)
1-9
: 초반 섹션 구성과 배지 정리, 깔끔합니다프로젝트 정보가 한눈에 들어오고, 배지들도 최신 스택을 잘 반영하고 있습니다. 문서 가독성 측면에서 좋은 시작이에요.
10-10
: Play 스토어 링크 유효성 확인 요청패키지명이
com.ninecraft.booket
로 표기되어 있는데, 리드 앱의 실제 배포 ID와 일치하는지 최종 확인 부탁드립니다. 리다이렉트/지역 제한 이슈가 있을 수 있습니다.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 2
♻️ Duplicate comments (2)
README.md (2)
14-16
: 이미지에 alt 추가로 접근성/MD045 해결섹션 내
<img>
태그들에 alt가 없습니다. 접근성, SEO, markdownlint(MD045) 위반입니다. 이전 코멘트와 동일 이슈입니다.-<img src="https://github.com/user-attachments/assets/f31d5681-bbf0-4de4-93a6-37a2adf54df7" width="30%"/> -<img src="https://github.com/user-attachments/assets/db92e159-091d-425b-8cc2-2324d4191463" width="30%"/> -<img src="https://github.com/user-attachments/assets/5fd3f726-f493-4850-9d99-3933815dcd8b" width="30%"/> +<img alt="screenshot-1" src="https://github.com/user-attachments/assets/f31d5681-bbf0-4de4-93a6-37a2adf54df7" width="30%"/> +<img alt="screenshot-2" src="https://github.com/user-attachments/assets/db92e159-091d-425b-8cc2-2324d4191463" width="30%"/> +<img alt="screenshot-3" src="https://github.com/user-attachments/assets/5fd3f726-f493-4850-9d99-3933815dcd8b" width="30%"/> -<img src="https://github.com/user-attachments/assets/bb7e3281-c7e4-453d-a921-cc4e9a051434" width="30%"/> -<img src="https://github.com/user-attachments/assets/7c211781-58e5-4413-9f20-f92b1d0c8f24" width="30%"/> +<img alt="screenshot-4" src="https://github.com/user-attachments/assets/bb7e3281-c7e4-453d-a921-cc4e9a051434" width="30%"/> +<img alt="screenshot-5" src="https://github.com/user-attachments/assets/7c211781-58e5-4413-9f20-f92b1d0c8f24" width="30%"/>Also applies to: 19-20
97-97
: 아바타 이미지에도 alt 추가 (MD045)테이블 내 아바타 이미지에도 alt가 없습니다. 이름 기반 alt 권장.
-|<img width="144" src="https://github.com/user-attachments/assets/7e54768a-ce44-421d-8c03-9df7d0492855">|<img width="144" src="https://github.com/user-attachments/assets/a6cea688-cf9b-41ad-a3a0-9a0c11775fa2">| +|<img alt="easyhooon-avatar" width="144" src="https://github.com/user-attachments/assets/7e54768a-ce44-421d-8c03-9df7d0492855">|<img alt="seoyoon513-avatar" width="144" src="https://github.com/user-attachments/assets/a6cea688-cf9b-41ad-a3a0-9a0c11775fa2">|
🧹 Nitpick comments (4)
README.md (4)
100-100
: 이미지 alt를 더 구체적으로
alt="image"
는 의미가 부족합니다. 예: "module-diagram".-<img width="1631" height="719" alt="image" src="https://github.com/user-attachments/assets/f6a26dcd-761a-4dab-ae3f-a32e87eb423b" /> +<img width="1631" height="719" alt="module-diagram" src="https://github.com/user-attachments/assets/f6a26dcd-761a-4dab-ae3f-a32e87eb423b" />
103-103
: 코드 펜스에 언어 지정(MD040)펜스에 언어를 지정해 linter 경고 해소.
-``` +```text
64-76
: 라이브러리 항목 중복 제거(Landscapist/Coil-Compose)
Landscapist
와Coil-Compose
가 중복 기재되어 있습니다. 최초 항목만 유지 권장.- - Coil-Compose, [Landscapist](https://github.com/skydoves/landscapist) + - Coil-Compose, [Landscapist](https://github.com/skydoves/landscapist) ... -- [Landscapist](https://github.com/skydoves/landscapist), Coil-Compose
23-25
: Features 섹션 TODO 정리 지원 가능요청하신 대로 화면별 한 줄 타이틀 나열 형태의 목차 초안 삽입해드릴 수 있습니다. 원하시면 모듈/패키지 구조를 참고해 스켈레톤 작성하겠습니다.
📜 Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro
💡 Knowledge Base configuration:
- MCP integration is disabled by default for public repositories
- Jira integration is disabled by default for public repositories
- Linear integration is disabled by default for public repositories
You can enable these sources in your CodeRabbit configuration.
📒 Files selected for processing (1)
README.md
(1 hunks)
🧰 Additional context used
🧠 Learnings (1)
📚 Learning: 2025-07-20T12:34:23.786Z
Learnt from: easyhooon
PR: YAPP-Github/Reed-Android#61
File: feature/webview/build.gradle.kts:17-21
Timestamp: 2025-07-20T12:34:23.786Z
Learning: Reed-Android 프로젝트에서는 `booket.android.feature` convention plugin을 사용하여 feature 모듈들의 공통 의존성을 관리한다. 이 plugin은 Circuit, Compose, 그리고 core 모듈들의 의존성을 자동으로 포함하므로, 각 feature 모듈의 build.gradle.kts에서는 특별한 의존성(예: libs.logger, libs.kakao.auth)만 별도로 선언하면 된다.
Applied to files:
README.md
🪛 markdownlint-cli2 (0.17.2)
README.md
14-14: Images should have alternate text (alt text)
(MD045, no-alt-text)
15-15: Images should have alternate text (alt text)
(MD045, no-alt-text)
16-16: Images should have alternate text (alt text)
(MD045, no-alt-text)
19-19: Images should have alternate text (alt text)
(MD045, no-alt-text)
20-20: Images should have alternate text (alt text)
(MD045, no-alt-text)
42-42: Unordered list indentation
Expected: 2; Actual: 4
(MD007, ul-indent)
43-43: Unordered list indentation
Expected: 2; Actual: 4
(MD007, ul-indent)
97-97: Images should have alternate text (alt text)
(MD045, no-alt-text)
97-97: Images should have alternate text (alt text)
(MD045, no-alt-text)
103-103: Fenced code blocks should have a language specified
(MD040, fenced-code-language)
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (1)
- GitHub Check: ci-build
🔇 Additional comments (1)
README.md (1)
2-6
: 배지 버전 값 최신성 확인 요청Kotlin/Gradle/Android Studio/SDK 배지가 실제 빌드 설정과 동기화되는지 확인 부탁드립니다. 불일치 시 혼선을 줍니다.
권장 체크:
- libs.versions.toml 및 Gradle Wrapper 버전과 배지 수치 비교
- min/targetSdk가 app 모듈의 defaultConfig와 일치하는지 확인
|
||
## Features | ||
|
||
## TroubleShooting |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
섹션 제목 표기 통일: Troubleshooting
일반 표기 "Troubleshooting" 권장. 앵커/목차 자동생성 시 일관성 좋아집니다.
-## TroubleShooting
+## Troubleshooting
📝 Committable suggestion
‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.
## TroubleShooting | |
## Troubleshooting |
🤖 Prompt for AI Agents
In README.md around lines 25 to 25, the section title uses "TroubleShooting"
which is inconsistent with the common "Troubleshooting" casing; rename the
header to "Troubleshooting" (capital T only) to ensure consistent section titles
and stable autogenerated anchors/TOC.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 0
♻️ Duplicate comments (3)
README.md (3)
25-25
: 섹션 제목 표기 통일: Troubleshooting헤더를 일반 표기인 “Troubleshooting”으로 변경 권장.
-## TroubleShooting +## Troubleshooting
14-16
: 이미지에 alt 추가로 접근성/markdownlint(MD045) 해결본문 스크린샷과 아바타 이미지에 alt 속성이 없습니다.
아래처럼 alt를 추가해 주세요.<p align="center"> -<img src="https://github.com/user-attachments/assets/f31d5681-bbf0-4de4-93a6-37a2adf54df7" width="30%"/> -<img src="https://github.com/user-attachments/assets/db92e159-091d-425b-8cc2-2324d4191463" width="30%"/> -<img src="https://github.com/user-attachments/assets/5fd3f726-f493-4850-9d99-3933815dcd8b" width="30%"/> +<img alt="screenshot-1" src="https://github.com/user-attachments/assets/f31d5681-bbf0-4de4-93a6-37a2adf54df7" width="30%"/> +<img alt="screenshot-2" src="https://github.com/user-attachments/assets/db92e159-091d-425b-8cc2-2324d4191463" width="30%"/> +<img alt="screenshot-3" src="https://github.com/user-attachments/assets/5fd3f726-f493-4850-9d99-3933815dcd8b" width="30%"/> </p> <p align="center"> -<img src="https://github.com/user-attachments/assets/bb7e3281-c7e4-453d-a921-cc4e9a051434" width="30%"/> -<img src="https://github.com/user-attachments/assets/7c211781-58e5-4413-9f20-f92b1d0c8f24" width="30%"/> +<img alt="screenshot-4" src="https://github.com/user-attachments/assets/bb7e3281-c7e4-453d-a921-cc4e9a051434" width="30%"/> +<img alt="screenshot-5" src="https://github.com/user-attachments/assets/7c211781-58e5-4413-9f20-f92b1d0c8f24" width="30%"/> </p> @@ -|<img width="144" src="https://github.com/user-attachments/assets/7e54768a-ce44-421d-8c03-9df7d0492855">|<img width="144" src="https://github.com/user-attachments/assets/a6cea688-cf9b-41ad-a3a0-9a0c11775fa2">| +|<img alt="easyhooon-avatar" width="144" src="https://github.com/user-attachments/assets/7e54768a-ce44-421d-8c03-9df7d0492855">|<img alt="seoyoon513-avatar" width="144" src="https://github.com/user-attachments/assets/a6cea688-cf9b-41ad-a3a0-9a0c11775fa2">|Also applies to: 19-20, 97-97
42-43
: 오타(Embeded→Embedded) 및 리스트 들여쓰기(MD007) 수정2칸 들여쓰기와 철자 수정이 필요합니다.
- - (권장) Android Studio 설치 시 Embeded 된 JDK (Open JDK) - - Java 17을 사용하는 JDK (Open JDK, AdoptOpenJDK, GraalVM) + - (권장) Android Studio 설치 시 Embedded 된 JDK (Open JDK) + - Java 17을 사용하는 JDK (Open JDK, AdoptOpenJDK, GraalVM)
🧹 Nitpick comments (6)
README.md (6)
103-103
: 코드 블록 언어 지정(MD040) 추가목록 트리 코드블록에 언어를 지정해 lint 경고 제거.
-``` +```text
74-75
: 라이브러리 항목 중복 정리(Landscapist/Coil-Compose)Landscapist/Coil이 중복 표기되어 있습니다. 한 곳으로 합치세요.
- - Coil-Compose, [Landscapist](https://github.com/skydoves/landscapist) @@ - - [Landscapist](https://github.com/skydoves/landscapist), Coil-Compose + - Coil-Compose, [Landscapist](https://github.com/skydoves/landscapist)Also applies to: 67-67
56-56
: 라이브러리 명 표기 일관성: StartupAndroidX App Startup 공식 표기는 “Startup”입니다.
- - StartUp + - Startup
10-10
: 브랜드 표기 개선: Play Store공식 표기 “Play Store” 권장.
-Reed(리드) - 문장과 감정을 함께 담는 독서 기록 [PlayStore](https://play.google.com/store/apps/details?id=com.ninecraft.booket&hl=ko) +Reed(리드) - 문장과 감정을 함께 담는 독서 기록 [Play Store](https://play.google.com/store/apps/details?id=com.ninecraft.booket&hl=ko)
23-24
: Features 섹션 비어있음 — 간단 템플릿 추가 제안화면 단위 요약을 빠르게 채울 수 있도록 템플릿 추가를 권장합니다.
## Features - +- 홈: 피드, 추천 문장, 빠른 기록 +- 라이브러리: 소장/완독/보관함 관리 +- 상세: 문장/감정 기록, OCR 인식 +- 기록: 문장/감정/태그 편집 +- 설정: 테마, 오픈소스 라이선스 +- 로그인/온보딩: 소셜 로그인, 초기 설정 +(간단 설명 위주로 편집/추가해 주세요)원하시면 모듈 구조를 참고해 자동 생성 초안을 드리겠습니다.
100-100
: 모듈 다이어그램 이미지 alt 구체화alt를 의미있게 작성해 접근성 향상.
-<img width="1631" height="719" alt="image" src="https://github.com/user-attachments/assets/f6a26dcd-761a-4dab-ae3f-a32e87eb423b" /> +<img width="1631" height="719" alt="module-diagram" src="https://github.com/user-attachments/assets/f6a26dcd-761a-4dab-ae3f-a32e87eb423b" />
📜 Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro
💡 Knowledge Base configuration:
- MCP integration is disabled by default for public repositories
- Jira integration is disabled by default for public repositories
- Linear integration is disabled by default for public repositories
You can enable these sources in your CodeRabbit configuration.
📒 Files selected for processing (1)
README.md
(1 hunks)
🧰 Additional context used
🧠 Learnings (1)
📚 Learning: 2025-07-20T12:34:23.786Z
Learnt from: easyhooon
PR: YAPP-Github/Reed-Android#61
File: feature/webview/build.gradle.kts:17-21
Timestamp: 2025-07-20T12:34:23.786Z
Learning: Reed-Android 프로젝트에서는 `booket.android.feature` convention plugin을 사용하여 feature 모듈들의 공통 의존성을 관리한다. 이 plugin은 Circuit, Compose, 그리고 core 모듈들의 의존성을 자동으로 포함하므로, 각 feature 모듈의 build.gradle.kts에서는 특별한 의존성(예: libs.logger, libs.kakao.auth)만 별도로 선언하면 된다.
Applied to files:
README.md
🪛 markdownlint-cli2 (0.17.2)
README.md
14-14: Images should have alternate text (alt text)
(MD045, no-alt-text)
15-15: Images should have alternate text (alt text)
(MD045, no-alt-text)
16-16: Images should have alternate text (alt text)
(MD045, no-alt-text)
19-19: Images should have alternate text (alt text)
(MD045, no-alt-text)
20-20: Images should have alternate text (alt text)
(MD045, no-alt-text)
42-42: Unordered list indentation
Expected: 2; Actual: 4
(MD007, ul-indent)
43-43: Unordered list indentation
Expected: 2; Actual: 4
(MD007, ul-indent)
97-97: Images should have alternate text (alt text)
(MD045, no-alt-text)
97-97: Images should have alternate text (alt text)
(MD045, no-alt-text)
103-103: Fenced code blocks should have a language specified
(MD040, fenced-code-language)
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (1)
- GitHub Check: ci-build
🔇 Additional comments (1)
README.md (1)
2-6
: README 배지와 실제 설정 비교 검증 결과
- Kotlin 버전: badge(2.2.0)와 gradle/libs.versions.toml(2.2.0) 일치
- Gradle Wrapper 버전: badge(8.11.1)와 gradle/wrapper/gradle-wrapper.properties(gradle-8.11.1) 일치
- minSdkVersion/targetSdkVersion: 자동 스크립트로 검출되지 않으므로 모듈별
defaultConfig
블록에서 값(28/35)을 수동 확인 요망
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 0
♻️ Duplicate comments (3)
README.md (3)
14-16
: 이미지에 alt 추가로 접근성/markdownlint(MD045) 해결동일 지적이 남아 있어 일괄 반영 제안드립니다.
<p align="center"> -<img src="https://github.com/user-attachments/assets/f31d5681-bbf0-4de4-93a6-37a2adf54df7" width="30%"/> -<img src="https://github.com/user-attachments/assets/db92e159-091d-425b-8cc2-2324d4191463" width="30%"/> -<img src="https://github.com/user-attachments/assets/5fd3f726-f493-4850-9d99-3933815dcd8b" width="30%"/> +<img alt="screenshot-1" src="https://github.com/user-attachments/assets/f31d5681-bbf0-4de4-93a6-37a2adf54df7" width="30%"/> +<img alt="screenshot-2" src="https://github.com/user-attachments/assets/db92e159-091d-425b-8cc2-2324d4191463" width="30%"/> +<img alt="screenshot-3" src="https://github.com/user-attachments/assets/5fd3f726-f493-4850-9d99-3933815dcd8b" width="30%"/> </p> <p align="center"> -<img src="https://github.com/user-attachments/assets/bb7e3281-c7e4-453d-a921-cc4e9a051434" width="30%"/> -<img src="https://github.com/user-attachments/assets/7c211781-58e5-4413-9f20-f92b1d0c8f24" width="30%"/> +<img alt="screenshot-4" src="https://github.com/user-attachments/assets/bb7e3281-c7e4-453d-a921-cc4e9a051434" width="30%"/> +<img alt="screenshot-5" src="https://github.com/user-attachments/assets/7c211781-58e5-4413-9f20-f92b1d0c8f24" width="30%"/> </p> ... -|<img width="144" src="https://github.com/user-attachments/assets/7e54768a-ce44-421d-8c03-9df7d0492855">|<img width="144" src="https://github.com/user-attachments/assets/a6cea688-cf9b-41ad-a3a0-9a0c11775fa2">| +|<img alt="easyhooon-avatar" width="144" src="https://github.com/user-attachments/assets/7e54768a-ce44-421d-8c03-9df7d0492855">|<img alt="seoyoon513-avatar" width="144" src="https://github.com/user-attachments/assets/a6cea688-cf9b-41ad-a3a0-9a0c11775fa2">|Also applies to: 19-20, 96-96
25-25
: 섹션 제목 표기 통일: Troubleshooting일반 표기 "Troubleshooting"으로 교정 권장.
-## TroubleShooting +## Troubleshooting
42-43
: 서브 리스트 들여쓰기(MD007) 수정2칸 들여쓰기 권장 규칙에 맞게 정리.
- - (권장) Android Studio 설치 시 Embedded 된 JDK (Open JDK) - - Java 17을 사용하는 JDK (Open JDK, AdoptOpenJDK, GraalVM) + - (권장) Android Studio 설치 시 Embedded 된 JDK (Open JDK) + - Java 17을 사용하는 JDK (Open JDK, AdoptOpenJDK, GraalVM)
🧹 Nitpick comments (4)
README.md (4)
102-102
: 코드 펜스에 언어 지정(MD040) 추가디렉터리 트리 블록에 언어 지정으로 lint 해결.
-``` +```text
23-24
: Features 섹션에 최소 골격 추가검토자 안내에 따라 화면별 한 줄 소개 placeholder 추가 제안.
## Features - +> 화면별 주요 기능을 한 줄로 요약해주세요. (예시 placeholder) +- 홈: 최근 기록 요약, 진행 중인 책 바로가기 +- 기록: 문장 스크랩, 감정 태깅, OCR 입력 +- 라이브러리: 소장/읽은 책 관리, 정렬/필터 +- 상세: 하이라이트/감정 타임라인, 통계 +- 설정: 백업/복원, OSS 라이선스원하시면 실제 스크린 별 타이틀 문구도 초안 드리겠습니다.
83-86
: Gradle 섹션에 컨벤션 플러그인 사용 명시프로젝트 온보딩을 위해 feature 모듈 공통 의존성은 컨벤션 플러그인으로 관리된다는 점을 README에 명시하세요. (지난 러닝 참고)
#### Gradle Dependency - Gradle Version Catalog +- (참고) feature 모듈 공통 의존성은 `booket.android.feature` 컨벤션 플러그인에서 관리됩니다. (build-logic 참조)
(learned from retrieved learnings)
98-98
: 헤더 복수형 정리목록 소개이므로 “Modules”가 자연스럽습니다.
-## Module +## Modules
📜 Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro
💡 Knowledge Base configuration:
- MCP integration is disabled by default for public repositories
- Jira integration is disabled by default for public repositories
- Linear integration is disabled by default for public repositories
You can enable these sources in your CodeRabbit configuration.
📒 Files selected for processing (1)
README.md
(1 hunks)
🧰 Additional context used
🧠 Learnings (1)
📚 Learning: 2025-07-20T12:34:23.786Z
Learnt from: easyhooon
PR: YAPP-Github/Reed-Android#61
File: feature/webview/build.gradle.kts:17-21
Timestamp: 2025-07-20T12:34:23.786Z
Learning: Reed-Android 프로젝트에서는 `booket.android.feature` convention plugin을 사용하여 feature 모듈들의 공통 의존성을 관리한다. 이 plugin은 Circuit, Compose, 그리고 core 모듈들의 의존성을 자동으로 포함하므로, 각 feature 모듈의 build.gradle.kts에서는 특별한 의존성(예: libs.logger, libs.kakao.auth)만 별도로 선언하면 된다.
Applied to files:
README.md
🪛 markdownlint-cli2 (0.17.2)
README.md
14-14: Images should have alternate text (alt text)
(MD045, no-alt-text)
15-15: Images should have alternate text (alt text)
(MD045, no-alt-text)
16-16: Images should have alternate text (alt text)
(MD045, no-alt-text)
19-19: Images should have alternate text (alt text)
(MD045, no-alt-text)
20-20: Images should have alternate text (alt text)
(MD045, no-alt-text)
42-42: Unordered list indentation
Expected: 2; Actual: 4
(MD007, ul-indent)
43-43: Unordered list indentation
Expected: 2; Actual: 4
(MD007, ul-indent)
96-96: Images should have alternate text (alt text)
(MD045, no-alt-text)
96-96: Images should have alternate text (alt text)
(MD045, no-alt-text)
102-102: Fenced code blocks should have a language specified
(MD040, fenced-code-language)
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (1)
- GitHub Check: ci-build
🔇 Additional comments (1)
README.md (1)
2-6
: Kotlin·Gradle 배지 일치, SDK 버전 직접 확인 필요
- Kotlin:
gradle/libs.versions.toml
에서 2.2.0 확인- Gradle:
gradle/wrapper/gradle-wrapper.properties
에서 8.11.1 확인- minSdkVersion(28)/targetSdkVersion(35): 코드베이스에서 자동 검색되지 않으니 각 모듈의
build.gradle(.kts)
파일에서 직접 확인 요망
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 2
♻️ Duplicate comments (3)
README.md (3)
39-39
: 섹션 제목 표기 통일: Troubleshooting일반 표기 “Troubleshooting” 권장. 앵커/TOC 안정화에 유리합니다.
-## TroubleShooting +## Troubleshooting
17-24
: 갤러리 스크린샷 alt 누락 (접근성/MD045)이미지 5개 모두 alt가 없습니다. 간단한 대체 텍스트를 부여하세요.
-<img src="https://github.com/user-attachments/assets/f31d5681-bbf0-4de4-93a6-37a2adf54df7" width="30%"/> -<img src="https://github.com/user-attachments/assets/db92e159-091d-425b-8cc2-2324d4191463" width="30%"/> -<img src="https://github.com/user-attachments/assets/5fd3f726-f493-4850-9d99-3933815dcd8b" width="30%"/> +<img alt="screenshot-1" src="https://github.com/user-attachments/assets/f31d5681-bbf0-4de4-93a6-37a2adf54df7" width="30%"/> +<img alt="screenshot-2" src="https://github.com/user-attachments/assets/db92e159-091d-425b-8cc2-2324d4191463" width="30%"/> +<img alt="screenshot-3" src="https://github.com/user-attachments/assets/5fd3f726-f493-4850-9d99-3933815dcd8b" width="30%"/> -<img src="https://github.com/user-attachments/assets/bb7e3281-c7e4-453d-a921-cc4e9a051434" width="30%"/> -<img src="https://github.com/user-attachments/assets/7c211781-58e5-4413-9f20-f92b1d0c8f24" width="30%"/> +<img alt="screenshot-4" src="https://github.com/user-attachments/assets/bb7e3281-c7e4-453d-a921-cc4e9a051434" width="30%"/> +<img alt="screenshot-5" src="https://github.com/user-attachments/assets/7c211781-58e5-4413-9f20-f92b1d0c8f24" width="30%"/>
110-110
: 개발자 아바타 이미지 alt 추가 (접근성/MD045)테이블 내 avatar 이미지에 alt가 없습니다.
-|<img width="144" src="https://github.com/user-attachments/assets/7e54768a-ce44-421d-8c03-9df7d0492855">|<img width="144" src="https://github.com/user-attachments/assets/a6cea688-cf9b-41ad-a3a0-9a0c11775fa2">| +|<img alt="easyhooon-avatar" width="144" src="https://github.com/user-attachments/assets/7e54768a-ce44-421d-8c03-9df7d0492855">|<img alt="seoyoon513-avatar" width="144" src="https://github.com/user-attachments/assets/a6cea688-cf9b-41ad-a3a0-9a0c11775fa2">|
🧹 Nitpick comments (5)
README.md (5)
26-30
: 테이블 전후 공백 추가 (MD058)헤더 바로 아래 테이블 앞에 빈 줄을 추가하세요.
## Features + | 홈 | 도서 검색 및 등록 | 내서재 | |:---:|:---:|:---:| | <img width="230" alt="홈" src="https://github.com/user-attachments/assets/657e14e1-e578-4d7c-8c38-3591d61b1429" /> | <img width="230" alt="도서 검색 및 등록" src="https://github.com/user-attachments/assets/7a166abf-1160-4cdf-8ec5-f8071d7f0891" /> | <img width="230" alt="내서재" src="https://github.com/user-attachments/assets/d4679cd4-0188-4763-9adc-e210bef44ef0" /> |
56-57
: 서브 리스트 들여쓰기 2칸으로 정렬 (MD007) + ‘Embedded’ 철자 확인서브아이템 들여쓰기를 2칸으로, 철자는 이미 ‘Embedded’로 올바릅니다.
-- - (권장) Android Studio 설치 시 Embedded 된 JDK (Open JDK) -- - Java 17을 사용하는 JDK (Open JDK, AdoptOpenJDK, GraalVM) +- - (권장) Android Studio 설치 시 Embedded 된 JDK (Open JDK) +- - Java 17을 사용하는 JDK (Open JDK, AdoptOpenJDK, GraalVM)
67-73
: AndroidX 하위 항목 들여쓰기 2칸으로 수정 (MD007) + 표기 수정“Startup” 표기가 공식 명칭입니다.
-- - Activity Compose -- - Core -- - DataStore -- - StartUp -- - Splash -- - CameraX +- - Activity Compose +- - Core +- - DataStore +- - Startup +- - Splash +- - CameraX
76-76
: Compose 하위 항목 들여쓰기 2칸으로 수정 (MD007)하위 리스트 들여쓰기 일관화.
-- - Material3 +- - Material3
116-147
: 코드 블록에 언어 지정 (MD040)패키지 구조 코드펜스에 언어 지정이 없습니다. “text”로 지정 권장.
-``` +```text ├── app │ └── application ... └── gradle └── libs.versions.toml -``` +```
📜 Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro
💡 Knowledge Base configuration:
- MCP integration is disabled by default for public repositories
- Jira integration is disabled by default for public repositories
- Linear integration is disabled by default for public repositories
You can enable these sources in your CodeRabbit configuration.
📒 Files selected for processing (1)
README.md
(1 hunks)
🧰 Additional context used
🧠 Learnings (1)
📚 Learning: 2025-07-20T12:34:23.786Z
Learnt from: easyhooon
PR: YAPP-Github/Reed-Android#61
File: feature/webview/build.gradle.kts:17-21
Timestamp: 2025-07-20T12:34:23.786Z
Learning: Reed-Android 프로젝트에서는 `booket.android.feature` convention plugin을 사용하여 feature 모듈들의 공통 의존성을 관리한다. 이 plugin은 Circuit, Compose, 그리고 core 모듈들의 의존성을 자동으로 포함하므로, 각 feature 모듈의 build.gradle.kts에서는 특별한 의존성(예: libs.logger, libs.kakao.auth)만 별도로 선언하면 된다.
Applied to files:
README.md
🪛 markdownlint-cli2 (0.17.2)
README.md
13-13: Images should have alternate text (alt text)
(MD045, no-alt-text)
17-17: Images should have alternate text (alt text)
(MD045, no-alt-text)
18-18: Images should have alternate text (alt text)
(MD045, no-alt-text)
19-19: Images should have alternate text (alt text)
(MD045, no-alt-text)
22-22: Images should have alternate text (alt text)
(MD045, no-alt-text)
23-23: Images should have alternate text (alt text)
(MD045, no-alt-text)
27-27: Tables should be surrounded by blank lines
(MD058, blanks-around-tables)
56-56: Unordered list indentation
Expected: 2; Actual: 4
(MD007, ul-indent)
57-57: Unordered list indentation
Expected: 2; Actual: 4
(MD007, ul-indent)
67-67: Unordered list indentation
Expected: 2; Actual: 4
(MD007, ul-indent)
68-68: Unordered list indentation
Expected: 2; Actual: 4
(MD007, ul-indent)
69-69: Unordered list indentation
Expected: 2; Actual: 4
(MD007, ul-indent)
70-70: Unordered list indentation
Expected: 2; Actual: 4
(MD007, ul-indent)
71-71: Unordered list indentation
Expected: 2; Actual: 4
(MD007, ul-indent)
72-72: Unordered list indentation
Expected: 2; Actual: 4
(MD007, ul-indent)
76-76: Unordered list indentation
Expected: 2; Actual: 4
(MD007, ul-indent)
110-110: Images should have alternate text (alt text)
(MD045, no-alt-text)
110-110: Images should have alternate text (alt text)
(MD045, no-alt-text)
116-116: Fenced code blocks should have a language specified
(MD040, fenced-code-language)
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (1)
- GitHub Check: ci-build
🔇 Additional comments (1)
README.md (1)
3-7
: README 배지와 빌드 설정 동기화 확인
- Kotlin(2.2.0) →
gradle/libs.versions.toml
의kotlin = "2.2.0"
와 일치- Gradle(8.11.1) →
gradle/wrapper/gradle-wrapper.properties
의distributionUrl=…gradle-8.11.1…
와 일치- Android Studio(2025.1.2) → IDE 버전으로 코드에서 선언되지 않음. 실제 사용 중인 Android Studio 버전을 수동 검증
- minSdkVersion, targetSdkVersion → 전체
.kts
파일에서 선언 위치 미발견. 앱 모듈(app/build.gradle.kts
등)에서 설정된 값을 확인해 README 배지(28/35)와 일치 여부 검증
<a href="https://play.google.com/store/apps/details?id=com.ninecraft.booket&hl=ko"> | ||
<img src="https://github.com/user-attachments/assets/8699ffd3-3399-45eb-9e2b-88818ba62091" width="200" /> | ||
</a> |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
💡 Verification agent
🧩 Analysis chain
Google Play 스토어 링크 유효성 확인
패키지 ID(com.ninecraft.booket)와 실제 배포 앱이 일치하는지 확인 필요. 미출시/변경 시 사용자를 404로 유도할 수 있습니다.
🌐 Web query:
현재 Google Play에 com.ninecraft.booket 패키지의 공개 스토어 페이지가 존재하는지 확인해 주세요. 존재하지 않으면 링크를 제거하거나 올바른 패키지 ID로 교체하세요.
💡 Result:
검색해봤습니다 — com.ninecraft.booket 패키지의 공개 Google Play 스토어 페이지는 찾을 수 없습니다. 링크가 있다면 제거하거나 올바른 패키지 ID로 교체하세요. 올바른 패키지 ID를 알려주시면 제가 다시 확인해 드리겠습니다.
Google Play 스토어 링크 제거 또는 올바른 패키지 ID로 교체
README.md (12–14)에서 com.ninecraft.booket 패키지에 해당하는 앱이 존재하지 않아 링크가 404를 반환합니다. 링크를 제거하거나 실제 배포된 앱의 올바른 패키지 ID로 교체해 주세요.
🧰 Tools
🪛 markdownlint-cli2 (0.17.2)
13-13: Images should have alternate text (alt text)
(MD045, no-alt-text)
🤖 Prompt for AI Agents
In README.md around lines 12 to 14, the Google Play link points to package id
com.ninecraft.booket which returns 404; either remove the anchor and image or
replace the href with the correct Play Store package id for the app (and update
the image src if needed), ensuring the link targets an existing app and that the
badge image still displays correctly.
<img src="https://github.com/user-attachments/assets/8699ffd3-3399-45eb-9e2b-88818ba62091" width="200" /> | ||
</a> |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Google Play 배지에 alt 추가 (접근성/MD045)
링크 내부 이미지에 alt가 없습니다. 접근성과 markdownlint(MD045) 충족을 위해 alt를 추가하세요.
<a href="https://play.google.com/store/apps/details?id=com.ninecraft.booket&hl=ko">
- <img src="https://github.com/user-attachments/assets/8699ffd3-3399-45eb-9e2b-88818ba62091" width="200" />
+ <img alt="Get it on Google Play" src="https://github.com/user-attachments/assets/8699ffd3-3399-45eb-9e2b-88818ba62091" width="200" />
</a>
📝 Committable suggestion
‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.
<img src="https://github.com/user-attachments/assets/8699ffd3-3399-45eb-9e2b-88818ba62091" width="200" /> | |
</a> | |
<a href="https://play.google.com/store/apps/details?id=com.ninecraft.booket&hl=ko"> | |
<img alt="Get it on Google Play" src="https://github.com/user-attachments/assets/8699ffd3-3399-45eb-9e2b-88818ba62091" width="200" /> | |
</a> |
🧰 Tools
🪛 markdownlint-cli2 (0.17.2)
13-13: Images should have alternate text (alt text)
(MD045, no-alt-text)
🤖 Prompt for AI Agents
In README.md around lines 13-14, the <img> tag inside the link is missing an alt
attribute which violates accessibility and markdownlint MD045; add a concise,
descriptive alt attribute to the image (e.g., "Get it on Google Play" or an
appropriate Korean equivalent) so the <img> element reads alt="..." and
satisfies accessibility and the linter.
@seoyoon513 좋구만 approve 해주시면 될거같슴다~ |
🔗 관련 이슈
📙 작업 설명
🧪 테스트 내역 (선택)
📸 스크린샷 또는 시연 영상 (선택)
💬 추가 설명 or 리뷰 포인트 (선택)
Summary by CodeRabbit