Skip to content

Conversation

@PeraSite
Copy link
Member

@PeraSite PeraSite commented Sep 8, 2025

Summary

이미지, 폰트, 코드 최적화를 통해 릴리즈 APK 크기를 47MB에서 34MB로 약 25% 줄였습니다.

Describe changes

  • minSdk를 Android 9(SDK 28)로 업그레이드 했습니다. Font Weight를 가변으로 조절하려면 최소로 필요하더라구요. Compat으로 할까도 했지만 업그레이드 하자는 공통된 의견이 있어 진행했습니다!
  • 용량이 가장 큰 이미지 2개를 TinyPng 사이트를 통해 압축했습니다.
  • 기존에 사용하던 Pretendard의 여러 Variant 폰트 파일을 모두 삭제하고, Variable 폰트 하나로 통일했습니다. 슬랙에서는 테마를 건드리는 방향으로 이야기가 나왔었지만, font variant 별로 xml를 만드는 방식으로 진행해 기존 코드 수정 없이 폰트를 바꾸었습니다.
  • isShrinkResources, isMinifyEnabled를 true로 변경했습니다. 이 과정에서 과거에 발생했었던 Proguard 문제를 해결하는 rule를 추가했습니다.

Issue

To reviewers

  • Proguard 관련해서 발생했던 문제를 디버깅하는데 굉장히 어려웠어요. 실행하자마자 크래시나는 문제를 해결하니 카카오 로그인이 안되더라구요.
    결과적으로는 카카오 디벨로퍼 문서에 있던 내용과 네트워크 통신에 사용하는 DTO를 추가하니 해결되었습니다! 추후에 안드로이드 개발 하실 때 참고하실 수 있을 것 같아요.

  • 릴리즈 모드로 빌드한 APK랑 실제로 유저가 플레이스토어에서 설치하는 용량은 크게 다릅니다! 네이버 지도 API 라이브러리가 네이티브 바이너리라서 so 파일로 아키텍처마다 빌드 되어 있는데, App Bundle로 빌드해서 플레이 스토어에 올리면 아키텍처에 맞는 파일만 다운로드 받거든요. 이외에도 고해상도 핸드폰이어야만 고화질 이미지를 다운로드 받는 등 여러 최적화가 있습니다.

image

그래서 실제로는 앱 크기가 평균 25MB 정도에요.
Google Play Console > 모니터링 및 개선 > Android vitals > 앱 크기 에 가보시면 확인할 수 있습니다.
image

용량 최적화를 켰었던 2.1.12 버전의 용량이 15MB 언저리이니, 폰트와 이미지 최적화까지 한 후라면 더 내려갈 것 같아요.

@PeraSite PeraSite self-assigned this Sep 8, 2025
@PeraSite PeraSite marked this pull request as ready for review September 8, 2025 17:29
Copy link
Member

@HI-JIN2 HI-JIN2 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

좋은 PR 감사합니다!!! 👍
난독화를 하다가 던져버린 이유가 생각났네요... true로 바꾸니까 뭐가 안되는데 디버깅 하기 어려웠던 기억이 나요...

만든 사람들에 제훈님 추가 요청도 드리면 좋을 것 같아용~!!

@kangyuri1114
Copy link
Member

너무 좋네요 수고하셨습니다!

@PeraSite PeraSite merged commit f5fa895 into develop Sep 14, 2025
1 check passed
@PeraSite PeraSite deleted the feat/smaller-bundle branch September 14, 2025 14:57
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

minSdk 올리기 앱 용량 줄이기

4 participants