Skip to content

Repository files navigation

UseNote 📝

A Flutter-based local-first note-taking application.

Flutter Dart GetX Hive

Tech Stack

  • Flutter for cross-platform application development.
  • Dart as the primary programming language.
  • GetX for routing, dependency binding, and state management.
  • Hive and Hive Flutter for local NoSQL data persistence.
  • UUID for generating unique note identifiers.

About

UseNote is a Flutter-based note-taking application designed for quickly writing, organizing, searching, and managing personal notes. The app focuses on a clean mobile experience with local-first data storage, simple navigation, and flexible note viewing modes.

Notes are stored locally on the device using Hive, making the app lightweight and usable without a remote backend.

Features

  • Create & Edit Notes: Create notes with title and content fields. Edit existing notes directly.
  • Flexible Viewing: Switch between list view and grid view instantly.
  • Search: Search notes by title or content.
  • Local Persistence: Persist notes and view preferences locally using Hive.
  • GetX Architecture: Navigate between screens seamlessly using GetX routing and bindings.

UI Walkthrough

Below are the screenshots of the UseNote application, demonstrating its main features and interfaces.

1. Home Screen (List View)

The main dashboard displaying all saved notes in a classic list format. Users can easily browse their notes.

UseNote home screen list view

2. Home Screen (Grid View)

An alternative masonry grid layout for the home screen, providing a more visual way to see notes at a glance.

UseNote home screen grid view

3. Empty State

When no notes are available, a clean empty state is shown, encouraging the user to create their first note.

UseNote empty home screen

4. Create Note

The editor interface for creating a new note. It includes dedicated, clean fields for the note's title and its main content.

UseNote create note screen

5. Change Note Color / Edit

Users can easily edit their notes and customize them by changing the background color of individual notes.

UseNote change color and edit

6. Search Notes

The search screen provides real-time filtering of notes by matching keywords against both titles and content.

UseNote search note screen

7. Settings

A dedicated settings screen where users can manage application preferences and other configurations.

UseNote settings screen

Project Structure

lib/
├── config/
│   ├── constant/
│   ├── router/
│   └── theme/
├── logic/
│   └── getx/
│       ├── binding/
│       └── controller/
├── services/
│   └── model/
└── ui/
    └── screens/
        ├── add_note_screen/
        ├── edit_note_screen/
        ├── home_screen/
        ├── search_screen/
        └── settings_screen/

Getting Started

Prerequisites

Make sure the following tools are installed:

  • Flutter SDK
  • Dart SDK
  • Android Studio or Visual Studio Code
  • Android emulator, iOS simulator, or a physical device

This project is configured with the Dart SDK constraint:

sdk: ">=2.12.0 <3.0.0"

Use a Flutter version that supports this Dart SDK range.

Installation

Clone the repository and install dependencies:

git clone <repository-url>
cd UseNote
flutter pub get

If generated Hive model files need to be rebuilt, run:

flutter pub run build_runner build

Running the App

Run the application on a connected device or emulator:

flutter run

Building the APK

To build a release APK for Android devices, run the following command:

flutter build apk --release

The generated APK will be located at build/app/outputs/flutter-apk/app-release.apk.

Local Storage

UseNote stores note data locally using Hive. The main note box is initialized when the application starts:

await Hive.openBox<Note>('note_inventory');

The app also stores the preferred home layout mode in a separate Hive box:

await Hive.openBox<bool>('is_list_view');

Core Workflow

  1. The app starts from the home screen.
  2. Users can create a new note from the bottom navigation action.
  3. Saved notes are shown in list or grid view.
  4. Tapping a note opens the edit screen.
  5. The search action filters notes by title and content.
  6. Delete actions remove notes from local storage.

Releases

Used by

Contributors

Languages