https://github.com/marcinwitnik/tasks-compose-app
Aplikacja do zarządzania notatkami stworzona w architekturze MVVM, z wykorzystaniem Jetpack Compose, Room i Kotlin Coroutines. Przejrzysty interfejs, łatwa obsługa, lokalna baza danych i tryb ciemny.
https://github.com/marcinwitnik/tasks-compose-app
android dark-theme jetpack-compose kotlin note-taking notes notes-app room
Last synced: 7 days ago
JSON representation
Aplikacja do zarządzania notatkami stworzona w architekturze MVVM, z wykorzystaniem Jetpack Compose, Room i Kotlin Coroutines. Przejrzysty interfejs, łatwa obsługa, lokalna baza danych i tryb ciemny.
- Host: GitHub
- URL: https://github.com/marcinwitnik/tasks-compose-app
- Owner: marcinwitnik
- License: mit
- Created: 2025-07-23T17:10:01.000Z (11 months ago)
- Default Branch: main
- Last Pushed: 2025-07-23T17:51:40.000Z (11 months ago)
- Last Synced: 2025-07-23T20:23:00.285Z (11 months ago)
- Topics: android, dark-theme, jetpack-compose, kotlin, note-taking, notes, notes-app, room
- Language: Kotlin
- Homepage:
- Size: 119 KB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
Aplikacja Mobilna: Lista Zadań w Kotlin
Ten projekt to **prosta i funkcjonalna aplikacja mobilna do zarządzania listą zadań (TODO)**, stworzona w języku Kotlin z wykorzystaniem Android Studio. Pozwala użytkownikowi na dodawanie i edytowanie notatek. Dane przechowywane są lokalnie za pomocą **Room Database**. Aplikacja została stworzona z wykorzystaniem wzorca architektonicznego **MVVM**, co zapewnia przejrzystość i łatwość w rozbudowie projektu.
---
##
Technologie i środowisko
- **Język:** [](https://kotlinlang.org/docs/home.html)
- **Środowisko IDE:** [](https://developer.android.com/studio)
- **Running devices:** samsung SM-A346B •
- **Biblioteki:**
- Room – lokalna baza danych do przechowywania zadań
- LiveData – obserwowalność zmian danych
- ViewModel – logika biznesowa oddzielona od widoku
- RecyclerView – efektywne renderowanie listy zadań
- Material Components – stylizacja aplikacji
- Navigation Component – zarządzanie nawigacją między ekranami
---
Funkcje programu (kliknij, aby rozwinąć)
---
📄 MainActivity.kt – główna aktywność (kliknij, aby rozwinąć)
- Inicjalizuje całą aplikację Compose.
- Ustawia motyw (jasny/ciemny) z możliwością przełączania.
- Obsługuje nawigację pomiędzy ekranami listy i edycji notatek.
- Inicjalizuje bazę danych i ViewModel z repozytorium.
- Przykładowo usuwa wszystkie notatki przy starcie (do testów).
---
📄 Note.kt – model danych (kliknij, aby rozwinąć)
- Klasa danych reprezentująca notatkę.
- Oznaczona jako `@Entity` dla Room Database.
- Pola: `id`, `title`, `content`.
---
📄 NoteDao.kt – interfejs DAO (kliknij, aby rozwinąć)
- Udostępnia operacje na bazie danych:
- `getAllNotes()`: zwraca wszystkie notatki jako `Flow>`
- `getNoteById(id)`: pobiera notatkę po ID
- `addNote(note)`: dodaje lub aktualizuje notatkę
- `deleteNote(note)`: usuwa notatkę
- `deleteAllNotes()`: usuwa wszystkie notatki
---
📄 NoteDatabase.kt – konfiguracja bazy danych (kliknij, aby rozwinąć)
- Tworzy bazę danych Room z encją `Note` i DAO `NoteDao`.
- Zawiera mechanizm singletonowy dla jednej instancji bazy.
---
📄 NoteRepository.kt – warstwa pośrednia (kliknij, aby rozwinąć)
- Oddziela logikę bazodanową od ViewModelu.
- Udostępnia metody `addNote`, `getNoteById`, `deleteNote`, `deleteAllNotes`.
- `notes`: przepływ wszystkich notatek jako `Flow>`.
---
📄 NoteViewModel.kt – logika widoku (kliknij, aby rozwinąć)
- Łączy repozytorium z interfejsem UI.
- Przechowuje i aktualizuje listę notatek oraz notatkę aktualnie edytowaną.
- Udostępnia metody: `addNote`, `updateNote`, `deleteNote`, `loadNote`, `clearCurrentNote`.
---
📄 AddEditNoteScreen.kt – ekran dodawania/edycji notatki (kliknij, aby rozwinąć)
- Dynamiczny ekran służący do dodawania lub edytowania notatki.
- Obsługuje wprowadzenie tytułu i treści notatki.
- Używa ViewModelu do załadowania notatki i zapisania zmian.
- Zawiera przyciski: „Zapisz” i „Anuluj”.
---
📄 NoteListScreen.kt – ekran listy notatek (kliknij, aby rozwinąć)
- Wyświetla listę wszystkich notatek.
- Umożliwia przejście do ekranu edycji po kliknięciu na notatkę.
- Zawiera przycisk do przełączenia motywu (jasny/ciemny).
- Posiada `FloatingActionButton` do dodawania nowych notatek.
---
📄 NoteCard.kt – komponent UI notatki (kliknij, aby rozwinąć)
- Komponent wyświetlający pojedynczą notatkę w formie karty.
- Umożliwia kliknięcie i przejście do edycji notatki.
- Styl oparty na Material3 z tytułem i treścią.
---
Podgląd działania (kliknij, aby rozwinąć)
Poniżej przykładowe wyniki działania aplikacji: