본문 바로가기
728x90

전체 글69

[Flutter/플러터] Riverpod와 StateNotifier에 대해 stateNotifier는 changeNotifier의 업그레이드 버전이라고 볼 수 있다. 그럼 먼저 changeNotifier에 대해 알아보자.. ▶ ChangeNotifier 란? 변경사항을 알리고 싶을 때마다 리스너에게 알림을 제공하는 클래스 notifyListeners() 클래스에 변화가 있을 때 해당 메서드를 호출할 수 있다. ValueNotifier는 단일 값만을 전달하는 ChangeNotifier의 일종이다(오직 하나의 변경된 값만을 전달할 수 있다.) class MyValueNotifier extends ValueNotifier{ //하나의 값만을 갖고 있을 수 있음 int getValue() => value; } class MyChangeNotifier extends ChangeNotif.. 2022. 9. 28.
[Flutter/플러터] Riverpod 장점 및 사용법 getx를 사용하다가 프로젝트의 규모가 점점 더 커질 것 같아서, riverpod를 공부하기로 마음먹었다. getx를 사용했을 때, 코드가 간결해져서 생산성이 높고, global context로 어디에서나 객체 접근이 가능하지만 이것이 나중에는 단점이 될 수도 있다는 생각에 flutter에서 공식으로 밀고있는 provider와 그것의 개선안인 riverpod를 사용할 예정이다.. 일단 본격적으로 riverpod에 대해 알아보자.. Riverpod가 생겨난 배경 ▶ provider의 단점 provider를 사용하다 보면 결국에는 UI 코드와 섞이게 되는 문제를 볼 수 있다. main.dart class MyWidget extends StatelessWidget { @override Widget build(.. 2022. 9. 28.
[Flutter/플러터] Riverpod를 통해 알아보는 플러터 아키텍처 - (2) Domain Model 2편은 Domain Model에 관한 것이다. 원글은 .. https://codewithandrea.com/articles/flutter-app-architecture-domain-model/ Flutter App Architecture: The Domain Model An introduction to the domain model and its role in defining entities and the business logic for manipulating them in the context of Flutter app architecture. codewithandrea.com Domain-Driven Design(DDD)에서 중요한 것은 model 이다. 좋은 도메인 모델을 갖고 있는 지의 여부는 .. 2022. 9. 27.
[Flutter/플러터] Riverpod를 통해 알아보는 플러터 아키텍처 - (1) Repository pattern riverpod를 상태관리에 대해 자세히 알아보던 도중, 잘 정리되어 있는 글을 발견했다. 해당 글을 정리 및 번역한 글이며 원본 글은 아래에서 확인할 수 있다. https://codewithandrea.com/articles/flutter-repository-pattern/ Flutter App Architecture: The Repository Pattern An in-depth overview of the repository pattern in Flutter: what it is, when to use it, and various implementation strategies along with their tradeoffs. codewithandrea.com Riverpod 상태관리를 활용한 아키텍.. 2022. 9. 27.
[Flutter/플러터] Freezed 플러그인 사용하기 - (1) Freezed란? 데이터 클래스에 필요한 편의 기능들을 Code Generation으로 제공하는 라이브러리 아래 공식문서를 살펴보자 freezed | Dart Package Code generation for immutable classes that has a simple syntax/API without compromising on the features. pub.dev 사용 방법) 1. pubspec.yaml 파일에 build_runner와 Freezed를 설치한다. - 터미널에서 설치 flutter pub add freezed_annotation flutter pub add --dev build_runner flutter pub add --dev freezed # 만약 fromJson 혹은 toJs.. 2022. 9. 27.
[Flutter/플러터] getx를 사용하여 like 버튼(하트 버튼) 만들기 1. obs 변수를 만들어준다 var like = false.obs; 2. Obx 로 감싼 뒤, 위젯을 리턴해준다 Obx(() => CircleAvatar( backgroundColor: Colors.white, radius: 15, child: Center( child: IconButton( ... ), ), ), ), 3. 삼항 연산자를 사용해 조건에 알맞은 아이콘을 보여주도록 한다. product.like.value ? Icon(Icons.favorite_rounded) : Icon(Icons.favorite_border), 4. 눌렀을 때, 이벤트 처리 onPressed: () { product.like.toggle(); }, Obx(() => CircleAvatar( backgroundColor.. 2022. 9. 23.
728x90
반응형