A Flutter-based local-first note-taking application.
- 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.
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.
- 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.
Below are the screenshots of the UseNote application, demonstrating its main features and interfaces.
The main dashboard displaying all saved notes in a classic list format. Users can easily browse their notes.
An alternative masonry grid layout for the home screen, providing a more visual way to see notes at a glance.
When no notes are available, a clean empty state is shown, encouraging the user to create their first note.
The editor interface for creating a new note. It includes dedicated, clean fields for the note's title and its main content.
Users can easily edit their notes and customize them by changing the background color of individual notes.
The search screen provides real-time filtering of notes by matching keywords against both titles and content.
A dedicated settings screen where users can manage application preferences and other configurations.
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/
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.
Clone the repository and install dependencies:
git clone <repository-url>
cd UseNote
flutter pub getIf generated Hive model files need to be rebuilt, run:
flutter pub run build_runner buildRun the application on a connected device or emulator:
flutter runTo build a release APK for Android devices, run the following command:
flutter build apk --releaseThe generated APK will be located at build/app/outputs/flutter-apk/app-release.apk.
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');- The app starts from the home screen.
- Users can create a new note from the bottom navigation action.
- Saved notes are shown in list or grid view.
- Tapping a note opens the edit screen.
- The search action filters notes by title and content.
- Delete actions remove notes from local storage.






