This is a native Android application that combines note-taking and to-do list functionalities to help users stay organized and manage their tasks efficiently. The application provides a user-friendly interface and offers various features to enhance task management and productivity.
- Add Note: Users can add new notes by providing a title, content, and selecting a category for each note.
- Categorize Notes: Notes can be categorized into different categories to keep them organized and easily accessible.
- Edit Note: Users can edit the title, content, or category of an existing note.
- Delete Note: Users can delete a note from the application.
- View Notes: Users can view all notes or filter notes based on categories.
- Search: Users can search for specific notes using keywords or titles.(Not completed)
- Add Task: Users can create tasks by providing a title, description, due date, and priority level.(Not completed)
- Edit Task: Users can edit the title, description, due date, or priority level of an existing task.(Not completed)
- Mark Task as Complete: Users can mark a task as complete when it's finished.(Not completed)
- Delete Task: Users can delete a task from the application.(Not completed)
- View Tasks: Users can view all tasks or filter tasks based on completion status or priority level.(Not completed)
- Reminders: Users can set reminders for tasks to receive notifications at specified times.(Not completed)
- Offline Access: The application supports offline access, allowing users to view and edit notes and tasks even without an internet connection.
- Data Backup: User notes and tasks are automatically backed up to ensure data safety and retrieval.(Not completed)
The application is built using modern tools and libraries for Android development:
- Kotlin: The primary programming language used for Android app development, offering concise syntax, null safety, coroutines, and other modern language features.
- Room: A persistence library that provides an abstraction layer over SQLite, making it easier to work with a database in Android applications.
- Coroutines: A lightweight concurrency framework for Kotlin that simplifies the execution of asynchronous tasks and improves code readability and scalability.
- Flow: A reactive streams library that offers an alternative to LiveData for handling asynchronous data streams in a more flexible and composable manner.
- StateFlow: A state holder component of Kotlin coroutines, providing a flow-based approach to handle and emit state updates.
- Navigation: A library for handling navigation between different destinations and passing arguments in a safe and structured manner.
- Hilt: A dependency injection framework for Android applications that simplifies the setup and management of dependencies.
- Data Binding: A library that allows for declarative binding of UI components to data models, reducing boilerplate code and enhancing code readability.
- Firebase Auth
- Backup to Firebase
- Watch support
- Push notification
- Progress Bar
- Widgets
- Add map
- Clone the repository:
git clone https://github.com/your-username/android-note-taking.git
- Open the project in Android Studio.
- Build and run the application on an Android device or emulator.
- Launch the application on your Android device.
- Use the interface to add, categorize, edit, and delete notes as desired.
- Tap on a note to view its details, or use the search functionality to find specific notes.
- Create tasks by providing the necessary details, including title, description, due date, and priority level.
- Edit or delete tasks as needed.