anotepad

Anotepad

Minimal local note app for Android built with Kotlin 2.0 and Jetpack Compose. It works directly with files in a folder you choose (SAF), so notes are just .txt or .md files.

Features and advantages

How it works

Google Drive sync (detailed)

Folder selection

Local metadata

The app maintains a small local sync database:

Each uploaded Drive file stores appProperties.localRelativePath so the app can map Drive changes back to local paths.

Sync algorithm

Sync runs on a manual tap, on a debounced schedule after local edits, and on a periodic WorkManager job.

1) Pre-checks

2) Ensure Drive folder

3) Initial sync (first run or after reset) When there is no saved startPageToken, the app performs a one-time bootstrap:

This prevents duplicate files on Drive when local files already exist.

4) Regular sync (incremental)

Conflicts and deletes

Limitations

Tech stack

Project structure

Build

./gradlew assembleDebug

Run on device/emulator

./gradlew installDebug

http://anotepad.tirmudam.org/PRIVACY_POLICY