Post

Flutter 빌드 시 `--no-tree-shake-icons` 플래그 사용 이유

Flutter 빌드 시 --no-tree-shake-icons 플래그 사용 이유를 알아보자!

Flutter 앱 빌드 시 --no-tree-shake-icons 플래그를 사용하는 이유는 아이콘 폰트 트리 쉐이킹을 비활성화하기 위해서입니다. 트리 쉐이킹은 Flutter에서 사용하지 않는 코드를 제거하여 앱 크기를 줄이는 최적화 기술입니다. 하지만 아이콘 폰트의 경우 트리 쉐이킹이 항상 효과적으로 작동하지 않을 수 있습니다.

--no-tree-shake-icons 플래그를 사용해야 하는 경우:

  • 트리 쉐이킹으로 인해 아이콘 누락 오류 발생: 빌드 후 아이콘 누락으로 인해 앱이 깨지거나 예상치 못한 동작을 하는 경우, --no-tree-shake-icons 플래그를 사용하여 아이콘 폰트 트리 쉐이킹을 비활성화하면 문제를 해결할 수 있습니다.
  • 복잡한 아이콘 폰트 라이브러리 사용: 트리 쉐이킹이 분석하기 어려운 복잡한 아이콘 폰트 라이브러리를 사용하는 경우, 플래그를 사용하여 빌드 오류를 방지할 수 있습니다.
  • 앱 크기 증가 감수: 앱 크기가 다소 증가해도 아이콘 폰트 트리 쉐이킹을 비활성화하여 안정성을 확보하고 싶은 경우 플래그를 사용할 수 있습니다.

--no-tree-shake-icons 플래그 사용 시 고려 사항:

  • 앱 크기 증가: 트리 쉐이킹을 비활성화하면 아이콘 폰트가 포함되어 앱 크기가 증가할 수 있습니다.
  • 트리 쉐이킹 장점 상실: 트리 쉐이킹을 비활성화하면 사용하지 않는 코드 제거로 인한 앱 크기 감소 효과를 얻지 못합니다.

--no-tree-shake-icons 플래그 대안:

  • 널리 알려진 아이콘 폰트 라이브러리 사용: Font Awesome, Material Icons와 같이 트리 쉐이킹과 호환되는 인기 있는 라이브러리를 사용하는 것이 좋습니다.
  • 아이콘 패키지 사용: Lottie, Iconly와 같은 아이콘 패키지를 사용하면 별도의 폰트 파일 없이 앱에 아이콘을 쉽게 통합할 수 있습니다.
  • 사용자 지정 아이콘 직접 관리: 사용자 지정 아이콘 개수가 적다면 이미지 자산으로 포함하여 폰트 사용을 피할 수 있습니다.

결론:

--no-tree-shake-icons 플래그는 앱 크기와 안정성 사이의 균형을 맞추는 데 유용한 도구입니다. 앱의 특성과 요구 사항에 따라 플래그 사용 여부를 결정하는 것이 중요합니다.

This post is licensed under CC BY 4.0 by the author.