MVVM아키텍처를 적용하게 되면 아래와 같은 폴더구조가 된다 아래 폴더 구조를 기본으로 추가적인 화면이나 도메인이 추가될때 마다 확장해나가면 될것이다. /data /model - post.dart /repository - post_repository.dart /datasource - local_datasource.dart - remote_datasource.dart /ui /post - post_list_view.dart - post_list_viewmodel.dart - post_detail_view.dart - post_detail_viewmodel.dart - post_pages.dart /ui View와 ViewModel에 해당하는 파일들이 있으며, 하나의 주제 혹은 도메인 단위로 폴더를 생성한다..
View View는 유저에게 UI를 보여주는 곳으로, View 클래스 하나로 이루어져 있다. Flutter에서는 선언형 UI를 사용한다. 그래서 모든 View의 구성요소들은 Widget이 되고, 이것들의 위젯트리를 만들어 화면을 표시하게 된다. 기반이 되는 대표 Widget으로 StatefulWidget과 StatelessWidget이 있다. StatefulWidget은 자체적으로 state를 유지하고 관리하기 때문에 커스텀 위젯을 만드는데 주로 사용하는 편이다. 우리처럼 ViewModel에서 state를 관리할 경우에는 StatelessWidget으로 View를 만드는 것이 개념적으로 바람직 하다. PostListView (post/post_list_view.dart) 게시물 목록을 표시하는 View ..
모바일 앱 개발을 하게 되면 기본적으로 필요한 구조와 기능이 있다. Android, iOS앱 할것 없이 결국 앱이 구현해야 하는 최종 기능은 같다. Flutter로 앱을 만들때도 마찬가지다. 앱을 개발한다면 앱의 확장성과 유지보수의 편의성을 고려해서 꼭 아키텍처를 적용하는 것이 필요하다. 개인적으로 모바일 앱에 가장 적합한 아키텍처는 MVVM이라고 생각한다. Flutter로 앱을 개발할때 Andorid 앱 개발에 사용하던 MVVM 아키텍처를 어떻게 하면 Flutter 특성에 맞게 잘 적용 시킬 수 있을지 많은 고민을 했었다. Android개발자중 MVVM이 AAC (Android Architecture Component)로만 사용할수 있는 기능처럼 생각하는 사람들도 있는데 MVVM은 AAC가 없이도 개발..
- Total
- Today
- Yesterday
- flutter element
- Widget Tree
- flutter2.0
- LocalKey
- flutter 다국어처리
- RenderObject
- Android
- navigator
- widget element
- json_serializable
- dart enum
- python3
- Element LifeCycle
- FlutterEngine
- Flutter
- Mutiple Flutter
- flutter i18n
- DART
- Route
- Flutter LifeCycle
- MVVM
- enum member
- flutter_secure_storage
- flutter mvvm
- StatefulWidget LifeCycle
- dart 2.17
- Flutter TDD
- flutter l10n
- Flutter3.0
- freezed
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |