To-Do-App-Compose- Under Development ⛏
Give this repo a star ✨ if its helpful.
DB Queries used: ⚡
@Dao
interface ToDoDao {
@Query("SELECT * FROM todo_table ORDER BY id ASC")
fun getAllTasks(): Flow<List<ToDoTask>>
@Query("SELECT * FROM todo_table WHERE id =:taskId")
fun getSelectedTask(taskId: Int): Flow<ToDoTask>
@Insert(onConflict = OnConflictStrategy.IGNORE)
suspend fun addTask(todoTask: ToDoTask)
@Update
suspend fun updateTask(todoTask: ToDoTask)
@Delete
suspend fun deleteTask(todoTask: ToDoTask)
@Query("DELETE FROM todo_table")
suspend fun deleteAllTasks()
@Query("SELECT * FROM todo_table WHERE title LIKE :searchQuery OR description LIKE :searchQuery")
fun searchDatabase(searchQuery: String): Flow<List<ToDoTask>>
@Query("SELECT * FROM todo_table ORDER BY CASE WHEN priority LIKE 'L%' THEN 1 WHEN priority LIKE 'M%' THEN 2 WHEN priority LIKE 'H%' THEN 3 END")
fun sortByLowPriority(): Flow<List<ToDoTask>>
@Query("SELECT * FROM todo_table ORDER BY CASE WHEN priority LIKE 'H%' THEN 1 WHEN priority LIKE 'M%' THEN 2 WHEN priority LIKE 'L%' THEN 3 END")
fun sortByHighPriority(): Flow<List<ToDoTask>>
}
Built With 🛠
- Kotlin - First class and official programming language for Android development.
- Jetpack Compose - Jetpack Compose is Android's modern toolkit for building native UI.
- Coroutines - For asynchronous and more..
- Flow - A cold asynchronous data stream that sequentially emits values and completes normally or with an exception.
- Dagger-Hilt - Library for Android that reduces the boilerplate of doing manual dependency injection in the project.
- Room DB - The Room persistence library provides an abstraction layer over SQLite to allow fluent database access while harnessing the full power of SQLite.
- Android Architecture Components - Collection of libraries that help you design robust, testable, and maintainable apps.
- ViewModel - Stores UI-related data that isn't destroyed on UI changes.
- Material Components for Android - Modular and customizable Material Design UI components for Android.
Architecture
This app uses MVVM (Model View View-Model) architecture.