본문 바로가기

Flutter/03 Design Pattern

(4)
[Flutter] Design Pattern - MVC, MVVM with GetX, Provider 이번에는 Getx 와 Provider 를 이용하여 MVVM 을 구현해보겠습니다. 개발환경 : 윈도우11, 안드로이드 스튜디오, flutter 3.0.1 GetX 로 구현한 샘플입니다. // mvvm_getx_controller.dart import 'package:get/get.dart'; import '../model/model.dart'; class MVVMGetXController extends GetxController { late Model model; RxInt count = 0.obs; @override void onInit() { super.onInit(); model = Model(); } void incrementCounter() { model.incrementCounter(); // ..
[Flutter] Design Pattern - MVC, MVVM 이번에는 MVC 와 MVVM 에 대해서 알아보겠습니다. 기본 개념을 아신다는 전제하에 MVC -> MVVM 으로 변경하는 장점을 중심으로 알아보겠습니다. 개발환경 : 윈도우11, 안드로이드 스튜디오, flutter 3.0.1 화면은 아래와 같습니다. +버튼은 숫자를 증가시키고, -버튼은 숫자를 감소 시킨다. 패턴을 적용하지않는 일반적인 코드 - flutter 에서 신규 프로젝트 샘플과 유사한 구조, 변수/함수/View 모두 하나의 파일에서 구현하여 간단한 화면 같은 경우, 쉽게 이해할 수 있으나 화면 및 데이터가 복잡해 경우 적합하지 않다. import 'package:flutter/material.dart'; class NoPatternView extends StatefulWidget { const N..
[Flutter] Design Pattern(2) - Controller with Getx 지난 번에 만든 모델을 사용하는 controller 에 대한 예제 코드입니다. login_user_controller.dart import 'package:cloud_firestore/cloud_firestore.dart'; import 'package:flutter/material.dart'; import 'package:get/get.dart'; import 'package:sns_login/src/model/login_user.dart'; // 모델링 패턴 파일 class LoginUserController extends GetxController { static LoginUserController get to => Get.find(); // Get.find 사용방법을 줄여주는 선언, 별칭임 fin..
[Flutter] Design Pattern(1) - Model SNS login 이후, 사용자의 정보를 관리하는 사용자 정보에 대한 Model 패턴. 일번적으로 Model 패턴이라고 부르는진 모르지만, 개인적으로 개발할때 이렇게 표현 합니다. login_user.dart import 'package:cloud_firestore/cloud_firestore.dart'; class LoginUser { final String? appVersion; final String? datetime; final String? email; final String? expDate; final String? uid; final String? language; final String? lastLogin; final int? loginCnt; final String? photoURL; f..