본문 바로가기

Provider8

[Flutter] 왓챠피디아 - 프로젝트 세팅 - ( week 4 ) 왓챠피디아 앱 구현 프로젝트 준비 새로운 Flutter 프로젝트 생성 provider 패키지 설치 파일 추가 생성 : book.dart, book_service.dart 베이스 코드 작성 main.dart import 'package:flutter/material.dart'; import 'package:provider/provider.dart'; import 'book_service.dart'; void main() { runApp( MultiProvider( providers: [ ChangeNotifierProvider(create: (context) => BookService()), ], child: const MyApp(), ), ); } class MyApp extends StatelessWi.. 2023. 4. 26.
[Flutter] (숙제) 추가 기능 구현 - ( week 3 ) 마이메모 앱에 추가 기능을 구현한다. 1. Pin 기능 구현 Pin 버튼을 눌렀을 때 리스트가 정렬되도록 한다. Pin이 눌려진 메모는 리스트 상단에 배치되도록 한다. 우선 Memo에 Pin상태를 체크할 새로운 변수를 선언한다. class Memo { Memo({ required this.content, required this.isPin, }); String content; bool isPin; 변수가 추가됨에 따라 객체가 생성될 때 해당 변수를 추가로 값을 넣어준다. 그리고 로컬에서 데이터를 가져올 때 해당 값이 null이기 때문에 에러가 발생하는걸 예외처리해 준다. return Memo(content: json['content'], isPin: json['isPin'] ?? false); Pin상태.. 2023. 4. 23.
[Flutter] 마이메모 #3 완성 - ( week 3 ) 메모 개별 조회 이제 DetailPage에서 별도로 memoList 값을 전달받아서 사용할 필요 없이 memoService를 통해서 데이터를 가져다가 사용하면 된다. class DetailPage extends StatelessWidget { DetailPage({super.key, required this.index}); //DetailPage({super.key, required this.memoList, required this.index}); //final List memoList; final int index; TextEditingController contentController = TextEditingController(); @override Widget build(BuildContext c.. 2023. 4. 22.
[Flutter] 마이메모 #2 provider - ( week 3 ) 상태 관리(State Management) State Management Docs 상태 관리의 역할은 최신 상태의 데이터를 보여주도록 페이지 간 데이터를 주고받고 관리하는 행위를 의미한다. 소규모 프로젝트의 경우 상태관리가 없이도 충분히 진행이 가능하다. 하지만 서로 다른 페이지의 화면을 갱신해 주는 기능에서부터는 까다로워지는데 물론 부모 위젯의 setState를 자녀 위젯으로 넘겨주고 자녀 위젯에서 부모 위젯의 화면을 갱신하도록 할 수 있지만 이 방법은 페이지가 조금만 많아져도 코드가 지나치게 복잡해지는 문제가 발생한다. 이 문제를 해결하기 위해서 사용하는것이 상태관리 패키지이다. 상태 관리 패키지 대부분의 상태 관리 패키지들은 중앙 집중식으로 데이터를 한 곳에 모아서 관리한다. 통상적으로 데이터를 담.. 2023. 4. 22.