One Matrix – Smart Notebook | Interactive Flutter App Documentation
Introduction
The Smart Notebook app is a robust and user-friendly application designed to help users efficiently create, organize, and manage their notes. Built using the Flutter framework, this cross-platform app offers a seamless and consistent experience across both iOS and Android devices. The app leverages SQLite for persistent data storage, ensuring that your notes are always saved and accessible. With a clean and intuitive user interface, Smart Notebook makes note-taking a pleasure, whether you’re jotting down quick thoughts, detailed ideas, or important reminders.
Technology Stack
- Frontend:
- Flutter: A powerful UI toolkit by Google for building natively compiled applications for mobile, web, and desktop from a single codebase.
- Dart: The programming language used by Flutter, known for its performance and ease of use.
- Backend:
- SQLite: A lightweight, disk-based database that provides robust data storage for the app’s notes and settings.
- Google AI API (Gemini): Utilized for integrating next-generation AI features like the AI content writer.
- APIs and Packages:
- HTTP Package: For making API calls to external services like Gemini AI.
- Path Provider: For locating commonly used locations on the filesystem.
- Image Picker: For accessing and picking images from the gallery or camera.
- Contacts Service: For picking contact details to save as quick-reference text notes.
- Permission Handler: For handling runtime permissions dynamically and securely.
- File Picker: For picking files from the device.
- Open File: For opening files with other applications.
- Flutter PDFView: For viewing PDF files.
- Share Plus: For sharing content with other applications.
- Flutter Quill: For rich text editor functionality.
- QR Code Scanner: For scanning QR codes.
- Flutter Sound: For audio recording and playback.
- Flutter Drawing Board: For drawing and sketching.
- Google ML Kit: For text recognition and other machine learning functionalities.
- Speech to Text: For converting speech to text.
- Translator: For translating text into multiple languages.
- Google AI Gemini SDK: For integrating advanced AI capabilities.
- Flutter Dotenv: For secure environment configuration.
- Additional Features:
- Google AdMob: For integrating advertisements within the app.
- Google Analytics: For tracking user interactions and app performance.
- Custom Ads Board: For managing custom advertisements.
- Firebase: For backend services like authentication, real-time database, and cloud storage.
⚠️ Important Notice Regarding Third-Party Services & Usage Costs: This application integrates with external cloud services including the Google AI API (Gemini), Firebase, and Google AdMob. Please be advised that these external services are NOT included in the purchase price of this item. Buyers are required to set up their own developer accounts. Depending on your usage volume and the provider’s subscription models, external APIs (such as the Gemini AI generation requests) may incur separate usage costs from Google Cloud/Google AI Studio.
Live preview
Key Modules
- Note Management:
- Create, read, update, and delete notes.
- Note categorization and search functionality.
- Note sharing options.
- Advanced Modules:
- PDF integration to add and view PDF files within notes.
- Voice typing for quick and hands-free note-taking.
- AI content writer powered by Google Gemini for generating text content.
- Drawing and sketching tool for creating illustrations within notes.
- Document scanner to digitize paper documents.
- QR code scanner for quick data entry.
- Language translation for creating multilingual notes.
- Contact Quick-Save: Allows users to save necessary contact text details directly into a note for quick reference.
- Native Dialer Integration: Allows users to tap on a saved phone number within a note to safely pass the intent and open it directly inside the device’s default phone dialer application (the app does not make background calls).
App Screenshots
Features
- Core Features:
- Persistent Data Storage: Uses SQLite for robust data storage, ensuring that notes are saved and can be accessed even offline.
- Clean and Intuitive UI: A user-friendly interface that makes navigation and note management easy and efficient.
- Note Categorization: Organize notes into categories for better management.
- Search Functionality: Quickly find notes using the built-in search feature.
- Note Sharing: Easily share notes via email, messaging apps, and more.
- Advanced Features:
- PDF Integration: Attach and view PDF documents within your notes.
- Voice Typing: Dictate your notes using voice recognition technology for hands-free note-taking.
- AI Content Writer: Generate rich content using advanced AI, powered by Google’s Gemini API.
- Drawing and Sketching: Create drawings and sketches directly within your notes.
- Document Scanner: Scan and digitize physical documents using your device’s camera.
- QR Code Scanner: Scan QR codes for quick data entry into notes.
- Language Translation: Translate notes into multiple languages for better accessibility.
- Contact Logging: Safely save custom contact names and phone numbers within your notes for reference.
- One-Tap Dialer Link: Launch the device’s native system dialer interface pre-filled with the noted contact number automatically.
Getting Started
Follow these simple steps to set up and run the Smart Notebook application on your local development machine:
- Extract the Package: Unzip the downloaded product source package into a directory of your choice. (Ensure hidden folders like
.git or IDE configs are omitted). - Open the Project: Launch your preferred IDE (Visual Studio Code or Android Studio) and open the extracted project folder.
- Fetch Dependencies: Open the terminal within your IDE and run the command:
flutter pub get - Configure Environment Variables: Locate the
.env.example file in the root directory, rename it to .env, and enter your personal Gemini API Key and required configurations. - Run the App: Connect an Android/iOS emulator or physical test device and run:
flutter run
Non-Technical Branding Guide
You can customize the appearance and branding of the app easily without diving deep into complex code structures:
- Changing the App Name:
- Android: Navigate to
android/app/src/main/AndroidManifest.xml and update the android:label attribute. - iOS: Navigate to
ios/Runner/Info.plist and modify the string value under the CFBundleName key.
- Changing the App Launcher Icon:
This project uses the automated launcher icon generator. Simply replace the template image located at assets/images/app_icon.png with your new square logo (512×512px recommended), then run the following terminal command:
flutter pub run flutter_launcher_icons:main - Changing App Theme Colors:
Open the file located at lib/constants/colors.dart (or your designated theme setup file) and update the primary and accent hexadecimal color definitions to match your business brand identity.
Backend & Server Troubleshooting & FAQ
- Q: How do I configure the Gemini / Google AI API connection?
A: You need to add your personal Google AI Studio API Key in the environment configuration file (.env). Ensure that your Google AI account has a functional billing profile setup if you exceed the free tier limits, otherwise requests may fail with a 429 quota error. - Q: Why are Firebase authentication or real-time sync features failing?
A: Make sure you have correctly set up your project on the Firebase Console, enabled the required authentication methods, and replaced the default configurations with your own google-services.json (for Android) and GoogleService-Info.plist (for iOS). - Q: Does the app work completely offline with SQLite backend?
A: Yes, all core note management modules store data locally via SQLite. An active server/internet connection is only required for external cloud modules like Firebase sync, Gemini AI content writing, and Translation APIs. - Error: CocoaPods not installed or Podfile configuration failure (iOS Build Error)
A: If your iOS build fails on macOS, open the terminal, navigate to the ios directory via cd ios, run pod repo update followed by pod install, then try rebuilding. - Error: MinSdkVersion mismatch or Android Gradle Plugin error
A: Ensure that your local Android SDK configurations match requirements. If a plugin throws an error, check android/app/build.gradle and confirm the minSdkVersion is set to at least 21.
Summary
The Smart Notebook app is a comprehensive tool designed to meet all your note-taking needs, whether for personal use, work, or study. With its wide range of features, from basic note management to advanced functionalities like AI content writing and document scanning, it offers a complete solution for users seeking an efficient and versatile note-taking application. Built on the robust Flutter framework and leveraging powerful technologies like SQLite and Gemini AI, Smart Notebook ensures a reliable and enhanced user experience.
Support
For any queries or support, contact us through: