[flutter] 플러터(sqflite)를 활용한 오픈 소스 프로젝트

플러터(Flutter)는 Google이 개발한 오픈 소스 UI 프레임워크로, 다양한 플랫폼에서 동작하는 앱을 빌드할 수 있습니다. SQFlite는 Flutter에서 사용되는 간단한 오픈 소스 라이브러리로서, 로컬 데이터베이스에 접근할 수 있는 기능을 제공합니다.

이번에는 Flutter와 SQFlite를 활용하여 간단한 오픈 소스 프로젝트를 만드는 방법을 살펴보겠습니다.

목차

  1. 프로젝트 소개
  2. 프로젝트 설정
  3. 코드 예시
  4. 결론

프로젝트 소개

이번 프로젝트는 간단한 할일 목록을 저장하고 관리하는 앱을 만드는 것입니다. 사용자는 앱을 통해 할일을 추가, 수정, 삭제할 수 있으며, 모든 데이터는 로컬 데이터베이스에 저장됩니다.

프로젝트 설정

프로젝트를 설정하기 위해서는 Flutter와 SQFlite를 사용할 수 있는 환경을 구축해야 합니다. 먼저 Flutter SDK 설치 후, 프로젝트에 SQFlite 라이브러리를 추가해야 합니다. 이를 위해 pubspec.yaml 파일에 다음과 같이 라이브러리를 추가합니다.

dependencies:
  flutter:
    sdk: flutter
  sqflite: ^2.0.0+4

이후, 터미널에서 flutter pub get 명령어를 실행하여 라이브러리를 다운로드 받습니다.

코드 예시

다음은 SQFlite를 사용하여 로컬 데이터베이스에 접근하는 간단한 코드 예시입니다.

import 'package:sqflite/sqflite.dart';
import 'package:path/path.dart';

void main() async {
  var databasesPath = await getDatabasesPath();
  String path = join(databasesPath, 'todo.db');
  Database database = await openDatabase(path, version: 1,
      onCreate: (Database db, int version) async {
    await db.execute(
        'CREATE TABLE todo_items (id INTEGER PRIMARY KEY, title TEXT, completed INTEGER)');
  });

  // 데이터 추가 예시
  await database.transaction((txn) async {
    int id = await txn.rawInsert(
        'INSERT INTO todo_items(title, completed) VALUES("Test item", 0)');
    print('new row id: $id');
  });

  // 데이터 읽기 예시
  List<Map> result = await database.rawQuery('SELECT * FROM todo_items');
  result.forEach((row) => print(row));

  // 데이터 업데이트 예시
  await database.rawUpdate(
      'UPDATE todo_items SET completed = ? WHERE id = ?',
      [1, 1]);

  // 데이터 삭제 예시
  await database
      .rawDelete('DELETE FROM todo_items WHERE id = ?', [1]);
}

위 코드는 로컬 데이터베이스에 테이블을 생성하고, 데이터를 추가, 읽기, 업데이트, 삭제하는 방법을 보여줍니다.

결론

Flutter와 SQFlite를 사용하여 로컬 데이터베이스에 액세스하는 오픈 소스 프로젝트를 만드는 방법을 알아보았습니다. 이를 활용하면 간단한 데이터 관리 앱을 손쉽게 구축할 수 있습니다. 만약 진행하실 경우, 자세한 내용은 Flutter 공식 홈페이지에서 확인하실 수 있습니다.