본문 바로가기
Coding

Flutter 프리즈드 패키지 사용하는 방법

by Emily Blunt 2022. 4. 26.
반응형

Flutter 프리즈드 패키지 사용하는 방법

 

Flutter 동결 기조 연설

Unsplash의 Christopher Gower 사진

이 기사(또는 핵심 노트를 말해야 함)에서 내가 가장 좋아하는 Flutter 패키지 중 하나인 Freezed를 사용하는 방법을 보여 드리겠습니다.

Freezed는 데이터 클래스를 위한 강력하고 확장 가능한 코드 생성기입니다. 신뢰할 수 있지만 단점이 있습니다. 초보자가 앱 로직에 사용할 올바른 조합과 필요한 기능을 찾기가 정말 어렵습니다. 문서는 모든 기능에 대한 철저한 설명과 함께 훌륭하므로 이 문서를 가끔 참조할 수 있는 몇 가지 축약형 메모로 고려하십시오.

따라서 제안을 동결한 주요 필수 기능을 강조 표시하고 왜 필요한지 설명하겠습니다.

계속 진행하기 전에 패키지 설치 및 사용 방법에 대한 동결 문서를 확인하십시오.

사용하시는 분들을 위해 json_serializable 와 함께 freezed 다트 분석기가 잘못된 주석 대상에 대해 경고를 발생시키는 공존에 알려진 문제가 있습니다. 경고를 오류로 간주하는 사용자를 위해 이를 해결할 수 있는 방법은 다음과 같습니다.

이 문제에 대한 더 많은 통찰력과 업데이트를 보려면 이 문제를 확인하세요.

클래스 형성 중에 전달되지 않은 변수에 대한 자리 표시자를 가질 수 있습니다. 의도한 값이 누락된 경우 이를 대체 값으로 고려하십시오.

@Default(“John Doe“) String name

이것은 백엔드에서 JSON 데이터를 역직렬화할 때 유용합니다. 변수 데이터를 보유하는 키를 참조하는 데 사용됩니다. 변수 이름이 아래와 같이 키와 다른 경우에만 필요합니다.

@JsonKey(name: “first_name”) String firstName

동결 자동으로 묻습니다 json_serializable 필요한 모든 것을 생성하기 위해 fromJson/toJson 문서에 명시된 대로.

그러나 고정된 개체의 중첩 목록을 직렬화하려면 다음 중 하나를 수행해야 합니다.

지정 @JsonSerializable(explicitToJson: true) 클래스 정의 전에.

또는 변경 explicit_to_json 너의 안에 build.yaml 파일(프로젝트의 루트 폴더에 생성됨).

첫날처럼 겁먹지 마세요. API를 호출할 때 반환하는 변수 유형을 변경하도록 백엔드 엔지니어에게 요청하는 것이 지겹습니까? 백엔드 엔지니어가 아닌 경우에는 그렇지 않습니다.

따라서 여기에 개념이 나옵니다. JsonConverters. 클래스 직렬화/역직렬화 전에 JSON 값을 원하는 변수 유형으로 변환합니다.

주의: Dart에서 int와 int?, String과 String? 등은 다른 변수 유형입니다.

아래 예제는 문자열을 다음으로 변환합니다. int 그리고 int? 각기.

그런 다음 다음과 같이 클래스에서 사용자 지정 변환기를 사용합니다.

@IntConverter() int id,@NullableIntConverter() int? age,

메소드나 getter를 정의할 때마다 작동하려면 빈 개인 생성자를 추가해야 합니다.

그렇지 않으면 다음과 같은 오류가 발생할 수 있습니다. _$_Person 다음 멤버에 대한 구현이 없습니다.

지금쯤이면 Flutter가 주로 두 가지 개념을 중심으로 움직인다는 것을 알아야 합니다.

  • 불변: 변경할 수 없으며 교체만 가능합니다.
  • 변경 가능: 변경 가능

Freeze는 다음을 사용하여 불변성을 지원합니다. @freezed 주석 및 가변성@unfreezed 주석.

다음은 개념에 대한 자세한 설명입니다.