Riverpod is a pattern on its own. You're not using "Riverpod + ". Riverpod is the pattern, since it's fairly strict in what you can and can't do I don't like associating Riverpod with standards like MVC/MVVP. Riverpod is a big of an odd one. I don't think they truly fit. I feel Riverpod has a different kind of architecture: reactive caching with uni-directional dataflow and ideally immutable dat..
Flutter
Scrollbar 에 색상을 넣는 방법은 ScrollbarThemeData 를 이용하는 방법이 있다. Widget build(BuildContext context) { return MaterialApp.router( title: 'Flutter Demo', debugShowCheckedModeBanner: false, theme: ThemeData( primarySwatch: Colors.blue, scrollbarTheme: ScrollbarThemeData( thumbColor: MaterialStateProperty.all(Colors.blue), trackColor: MaterialStateProperty.all(Colors.green), thumbVisibility: MaterialStatePr..
Flutter 의 Rendering 과 라이프사이클에 대한 정리 개인적으로 공부하면서 정리한 내용입니다. 잘못된 내용이 있으면 코멘트 부탁드립니다. Lifecycle 에 대해 작성하기 앞서 Flutter 의 작동 방식에 대해 알아보자. Flutter는 60fps 를 목표로 한다. 이는 1초에 최소 60번 화면을 다시 그린다는 의미이다. 일반적으로 화면을 한 번 그릴때마다 복잡한 계산을 해야 한다면 60fps 는 무리일 수 있다. 하지만, 미리 계산된 값이 존재하고 이 값이 변하지 않았다는 가정하에 새로 계산을 하는 대신 이전의 값을 가져다 쓸 수 있으면 속도 향상을 기대할 수 있을 것이다. 이러한 방식을 기반으로 Flutter 는 state 라는 개념을 가지고 있으며, 이를 기반으로 렌더링을 한다. 여기..
Freezed Immutable 한 객체를 생성 할 때 필요한 코드들을 자동으로 generated 해주는 패키지 toJson / fromJson 함수를 제공하여 JSON 을 쉽게 Serialize / Deserialize 할 수 있다. equals , hashCode 함수 및 override 된 toString 을 지원해준다. 선언된 필드들을 외부에서 변경이 불가능하도록 get 을 선언해준다. copyWith 함수를 지원하여 새로운 객체의 생성을 도와준다. 사용법 1) 우선 pubspec.yaml 에 아래와 같이 필요한 패키지들을 추가한다. 2) 모델에 @freezed 어노테이션 설정 및 with 키워드로 '$className' 을 작성 @freezed class UserModel with _$UserM..