RepositoryProvider
: Bloc 패턴 사용시 활용되는 개념
: 데이터 레이어나 데이터 관련 서비스를 앱의 다른 부분에 제공하는데 사용
: 의존성 주입의 한 형태
: 앱의 비즈니스 로직과 데이터 처리 로직을 분리하는데 도움
주요기능
- 의존성 주입
- 분리 및 재사용 : 데이터 레이어를 UI로직으로부터 분리 가능. 이를 통해서 데이터 관련 코드를 여러곳에서 재사용할 수 있음. 그러면 유지보수 및 테스트도 용이해짐
- 단일 진입점 제공 : 데이터 서비스에 대한 접근을 중앙화해서 관리할 수 있다.
RepositoryProvider(
create: (context) => MyRepository(), // 데이터 관련 작업 수행클래스
child: MyApp(),
);
MultiRepositoryProvider
: RepositoryProvider를 효율적으로 관리하기 위한 위젯
주요특징
- 중복제거 : 여러 RepositoryProvider를 개별적으로 사용하는대신, MultiRepositoryProvider 사용을 통해 코드 중복 줄임
- 계층화 : 여러 레포지토리를 단일 위젯 트리로 그룹화 할 수 있음
- 효율적 의존성 주입 : 여러 레포지토리를 앱의 다른 부분에서 효율적으로 재사용 가능
MultiRepositoryProvider(
providers: [
RepositoryProvider<RepositoryA>(
create: (context) => RepositoryA(),
),
RepositoryProvider<RepositoryB>(
create: (context) => RepositoryB(),
),
],
child: MyApp(),
);
여기서 RepositoryA, RepositoryB는 애플리케이션의 다른 부분에서 접근할 수 있도록 MultiRepositoryProvider에 의해서 제공이 된다.
'백엔드개발자 > FLUTTER, DART' 카테고리의 다른 글
[Flutter] TextEditingController, 사용자 입력한 값, 자식위젯에서 부모위젯 상태변경 (0) | 2023.01.24 |
---|---|
[Flutter] FloatingActionButton , showDialog, Dialog (0) | 2023.01.24 |
[Flutter] setState() 약간 활용해보기 (0) | 2023.01.17 |
[Flutter] type 'MyApp' is not a subtype of type 'StatelessWidget' in type cast (0) | 2023.01.17 |
[Flutter] 재랜더링, state, setState() 사용해보기 (0) | 2023.01.17 |