2024/11/13 4

[Flutter] Provider 라이브러리를 사용해보기 (코드 발전 시키기 2)

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..

Flutter 2024.11.13

[Flutter] 상태 변화가 있을 때 UI에 자동으로 알림 주기 (코드 발전 시키기 1)

ChangeNotifier는 Flutter에서 상태 변화가 있을 때 UI에 자동으로 알림을 주기 위한 클래스로, MVVM 패턴에서 ViewModel을 통해 UI와 데이터를 연결하는 데 매우 유용합니다.뷰 모델// ViewModel 클래스 - 상태와 로직을 담당 한다.import 'package:flutter/material.dart';import 'package:my_mvvm_v01/start02/models/todo.dart';class TodoViewModel extends ChangeNotifier{ // 데이터가 필요하다. List todos = []; // 할 일을 추가하는 기능 void addTodo(String title){ final newTodo = Todo(id: DateT..

Flutter 2024.11.13

[Flutter] MVVM 패턴이란?

Model: 애플리케이션의 데이터 구조와 비즈니스 로직을 담당합니다. 데이터를 정의하거나 데이터를 처리하는 로직이 포함됩니다.View: **사용자 인터페이스(UI)**를 담당합니다. Flutter에서는 화면에 표시되는 위젯들이 View 역할을 하며, ViewModel을 통해 데이터를 받아 화면에 표시합니다.ViewModel: 비즈니스 로직과 UI 사이의 중간 역할을 합니다. View에서 받은 요청을 처리하고, Model에서 데이터를 가져와 View에 전달하는 역할을 합니다. model// todo의 모델 클래스 - 할 일 데이터를 정의class Todo{ final String id; final String title; Todo({required this.id, required this.titl..

Flutter 2024.11.13

[Flutter] Monolithic (모노리스) 구조의 특징

하나의 코드 파일에 UI, 비즈니스 로직, 프레젠테이션 로직을 모두 넣는 형식을 흔히 Monolithic Architecture또는 간단히 Monolith 라고 부릅니다. 먼저 MVVM 패턴 없이 간단한 구조로 코드를 작성해보자. 모든 로직과 상태 관리를 하나의 파일에 통합하여, UI와 데이터 처리가 한 클래스에서 이루어지는 방식으로 코드를 작성할 수 있다. 이 방식은 MVVM과 같은 디자인 패턴이 없어도 간단한 앱에서는 빠르게 개발할 수 있는 장점이 있다. UI와 데이터 로직이 한 곳에 있음StatefulWidget을 사용하여 UI와 데이터 로직을 하나의 파일에 결합했습니다.상태 변경 및 UI 업데이트:addTodo와 removeTodo 메서드는 각각 새로운 할 일을 추가하고, 삭제하는 로직을 포함하고..

Flutter 2024.11.13