Today 요약
[✅] 프로그래머스 코딩테스트 3문제
[✅] dart 강의 7개
[✅] react 강의 1개
[✅] flutter 강의 2개
배운 점
1. dart
1-1 dart num 키워드
- num 키워드는 number의 약자로 숫자 관련 데이터 타입을 모두 저장 할 수 있다.
- int, double 데이터 모두 저장 가능
2. flutter
2-1 provider
- 단순화된 자원 할당/폐기
- 지연로딩
- 매번 새로운 클래스를 만드는 것보다 상용구가 크게 줄어든다
- InheritedWidget을 감싸 더 쉽게 사용하고 재사용 가능
- 사용 앱에 많은 것을 제공하고 어디서나 열람할 수 있게 해준다
provider 유형
- Provider
- 가장 기본적인 형태의 공급자. 값이 무엇이든 간에 값을 가져와 공개한다
- ListenableProvider
- Listenable 객체에 대한 특정 공급자. 객체를 수신하고 리스너가 호출될 때마다 객체에 의존하는 위젯에 다시 빌드하도록 요청
- ChangeNotifierProvider
- ChangeNotifier에 대한 ListenableProvider 사양. 필요할 때 자동으로 호출된다
- ValueListenableProvider
- ValueListenable을 들음
provider | Flutter Package
A wrapper around InheritedWidget to make them easier to use and more reusable.
pub.dev
ChangeNotifierProvider class - provider library - Dart API
ChangeNotifierProvider class Listens to a ChangeNotifier, expose it to its descendants and rebuilds dependents whenever ChangeNotifier.notifyListeners is called. Depending on whether you want to create or reuse a ChangeNotifier, you will want to use differ
pub.dev
2-2 MultiProvider
- 앱을 provider로 감싸준다
- providers 리스트를 사용한다
(new) MultiProvider MultiProvider({
Key? key,
required List<SingleChildWidget> providers,
Widget? child,
Widget Function(BuildContext, Widget?)? builder,
})
- 다른 화면이 어떻게 changeNotifier에 접근하는가?
- context.watch, read 사용
- changeNotifier를 정의하고 앱 상단에 제공한 다음 어디서든 읽고 불러올 수 있다
child: IconButton(
icon: FaIcon(
context.watch<Config>().isMuted ? (): (),
color: Colors.white,
),
onPressed: () {
context.read<Config>().toggle();
},
),
2-3 MVVM (model -view - viewModel의 약자)
- 앱의 코드를 구성하고 데이터와 비즈니스 로직을 분리하기 위한 디자인 패턴
- Model
- 애플리케이션의 데이터 및 비즈니스 로직을 포함하는 부분이다. 데이터베이스, 네트워크 호출, 상태 관리 등을 처리하는 데 사용
- View
- 사용자 인터페이스를 나타내는 부분. 사용자에게 표시되는 모든 것을 의미하며 화면 레이아웃 및 디자인과 관련된 코드를 포함한다
- ViewModel
- Model과 View 사이의 중개 역할을 하는 부분. ViewModel은 사용자 인터페이스와 비즈니스 로직 사이의 상호 작용을 관리하며 Model 에서 가져온 데이터를 VIew에 바인딩하고 사용자 입력을 Model에 전달한다
2-4 MVVM과 Repository
MVVM
- 사용자 인터페이스 코드와 비즈니스 로직을 분리하여 앱을 유지 관리하고 확장하기 쉽게 만드는 것. 이 패턴을 따르면 코드가 더 모듈화되어 가독성이 향상되며, 여러 플랫폼에서 코드를 재사용 할 수 있다
Repository
- MVVM 아키텍처와 밀접하게 관련되며 데이터 소스와 상호 작용하는 데 사용된다
- 데이터에 대한 액세스를 추상화하고, 데이터베이스, 웹 서비스, 캐시 등과 상호 작용하는 데 필요한 모든 작업을 캡슐화한다
- viewModel 에 데이터를 공금하고 필요한 경우 데이터 소스를 전환하는 데 사용된다
'TIL' 카테고리의 다른 글
20231106 TIL (0) | 2023.11.06 |
---|---|
20231103 TIL (0) | 2023.11.03 |
20231101 TIL (1) | 2023.11.01 |
20231030 TIL (1) | 2023.10.30 |
20231028 TIL :: 오랜만에 빡공하는 주말 (0) | 2023.10.28 |