Conversation
Walkthrough릴리즈 빌드에 R8 난독화 및 코드 축소를 활성화하고, Kakao SDK, kotlinx.serialization, Compose Navigation 등 필수 라이브러리를 보존하는 ProGuard/R8 규칙을 추가. 동시에 9개의 개별 폰트 파일을 단일 Variable 폰트로 최적화. Changes
Estimated code review effort🎯 3 (Moderate) | ⏱️ ~25 minutes Poem
🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches📝 Generate docstrings
🧪 Generate unit tests (beta)
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. Comment |
|
@coderabbitai review |
✅ Actions performedReview triggered.
|
There was a problem hiding this comment.
Actionable comments posted: 3
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.
Inline comments:
In `@app/proguard-rules.pro`:
- Around line 1-45: The gradle.properties is missing the R8 optimization toggle
required by Issue `#211`; add the property
android.r8.optimizedResourceShrinking=true to gradle.properties so R8's
optimized resource shrinking is enabled (ensure this change aligns with existing
minifyEnabled/shrinkResources settings in your module build.gradle if present).
- Around line 10-18: The current proguard snippet includes an ineffective rule
"@kotlinx.serialization.Serializable *;" that targets members but `@Serializable`
is a class-level annotation; remove that incorrect line and either rely on
kotlinx.serialization's built-in ProGuard rules (1.6+) or replace it with the
correct class-level keep rule for classes annotated with
kotlinx.serialization.Serializable, while preserving the existing keepattributes
line ("keepattributes Annotation, InnerClasses, Signature, Exceptions") and the
serializer accessor rule ("keepclassmembers class * {
kotlinx.serialization.KSerializer serializer(...); }"); ensure the final rules
explicitly keep classes annotated with kotlinx.serialization.Serializable and
their generated serializer members when you need explicit rules for reflection
or generic collections.
In `@data/consumer-rules.pro`:
- Around line 1-4: Add R8 keep rules to preserve all request/response model
classes annotated with kotlinx.serialization annotations so JSON
field-to-property mappings are not broken: add a keep rule that targets classes
annotated with `@kotlinx.serialization.Serializable` (and those using
`@SerialName`), e.g., for packages like com.threegap.bitnagil.data.**.model.**,
ensuring the classes, their fields, constructors and generated serializer
metadata are retained (so types like VersionCheckResponse and other DTOs remain
intact and their generated serializers are kept). Also ensure serializer
implementation classes (kotlinx.serialization.KSerializer implementors) are
preserved so deserialization used by Retrofit works at runtime.
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: Organization UI
Review profile: CHILL
Plan: Pro
Run ID: 9a285265-7a81-4eb0-a104-87d6fe38647d
⛔ Files ignored due to path filters (10)
core/designsystem/src/main/res/font/pretendard_black.otfis excluded by!**/*.otfcore/designsystem/src/main/res/font/pretendard_bold.otfis excluded by!**/*.otfcore/designsystem/src/main/res/font/pretendard_extra_bold.otfis excluded by!**/*.otfcore/designsystem/src/main/res/font/pretendard_extra_light.otfis excluded by!**/*.otfcore/designsystem/src/main/res/font/pretendard_light.otfis excluded by!**/*.otfcore/designsystem/src/main/res/font/pretendard_medium.otfis excluded by!**/*.otfcore/designsystem/src/main/res/font/pretendard_regular.otfis excluded by!**/*.otfcore/designsystem/src/main/res/font/pretendard_semi_bold.otfis excluded by!**/*.otfcore/designsystem/src/main/res/font/pretendard_thin.otfis excluded by!**/*.otfcore/designsystem/src/main/res/font/pretendard_variable.ttfis excluded by!**/*.ttf
📒 Files selected for processing (5)
app/build.gradle.ktsapp/proguard-rules.procore/designsystem/src/main/java/com/threegap/bitnagil/designsystem/font/Font.ktcore/network/consumer-rules.prodata/consumer-rules.pro
[ PR Content ]
R8 난독화 및 코드 축소를 도입했습니다.
Related issue
Screenshot 📸
Work Description
app/build.gradle.kts: 릴리즈 빌드에 R8 활성화 (isMinifyEnabled = true,isShrinkResources = true)app/proguard-rules.pro: 앱 레벨 keep 규칙 작성To Reviewers 📢
Summary by CodeRabbit
릴리스 노트
성능 최적화
Chores