Flutter

Flutter의 앱 크기 최적화 방법

wsstar 2025. 3. 27. 11:00
728x90
반응형

Flutter의 앱 크기 최적화 방법

Flutter는 크로스플랫폼 개발을 지원하는 강력한 프레임워크이지만, 네이티브 앱보다 상대적으로 앱 크기가 클 수 있습니다. 특히, 많은 리소스와 패키지를 사용하면 앱 크기가 불필요하게 증가하여 다운로드 속도와 설치 용량이 커질 수 있습니다.

이 글에서는 Flutter에서 앱 크기를 최적화하는 방법을 설명하고, 앱 용량을 줄이는 주요 기법을 소개하겠습니다.


1. Flutter 앱 크기가 커지는 원인

Flutter 앱의 크기가 증가하는 주요 원인은 다음과 같습니다.

  • 사용하지 않는 패키지 및 라이브러리 포함
  • 고해상도 이미지 및 미디어 파일 사용
  • 네이티브 코드와 플러그인 증가
  • 디버그 모드에서 불필요한 개발 도구 포함
  • 멀티플랫폼 지원으로 인한 불필요한 리소스 포함

이러한 요소를 최적화하면 Flutter 앱의 용량을 줄이고 성능을 개선할 수 있습니다.


2. 앱 크기 확인 방법

Flutter에서는 다음 명령어를 사용하여 앱 크기를 분석할 수 있습니다.


flutter build apk --analyze-size

위 명령어를 실행하면 앱 크기에 대한 자세한 분석 보고서를 확인할 수 있으며, 어떤 요소가 많은 공간을 차지하는지 알 수 있습니다.


3. 앱 크기 최적화 방법

(1) 불필요한 패키지 제거

프로젝트에서 사용하지 않는 패키지가 포함되면 앱 크기가 증가할 수 있습니다. pubspec.yaml에서 필요 없는 패키지를 제거하고 flutter clean 명령어를 실행하여 캐시된 리소스를 삭제합니다.


flutter clean
flutter pub get

또한, pubspec.yaml에서 종속성을 정리하여 최소한의 패키지만 포함하는 것이 좋습니다.


(2) 이미지 및 리소스 최적화

이미지 파일이 많으면 앱 크기가 증가합니다. 이를 해결하기 위해 다음과 같은 방법을 사용할 수 있습니다.

  • 이미지를 WebP 또는 SVG 형식으로 변환하여 용량 축소
  • 네트워크에서 이미지를 로드하고, cached_network_image를 사용하여 캐싱
  • Flutter의 AssetGen을 사용하여 필요한 해상도만 포함

import 'package:cached_network_image/cached_network_image.dart';

CachedNetworkImage(
  imageUrl: "https://example.com/image.webp",
  placeholder: (context, url) => CircularProgressIndicator(),
  errorWidget: (context, url, error) => Icon(Icons.error),
);

위 코드는 cached_network_image를 사용하여 네트워크에서 이미지를 로드하면서 캐싱하는 방법을 보여줍니다.


(3) 코드 난독화 및 압축

Flutter에서는 코드 난독화와 압축을 통해 앱 크기를 줄일 수 있습니다.


flutter build apk --release --split-per-abi

위 명령어를 사용하면 ABI(Android Binary Interface)별로 분리된 APK가 생성되어 크기를 줄일 수 있습니다.


(4) ProGuard를 사용한 코드 최적화

ProGuard는 사용되지 않는 Java 및 Kotlin 코드를 제거하여 앱 크기를 줄여줍니다.

Android 프로젝트에서 android/app/proguard-rules.pro 파일을 설정하여 ProGuard를 활성화할 수 있습니다.


-keep class io.flutter.** { *; }
-keep class com.example.myapp.** { *; }

이제 gradle.properties에서 ProGuard를 활성화할 수 있습니다.


android.enableR8=true
android.useAndroidX=true

(5) 앱 번들(Android App Bundle) 사용

Google Play 스토어에서는 AAB(Android App Bundle) 형식을 사용하면 APK보다 크기가 줄어들 수 있습니다.


flutter build appbundle

AAB 형식으로 빌드하면 Play 스토어에서 자동으로 최적화된 APK를 생성하여 사용자의 기기에 적절한 리소스만 다운로드하도록 할 수 있습니다.


(6) iOS 앱 크기 최적화

iOS 앱 크기를 줄이기 위해 다음을 수행할 수 있습니다.

  • flutter build ios --release 명령어로 릴리즈 빌드 수행
  • Xcode에서 Bitcode 설정 활성화
  • iOS에서 사용하지 않는 리소스 제거

4. 앱 크기 최적화 결과 확인

앱 크기를 줄인 후 다시 분석하려면 다음 명령어를 실행할 수 있습니다.


flutter build apk --analyze-size

이 명령어를 실행하면 어떤 부분에서 크기가 줄어들었는지 확인할 수 있습니다.


결론

Flutter에서 앱 크기를 줄이는 방법은 다음과 같습니다.

  • 불필요한 패키지 제거: flutter clean 사용
  • 이미지 최적화: WebP 및 cached_network_image 활용
  • 코드 압축 및 난독화: ProGuard 및 R8 활성화
  • 앱 번들(AAB) 사용: Google Play에서 최적화된 APK 제공

이제 앱 크기를 최적화하여 가볍고 빠른 Flutter 앱을 개발해 보세요!

728x90
반응형