[flutter] pretty_dio_logger를 활용한 이미지 압축 및 사이즈 조절

이번 포스팅에서는 Flutter 앱에서 이미지를 서버로 업로드하기 전에 이미지 압축사이즈 조절을 하는 방법에 대해 알아보겠습니다. 그리고 pretty_dio_logger 라이브러리를 사용하여 네트워크 요청과 응답을 로깅하는 방법도 소개하겠습니다.

pretty_dio_logger란?

pretty_dio_logger는 Dio 클라이언트의 네트워크 요청과 응답을 로깅하기 위한 편리한 도구입니다. 이 라이브러리를 사용하면 네트워크 요청과 응답의 상세한 정보들을 쉽게 확인할 수 있습니다.

이미지 압축 및 사이즈 조절

먼저, 이미지를 압축하고 사이즈를 조절하기 위해 flutter_image_compress 패키지를 사용할 것입니다. 이 패키지를 활용하여 이미지 파일을 선택하고 원하는 크기로 조절한 다음, 서버로 업로드할 준비를 할 것입니다.

import 'package:flutter_image_compress/flutter_image_compress.dart';

File compressAndResize(File imageFile, int quality, int targetSize) async {
  List<int> imageBytes = await imageFile.readAsBytes();
  List<int> result = await FlutterImageCompress.compressWithList(
    imageBytes,
    minHeight: targetSize,
    minWidth: targetSize,
    quality: quality,
  );
  return File.fromRawPath(Uint8List.fromList(result));
}

pretty_dio_logger 사용하기

이제 pretty_dio_logger를 사용하여 네트워크 요청과 응답을 로깅해보겠습니다. 먼저, dio 패키지를 설치하고 pretty_dio_logger를 추가합니다.

dependencies:
  dio: ^4.0.0
  pretty_dio_logger: ^1.0.5

다음으로, Dio 클라이언트를 생성하고 pretty_dio_logger를 추가합니다.

import 'package:dio/dio.dart';
import 'package:pretty_dio_logger/pretty_dio_logger.dart';

void main() {
  Dio dio = Dio();
  dio.interceptors.add(PrettyDioLogger());
}

마무리

이제 이미지를 압축하고 사이즈를 조절하여 서버로 업로드하기 위한 준비가 끝났습니다. 또한, pretty_dio_logger를 통해 네트워크 요청과 응답을 간편하게 로깅할 수 있습니다. 이러한 기능들을 통해 앱의 성능을 향상시키고 사용자 경험을 향상시킬 수 있습니다.

더 많은 정보 및 예제 코드는 Flutter 공식 문서를 참고해보세요.