public/subjects/mobile-dev/package
nprimo 72378344c4 docs(package): improve subject
- improve format
- add link to mentioned project
2024-03-27 12:50:17 +00:00
..
audit docs(packate): improve audit format 2022-12-22 15:07:32 +01:00
README.md docs(package): improve subject 2024-03-27 12:50:17 +00:00

README.md

Package

Package can be used to organize and share a set of functions in Dart. It is simply a sharable library or modules. Package is similar to Dart Application except that Dart Package does not have application entry point - main. A minimal package consists of the following:

  • pubspec.yaml: a metadata file that declares the package name, version, author, etc.
  • lib/: a directory contains the public code of the package, at least one dart file.

Instructions:

Create a Flutter package for your Secure Notes app. You should write your own package which will work with sqflite and have CRUD functionality. Your package should consist of Database class and Note class which will allow easy access to SQLite database.

In the end you should be able to import it like:

import 'package:note/note.dart';

Objective:

  • Dealing with existing, large apps
  • Reusing packages across multiple apps
  • Local vs remote (git) packages

Database.dart

class Database {
Database _db;

    Future create() async {
        Directory path = await getApplicationDocumentsDirectory();
        String dbPath = join(path.path, "database.db");

        _db = await openDatabase(dbPath, version: 1);
    }
}

Example of Database class, where you should create table Note with 4 parameters:

  • id
  • title
  • body
  • date

Database class should also have CRUD methods like getAllNotes, deleteAllNotes, addNote, deleteNote, updateNote.

  • getAllNotes()
  • deleteAllNotes()
  • addNote(note: Note)
  • deleteNote(note: Note)
  • updateNote(oldNote: Note, newNote: Note)

Note.dart

Model class for Note object.

class Note {
  int id;
  String title;
  String body;
  String date;

  Note({
    this.id,
    this.title,
    this.body,
    this.date;
  });

Notions

Developing packages with Dart