A modern and functional notes application built with Flutter. It allows users to create, view, edit, and delete notes with a clean and intuitive user interface. The app supports both light and dark themes and persists all data locally on the device.
- Create, Read, Update, Delete (CRUD): Full CRUD functionality for your notes.
- Local Storage: Utilizes Hive for fast and efficient local data storage. All your notes are saved securely on your device.
- Color Customization: Assign different colors to your notes for better organization.
- Search Functionality: Quickly find notes by searching through titles and content.
- Theme Support: Seamlessly switch between light and dark modes.
- Responsive UI: A clean and user-friendly interface that works across different screen sizes.
- Framework: Flutter
- State Management:
flutter_bloc(using Cubit) for predictable and scalable state management. - Database:
hivefor a lightweight and fast NoSQL local database. - Architecture: The project follows a feature-first architecture, separating concerns into distinct feature modules (e.g.,
notes,splash). - Code Generation:
hive_generatorandbuild_runnerare used to generate the necessary type adapters for Hive models.
To get a local copy up and running, follow these simple steps.
- Flutter SDK installed on your machine. You can find instructions here.
- Clone the repository:
git clone https://github.com/OmarGamalDev/notes-app.git
- Navigate to the project directory:
cd notes-app - Install dependencies:
flutter pub get
- Run the build runner to generate Hive type adapters:
flutter pub run build_runner build --delete-conflicting-outputs
- Run the app:
flutter run
The project is organized using a feature-driven approach to keep the codebase modular and maintainable.
lib/
├── core/ # Shared components and utilities
│ ├── constants/ # App-wide constants (colors, styles, routes)
│ ├── shared_widgets/ # Reusable widgets (buttons, text fields)
│ └── theme/ # Theme management (ThemeCubit)
│
├── features/ # Application features
│ ├── notes/ # Notes feature module
│ │ ├── data/
│ │ │ └── models/ # Data models (NoteModel)
│ │ └── presentation/
│ │ ├── cubit/ # BLoC logic for notes
│ │ ├── views/ # UI screens for the notes feature
│ │ └── widgets/ # Widgets specific to the notes feature
│ └── splash/ # Splash screen feature
│
└── main.dart # Main application entry point





