dependencies: flutter: sdk: flutter provider: ^6.1.2 import 'package:flutter/material.dart';import 'package:my_mvvm_v01/start04/view_models/todo_view_model.dart';import 'package:provider/provider.dart';// MaterialApp 앱 안에서 외부 라이브러리(프로바이더) 위젯을 감싸 주어야 한다.void main() => runApp( MaterialApp( // (_) => TodoViewModel() -> 매개 변수를 사용안할 꺼면 _ 를 선언한다. home: ChangeNotifierProvider( ..
ChangeNotifier는 Flutter에서 상태 변화가 있을 때 UI에 자동으로 알림을 주기 위한 클래스로, MVVM 패턴에서 ViewModel을 통해 UI와 데이터를 연결하는 데 매우 유용하다.뷰 모델// ViewModel 클래스 - 상태와 로직을 담당 한다.import 'package:flutter/material.dart';import 'package:my_mvvm_v01/start02/models/todo.dart';// ChangeNotifier 상속 한다.class TodoViewModel extends ChangeNotifier { // 데이터가 필요하다. List todos = []; // 할 일을 추가하는 기능 void addTodo(String title) { final..
1. MVVM 패턴이란? MVVM 패턴은 애플리케이션을 세 가지 역할로 나누어, 유지 보수성과 재사용성을 높이는 디자인 패턴이다.Flutter에서는 UI 업데이트와 상태 관리가 필요하기 때문에 MVVM 패턴을 사용하여 코드 구조를 효율적으로 관리할 수 있다.2. MVVM 패턴의 구성 요소 Model : 애플리케이션의 데이터 구조와 비즈니스 로직을 담당한다. 데이터를 정의하거나 데이터를 처리하는 로직이 포함된다.View : 사용자 인터페이스(UI)를 담당한다. Flutter에서는 화면에 표시되는 위젯들이 View 역할을 하며, ViewModel을 통해 데이터를 받아 화면에 표시한다.ViewModel : 비즈니스 로직과 UI 사이의 중간 역할을 한다. View에서 받은 요청을 처리하고, Model에서 데이터..
1. Monolithic (모노리스) 구조의 특징하나의 코드 파일에 UI, 비즈니스 로직, 프레젠테이션 로직을 모두 넣는 형식을 흔히 Monolithic Architecture 또는 간단히 Monolith라고 부른다. 먼저 MVVM 패턴 없이 간단한 구조로 코드를 작성해보자. 모든 로직과 상태 관리를 하나의 파일에 통합하여, UI와 데이터 처리가 한 클래스에서 이루어지는 방식으로 코드를 작성할 수 있다. 이 방식은 MVVM과 같은 디자인 패턴이 없어도 간단한 앱에서는 빠르게 개발할 수 있는 장점이 있다.TODOimport 'package:flutter/material.dart';void main() => runApp(TodoApp());class TodoApp extends StatelessWidget ..