notes_app/README.md

2.3 KiB

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.