본문 바로가기
Flutter

Flutter 성능 최적화(이미지) 기법 - 노하우를 배워보세요!

by 난타코다옹 2023. 10. 2.

목차

    Flutter는 크로스 플랫폼 개발에 최적화된 프레임워크로, 빠른 개발과 높은 생산성을 제공합니다. 하지만, 앱의 성능이 떨어지면 사용자 경험에 지장을 줄 수 있습니다. 이번 글에서는 Flutter 앱의 성능을 최적화하는 방법에 대해 알아보겠습니다.

    1. Widget 최적화

    Flutter는 위젯 기반으로 동작하기 때문에, 화면에 보이는 위젯의 개수가 많아질수록 성능이 저하될 수 있습니다. 따라서, 불필요한 위젯을 최적화하고, 레이아웃 계산과 렌더링 속도를 높이는 방법을 적용해야 합니다. 이를 위해, 다음과 같은 방법을 사용할 수 있습니다.
    • Stateful Widget을 Stateless Widget으로 변경
    • Offstage Widget 사용
    • 리스트나 그리드뷰에서는 ListView.builder나 GridView.builder 사용
    • MediaQuery.of(context).size를 사용하여 레이아웃 계산 최적화

    2. 이미지 최적화

    Flutter에서 이미지는 앱의 용량을 크게 차지하며, 성능에 직접적인 영향을 미칩니다. 따라서, 이미지를 최적화하여 앱의 성능을 향상시킬 수 있습니다. 이를 위해, 다음과 같은 방법을 사용할 수 있습니다.
    • 이미지를 압축하여 용량을 줄이기
    • 캐시를 사용하여 이미지 로딩 속도를 높이기
    • 이미지를 미리 로드하여 사용자 경험 향상

    Flutter 코드 예시:

    // 이미지 캐시
    final ImageCache imageCache = PaintingBinding.instance!.imageCache;
    imageCache.maximumSize = 100;
    imageCache.maximumSizeBytes = 50 * 1024 * 1024;
    
    // 이미지 압축
    final bytes = await imageFile.readAsBytes();
    final compressedBytes = await FlutterImageCompress.compressWithList(
      bytes,
      minHeight: 1920,
      minWidth: 1080,
      quality: 70,
      format: CompressFormat.jpeg,
    );
    
    // 이미지 미리 로드
    final precacheImage = await precacheImage(
      NetworkImage(imageUrl),
      context,
    );

    이번 글에서는 Flutter 앱의 성능 최적화 기법에 대해 알아보았습니다. Widget 최적화와 이미지 최적화를 통해, 앱의 성능을 향상시킬 수 있습니다. 이제 여러분도 이 기법들을 활용하여 더욱 빠르고 효율적인 Flutter 앱을 개발해보세요!