67 lines
2.3 KiB
Markdown
67 lines
2.3 KiB
Markdown
# Notes App
|
|
|
|
A lightweight personal notes app for Android with plain text and checklist note types.
|
|
|
|
## Features
|
|
|
|
- **Two Note Types**: Plain text notes and checklists
|
|
- **Dark Mode Only**: Optimized for low-light usage
|
|
- **Sortable List**: Sort by date (most/oldest) or alphabetically (A-Z/Z-A)
|
|
- **Swipe to Delete**: Swipe any note left/right to delete with confirmation
|
|
- **Auto-save**: Notes are automatically saved as you type
|
|
- **Checklist Features**:
|
|
- Add/remove items
|
|
- Toggle checkboxes
|
|
- Progress indicator (X/Y completed)
|
|
- **"Delete All Checked" button** - Remove all checked items at once
|
|
|
|
## Requirements
|
|
|
|
- Android Studio Hedgehog or later
|
|
- JDK 17
|
|
- Minimum SDK: API 24 (Android 7.0)
|
|
- Target SDK: API 34 (Android 14)
|
|
|
|
## How to Build
|
|
|
|
1. Open Android Studio
|
|
2. Select **File > Open** and navigate to the `NotesApp` folder
|
|
3. Wait for Gradle sync to complete
|
|
4. Connect an Android device or start an emulator (API 24+)
|
|
5. Click **Run** (Shift+F10) or select **Run > Run 'app'**
|
|
|
|
## Project Structure
|
|
|
|
```
|
|
NotesApp/
|
|
├── app/src/main/java/com/notesapp/
|
|
│ ├── MainActivity.java # Main activity hosting fragments
|
|
│ ├── fragments/
|
|
│ │ ├── NotesListFragment.java # Note list with sorting & swipe-to-delete
|
|
│ │ └── NoteEditorFragment.java # Editor for text and checklist notes
|
|
│ ├── adapters/
|
|
│ │ ├── NotesAdapter.java # RecyclerView adapter for note cards
|
|
│ │ └── ChecklistAdapter.java # RecyclerView adapter for checklist items
|
|
│ ├── models/
|
|
│ │ ├── Note.java # Data model with JSON serialization
|
|
│ │ └── ChecklistItem.java # Checklist item data model
|
|
│ └── utils/
|
|
│ └── NotesStorage.java # SharedPreferences storage layer
|
|
├── app/src/main/res/
|
|
│ ├── layout/ # XML layouts
|
|
│ ├── drawable/ # Vector icons
|
|
│ └── values/ # Colors, strings, themes
|
|
└── build.gradle # App configuration
|
|
```
|
|
|
|
## Storage
|
|
|
|
Notes are stored in SharedPreferences with the following structure:
|
|
- `note_count`: Next available ID
|
|
- `sort_order`: Current sort preference
|
|
- Per-note data (JSON serialized): type, title, content/items, timestamp
|
|
|
|
## License
|
|
|
|
Personal use only.
|