[flutter] pretty_dio_logger를 사용한 애니메이션 처리 방법

개요

pretty_dio_logger는 Dio 클라이언트에서의 HTTP 요청과 응답을 로깅하는 데 사용됩니다. 이 로거는 요청과 응답을 아주 깔끔하게 보여주기 때문에 개발 중에 유용하게 사용할 수 있습니다. 이 기사에서는 pretty_dio_logger를 사용하여 API 요청 및 응답을 로깅하는 동안 애니메이션을 추가하는 방법에 대해 알아보겠습니다.

pretty_dio_logger 설치

먼저, pubspec.yaml 파일에 pretty_dio_logger 라이브러리를 추가합니다.

dependencies:
  dio: <버전>
  pretty_dio_logger: <버전>

그런 다음, 터미널을 열고 다음 명령을 실행하여 패키지를 설치합니다.

flutter pub get

pretty_dio_logger의 기본 사용법

pretty_dio_logger를 사용하려면 Dio 클라이언트를 생성할 때 Interceptors에 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는 모든 HTTP 요청과 응답을 캡처하여 콘솔에 로깅합니다.

로깅 애니메이션 추가하기

pretty_dio_logger에 애니메이션을 추가하려면 responseBodyrequestBody 섹션에 새로운 위젯을 만들어서 삽입하면 됩니다. 예를 들어, AnimatedBuilder 위젯을 사용하여 애니메이션을 생성할 수 있습니다.

import 'package:flutter/material.dart';

class AnimatedResponseBody extends StatelessWidget {
  final String responseBody;

  const AnimatedResponseBody({Key? key, required this.responseBody}) : super(key: key);

  @override
  Widget build(BuildContext context) {
    return AnimatedBuilder(
      animation: <애니메이션 컨트롤러>,
      builder: (context, child) {
        return Text(responseBody);
      },
    );
  }
}

class AnimatedRequestBody extends StatelessWidget {
  final String requestBody;

  const AnimatedRequestBody({Key? key, required this.requestBody}) : super(key: key);

  @override
  Widget build(BuildContext context) {
    return AnimatedBuilder(
      animation: <애니메이션 컨트롤러>,
      builder: (context, child) {
        return Text(requestBody);
      },
    );
  }
}

그런 다음, PrettyDioLogger의 생성자에서 이 위젯을 사용합니다.

dio.interceptors.add(PrettyDioLogger(
  responseBody: AnimatedResponseBody(responseBody: responseBodyString),
  requestBody: AnimatedRequestBody(requestBody: requestBodyString),
));

결론

pretty_dio_logger를 사용하여 API 요청 및 응답을 로깅할 때 애니메이션을 추가하는 방법에 대해 알아보았습니다. 이를 통해 앱 개발에서 HTTP 요청과 응답을 시각적으로 더욱 흥미롭게 표현할 수 있습니다.

참고 자료