현 상황에서 문제점은 앱을 껏다 켤 경우에 저장한 노트 내용이 모두 삭제된다.
데이터베이스 기능을 사용해야한다.
SQLite를 사용하자.
sqflite 설치
pub.dev에 들어가보자
sqflite 를 검색해보면 상단에 뜬다.
들어가보면,
사용가능한 플랫폼, 설치 방법 등을 확인할 수 있다.
그래서 설치 어떻게 하냐.
- pubspec.yml
dependencies:
flutter:
sdk: flutter
sqflite: ^2.0.0+3
path: ^1.7.0
sqflite, path를 위와 같이 입력했다면
안드로이드 스튜디오 상단에 pub get을 클릭하자.
데이터베이스를 위해 노트에 id 추가
- data/node.dart
노트에 id 추가
class Note {
late int id;
late String title;
late String body;
late Color color;
Note(this.body,
{this.id = newNoteId, this.title = '', this.color = colorDefault});
static const newNoteId = -1;
테이블정보 추가
static const tableName = 'notes';
static const columnId = 'id';
static const columnTitle = 'title';
static const columnBody = 'body';
static const columnColor = 'color';
데이터베이스에 저장할 수 있게 toRow 추가
Map<String, dynamic> toRow() {
return {
columnTitle: this.title,
columnBody: this.body,
columnColor: this.color.value,
};
}
데이터베이스에서 불러올 수 있게 fromRow 추가
Note.fromRow(Map<String, dynamic> row)
: this(row[columnBody],
id: row[columnId],
title: row[columnTitle],
color: Color(row[columnColor]));
Uploaded by Notion2Tistory v1.1.0