[Flutter] 디자인 패턴 mvvm with GetX
유튜버 개발하는 남자 님의 영상을 학습하고 정리하는 내용입니다.
MVC
훌륭하지만 View와 Model간 의존성이 높은 단점이 있음. 만약 서버에서 받는 데이터의 구조가 달라지면 해당 Model을 사용하는 View를 찾아서 수정해야하는 상황이 발생할 수 있다.
MVVM
데이터와 관련있는 Model과 화면(View)에서 사용되는 Model로 구분. View에서는 View Model에서 존재하는 Model에만 접근. 만약 Model 이 변경되더라도 Controller 만 수정하게 되어 유지보수 측면에서 강점을 지님.
화면 갱신을 담당하는 역할은 View Model로써 화면에는 어떠한 명령을 하지 않는다. View와 연관된 Controller인 ViewModel을 구독하면서 View가 화면을 갱신하는 방법이다.
Controller
View로부터 요청을 받아서 Service로 연결해주는 Route의 역할
Service
비즈니스 로직 담당. 고객의 요청에 대한 결과를 도출하기 위한 전반적인 과정(알고리즘)을 뜻함
Repository
비즈니스 로직을 통해 도출한 데이터를 관리하는 역할
플러터에서는? 약간 구조가 다르다
controller > route(플러터에서 제공하는 route기능)
service > service 또는 controller
repository > repository
상태관리를 위해 읽어보면 좋은 글 : https://engineering.linecorp.com/ko/blog/flutter-architecture-getx-bloc-provider
Flutter 인기 아키텍처 라이브러리 3종 비교 분석 - GetX vs BLoC vs Provider
안녕하세요. LINE+ ABC Studio에서 앱을 개발하고 있는 윤기영입니다. 최근 Flutter로 진행하는 새로운 앱 개발 업무를 맡아서 어떤 아키텍처 라이브러리를 사용할지 선정하는 작업을 진행했습니다.
engineering.linecorp.com
참고
https://github.com/sudar-life/flutter_getx_mvvm_sample
GitHub - sudar-life/flutter_getx_mvvm_sample
Contribute to sudar-life/flutter_getx_mvvm_sample development by creating an account on GitHub.
github.com
https://www.youtube.com/watch?v=8KilJZOrOyI
https://www.youtube.com/watch?v=wh6jfZJelf0
https://github.com/sudar-life/dev_pattern_sample
GitHub - sudar-life/dev_pattern_sample: 플러터에서 mvc 패턴과 mvvm 패턴의 차이를 알아보자.
플러터에서 mvc 패턴과 mvvm 패턴의 차이를 알아보자. Contribute to sudar-life/dev_pattern_sample development by creating an account on GitHub.
github.com
https://arong.info/List/ContentsView/2352
View - Arong note
Flutter의 GetX 모듈을 사용해서 MVVM패턴 방식으로 앱을 설계하고 데이터를 다루는 방법에 대해 알아보도록 하겠습니다.Flutter은 .NET의 WPF처럼 처음 구조 설게가 MVVM패턴을 염두해두고 설계되지 않
arong.info