inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

Flutter 중급 1편 - 클린 아키텍처

components의 역할 질문

해결된 질문

197

2scent

작성한 질문수 13

0

화면에서 좀 복잡한 UI일 경우, components라는 폴더로 따로 빼서 관리하시던데요.

components에 있는 위젯에서는 viewModel에 직접적으로 접근하지 않고, 상태 값이나 상태를 변경할 수 있는 함수는 screen에서 받아서 사용하도록 하시던데 components에서 viewModel에 직접 접근하면 안 되는 건지, 그 이유가 무엇인지 알 수 있을까요?

ios android Flutter

답변 1

1

오준석

components 에는 재사용 가능한 Widget만 넣고 있습니다.

components 에 넣어둔 Widget에서 ViewModel을 사용하게 되면 ViewModel 클래스와 의존성이 생겨버려서 재사용성이 없어지게 됩니다. 

따라서 생성자를 통해서 Widget에서 표현하고자 하는 값만 받도록 만들고  ViewModel 클래스를 사용하는 화면(Screen) 에서 적절히 값을 넣어주도록 작성하는 것입니다.

당장은 재사용할 일이 없더라도 되도록 불필요한 의존성은 만들지 않는 것이 나중을 위해서 좋다고 봅니다.

추가로 이 강의에서 위젯 테스트는 다루지 않았지만, 혹시 Widget을 테스트라도 하게 된다면 ViewModel 이 엮여 있으면 테스트가 불가능합니다.

MVVM, 클린 아키텍처 관련 질문 있습니다.

0

109

2

가끔씩 ui가 깨지는? 현상이 있어서 질문드립니다.

0

104

1

freezed 3.0 대응된 코드 깃헙에도 업데이트 해주실 수 있으신가요?

0

194

3

sealed class 사용시 기능은 동작하지만 Radio위젯에 선택 표시가 안되는 부분 질문

0

131

2

sealed class 사용시 The getter 'orderType' isn't defined for the type 'NoteOrder<dynamic>' 오류

0

102

2

유즈케이스 관련하여 질문 드립니다.

0

99

1

mockito사용시 오류 해결법

1

127

2

sealed class 사용 문의2

0

86

2

sealed class 사용 문의

0

123

2

freezed3.0에서 build시 when생성되지 않습니다.

0

275

2

Try implementing the missing methods, or make the class abstract. 문제해결 공유

0

245

2

This is likely caused by a misconfigured builder definition. 오류 해결 방법

1

328

3

강의 화면이 안보여요

0

141

3

Flutter에서 추천하는 Navigator, Router

0

332

2

The following ProgressEvent object was thrown resolving an image codec: [object ProgressEvent]

0

329

3

event와 ui_event

0

215

1

코드 색깔 관련 질문

0

212

1

Photo.fleezed.dart,photo.g.dart삭제시 에러

0

212

2

sealed class 적용 시...

0

332

1

클린 아키텍처 질문

0

315

1

sealed class 데이터 접근

0

328

1

서버에서 데이터를 가져와서 사용하는 경우...

0

237

1

뷰/뷰모델 작성 질문

0

275

1

freezed JsonKey 사용 예시 공유

1

795

1