분류, 패키지 및 저장소 검색

패키지 상세v0.1.2

data_class

pkg:macros를 사용한 Dart의 데이터 클래스에 대한 실험적 지원

30일 다운로드
51
좋아요
60
Pub 점수
50

패키지 설치

flutter pub add data_class

패키지 개요

공개 정보를 바탕으로 생성한 선택 가이드입니다.

data_class 패키지는 매크로를 사용하여 Dart에서 데이터 클래스에 대한 실험적 지원을 제공하며, 불변 데이터 구조를 간결하고 빌더플레이트 없이 정의할 수 있게 해줍니다. 주로 데이터를 보유하는 클래스를 만들기 쉽게 하여 `toString`, `hashCode`, `operator ==`와 같은 필요한 메서드를 자동으로 생성합니다. 이는 코드의 가독성을 향상시키고 수동 구현으로 인한 오류를 줄입니다. Dart 애플리케이션에서 더 깔끔한 데이터 모델링 접근을 원하는 개발자를 위한 것으로, 현대적인 Dart 도구와 통합되며 JSON 직렬화 워크플로우도 지원합니다.

사용 사례

  • 불변 데이터 모델 정의
  • 데이터 클래스에서 부가 코드 줄이기
  • JSON 직렬화 간소화
  • 정제된 도메인 모델 만들기
  • 상태 관리 단순화
  • 코드 유지보수성 향상

주요 기능

  • `toString`, `hashCode`, `==` 자동 생성
  • 불변 데이터 클래스 지원
  • Dart 매크로와의 통합
  • 최소한의 보일러플레이트
  • 내장된 JSON 직렬화 지원
  • 깨끗하고 읽기 쉬운 클래스 정의

적합한 대상

  • 최신 Dart 버전을 사용하는 Dart 개발자
  • 청결한 데이터 모델링이 필요한 프로젝트
  • 불변 데이터를 사용한 상태 관리
  • JSON-heavy applications
  • 코드의 명확성과 유지보수성을 우선시하는 팀
  • 프로토타이핑 또는 빠른 개발

고려 사항

  • 실험 상태는 안정성에 영향을 줄 수 있습니다
  • 매크로 지원이 있는 Dart가 필요합니다
  • 제한된 생태계 채택
  • Dart SDK 변경과 함께 업데이트가 필요할 수 있습니다
  • 레거시 Dart 프로젝트에는 적합하지 않습니다
  • 매크로 사용을 위한 잠재적 학습 곡선

원본 README

연결된 소스 저장소의 README 원문 스냅샷입니다. 최신 내용은 저장소에서 확인하세요.

data_class

build pub package License: MIT

Support for data classes in Dart using macros.

✨ Features

🪨 const constructors with required, named parameters

🖨️ copyWith with optional, nullable, named parameters

✨ toString for an improved string representation

☯️ operator== and hashCode for value equality

🧑‍💻 Example

import 'package:data_class/data_class.dart';

@Data()
class Person {
  final String name;
}

void main() {
  // 🪨 Create a const instance with required, name parameters.
  const dash = Person(name: 'Dash');

  // 🖨️ Create copies of your object.
  final sparky = dash.copyWith(name: 'Sparky');

  // ✨ Human-readable string representation.
  print(dash); // Person(name: Dash)
  print(sparky); // Person(name: Sparky)

  // ☯️ Value equality comparisons.
  print(dash == dash.copyWith()); // true
  print(dash == sparky); // false
}

🚀 Quick Start

  1. Add package:data_class to your pubspec.yaml

    dependencies:
      data_class: any
    
  2. Enable experimental macros in analysis_options.yaml

    analyzer:
      enable-experiment:
        - macros
    
  3. Use the @Data annotation (see above example).

  4. Run it

    dart --enable-experiment=macros run main.dart
    

*Requires Dart SDK >= 3.5.0

카테고리

의존성

의존성 목록 3 개

소스 저장소

이 패키지를 사용하는 프로젝트

아직 데이터가 없습니다.