My Notes App is a sleek and intuitive note-taking app developed using Flutter and Dart. It allows users to create, view, update, and delete notes in real-time. Featuring modern UI design, secure authentication via Firebase, and efficient state management with Provider, it offers a responsive and user-friendly experience across devices.
- ✨ Create Notes - Add new notes with title, content, date, and color
- 📋 View Notes - Display all notes in an organized list with search
- ✏️ Edit Notes - Update existing notes with new information
- 🗑️ Delete Notes - Remove notes with confirmation dialog
- 🎨 Color Coding - Organize notes by color
- 🔍 Search - Find notes quickly with search functionality
- 💾 Local Storage - Data persists locally using SQLite database
- 🎨 Clean UI - Modern Material Design interface with smooth animations
- 🔥 AdMob Integration - Firebase AdMob for banner, interstitial, and app open ads
| Home Screen | Banner Ads Screen | Interstitial Ads Screen | App Open Ads Screen |
|---|---|---|---|
![]() |
![]() |
![]() |
![]() |
lib/
│
├── main.dart # App entry point
├── models/
│ └── task_model.dart # Note data model
├── databases/
│ └── task_database.dart # SQLite database operations
├── view_models/
│ └── task_view_model.dart # Business logic & state management
├── screens/
│ ├── home_screen.dart # Main notes list screen
│ └── add_edit_note_screen.dart # Add/edit note form
├── widgets/
│ └── note_card.dart # Custom note card widget
└── services/
└── ad_manager.dart # AdMob ad management
- 🏗️ MVVM Architecture - Clean separation of concerns with Model-View-ViewModel pattern
- 📊 State Management - Efficient state handling using Provider pattern
- 🗄️ Database Integration - SQLite database for persistent local storage
- 🎨 UI/UX Design - Material Design principles with custom widgets
- 🔄 CRUD Operations - Complete Create, Read, Update, Delete functionality
- 📱 Responsive Design - Adaptive layouts for different screen sizes
- ⚡ Performance - Optimized list rendering with ListView.builder
- 🧪 Code Organization - Clean, maintainable, and scalable code structure
- 📺 AdMob Integration - Firebase AdMob for managing ads
- Flutter (Dart) - Cross-platform mobile development framework
- SQLite (
sqflitepackage) - Local database storage - Provider - State management solution
- Material Design - UI components and design system
- Path - File path utilities for database operations
- Firebase - Authentication and Realtime Database for AdMob
- Flutter SDK (version 3.8.1 or higher)
- Dart SDK (included with Flutter)
- VS Code or Android Studio with Flutter plugin
- Firebase project (with Authentication and Realtime Database enabled)
- AdMob account (for ad unit IDs)
-
Clone the repository
git clone https://github.com/yourusername/flutter-todo-list.git cd flutter-todo-list -
Install dependencies
flutter pub get
-
Configure Firebase
- Add your
google-services.json(Android) andGoogleService-Info.plist(iOS) to the respective platform folders. - Update
android/app/src/main/AndroidManifest.xmlwith your package name. - Enable Email/Password authentication in Firebase Console.
- In Firebase Realtime Database, add an
admobnode with keys:banner,interstitial,app_openand set your AdMob unit IDs as values.
- Add your
-
Run the app
flutter run
dependencies:
flutter:
sdk: flutter
cupertino_icons: ^1.0.8
provider: ^6.1.2 # State management
sqflite: ^2.4.1 # SQLite database
path: ^1.9.1 # File path utilities
firebase_core: ^2.10.0 # Firebase core
firebase_auth: ^5.10.0 # Firebase Authentication
cloud_firestore: ^4.10.0 # Cloud Firestore
google_mobile_ads: ^3.14.0 # Google Mobile AdsCREATE TABLE notes(
id INTEGER PRIMARY KEY AUTOINCREMENT,
title TEXT NOT NULL,
content TEXT NOT NULL,
date INTEGER NOT NULL,
color TEXT NOT NULL
);- 🏷️ Task categories/tags
- 🔔 Task reminders/notifications
- ☁️ Data backup and sync
- 🌙 Dark mode support
- 📤 Task sharing functionality
- 📊 Statistics and analytics
- 📁 Import/export tasks
- 🎨 Custom themes and colors
Muhammad Attaullah
Feel free to connect or contribute to this project.
M-Attaullah
Muhammad Attaullah
📌 This app was developed as part of a Flutter development project showcasing MVVM architecture, state management, and local database integration.



