개요
Reflectable은 코드 생성을 통해 Dart에서 반사 기능을 제공하여 타입, 필드, 메서드 및 생성자의 런타임 검사와 조작을 가능하게 합니다. Flutter에서 제한된 내장 반사 기능에 의존하지 않고, 특정 클래스에 대해 어떤 반사 작업이 지원되는지 정확히 정의하기 위해 '기능'을 사용합니다. 이 접근 방식은 Android, iOS, Web, macOS, Windows, Linux 등 다양한 플랫폼에서 성능과 호환성을 보장합니다. 트리 쉐이킹이나 성능을 희생하지 않고 동적 행동이 필요한 프레임워크나 라이브러리에 적합합니다.
사용 사례
- 동적 직렬화/역직렬화
- 런타임 타입 검사
- 일반 프레임워크 개발
- API용 코드 생성
- 플러그인 및 라이브러리 확장성
주요 기능
- 코드 생성 반사
- 능력 기반의 운영 제어
- 크로스 플랫폼 지원
- 최소의 런타임 오버헤드
- build_runner와의 통합
- 필드, 메서드 및 생성자를 지원합니다
적합한 대상
- 프레임워크 개발자
- 라이브러리 저자
- 동적 타입 처리가 필요한 도구
- 코드 생성을 사용하는 앱
- 성능에 민감한 애플리케이션
고려 사항
- build_runner 및 코드 생성이 필요합니다
- 명시적으로 선언된 기능에 제한됨
- 런타임 전용 반사에 적합하지 않습니다
- reflectable 주석의 신중한 설정이 필요합니다
- 빌드 시간을 약간 증가시킬 수 있습니다