[flutter] 플러터(sqflite)를 활용한 일기장 앱 만들기
플러터는 모바일 애플리케이션을 개발하기 위한 Google의 오픈 소스 프레임워크입니다. Sqflite는 Flutter 애플리케이션에서 내부 SQLite 데이터베이스를 활용할 수 있게 해주는 라이브러리입니다. 이번 포스트에서는 플러터와 sqflite를 사용하여 간단한 일기장 애플리케이션을 개발하는 방법에 대해 알아보겠습니다.
목차
프로젝트 설정
먼저 Flutter 프로젝트를 생성하고 필요한 의존성을 추가합니다. pubspec.yaml
파일에 sqflite 라이브러리를 추가합니다.
dependencies:
flutter:
sdk: flutter
sqflite: ^2.0.0+4
의존성을 추가한 후에는 flutter pub get
명령어를 사용하여 라이브러리를 가져옵니다.
SQLite 데이터베이스 생성
다음으로, SQLite 데이터베이스를 생성하고 테이블을 만들기 위한 DatabaseHelper
클래스를 구현합니다.
import 'package:sqflite/sqflite.dart';
import 'package:path/path.dart';
class DatabaseHelper {
static Database? _database;
Future<Database> get database async {
if (_database != null) {
return _database!;
}
_database = await _initDatabase();
return _database!;
}
Future<Database> _initDatabase() async {
String path = join(await getDatabasesPath(), 'diary.db');
return openDatabase(
path,
onCreate: (db, version) {
return db.execute(
'CREATE TABLE diary(id INTEGER PRIMARY KEY, title TEXT, content TEXT, date TEXT)',
);
},
version: 1,
);
}
}
일기 추가 기능 구현
일기를 추가하는 기능은 다음과 같이 구현할 수 있습니다.
Future<int> insertDiary(Diary diary) async {
Database db = await database;
return await db.insert('diary', diary.toMap());
}
일기 조회 및 수정 기능 구현
일기를 조회하고 수정하는 기능은 다음과 같이 구현할 수 있습니다.
Future<List<Diary>> getDiaries() async {
Database db = await database;
List<Map<String, dynamic>> maps = await db.query('diary');
return List.generate(maps.length, (i) {
return Diary(
id: maps[i]['id'],
title: maps[i]['title'],
content: maps[i]['content'],
date: maps[i]['date'],
);
});
}
일기 삭제 기능 구현
일기를 삭제하는 기능은 다음과 같이 구현할 수 있습니다.
Future<int> deleteDiary(int id) async {
Database db = await database;
return await db.delete('diary', where: 'id = ?', whereArgs: [id]);
}
위와 같이 Flutter와 sqflite를 사용하여 간단한 일기장 애플리케이션을 만들어 볼 수 있습니다. 다양한 기능을 추가하여 좀 더 완성도 있는 애플리케이션을 구현해보세요.