24fe32a973596eb7c1df07ef91217e8dc1beeeea
Bug A1: Gradient never showed because maxLines capped lineCount, making lineCount > maxLines impossible. Fixed by always setting maxLines = Int.MAX_VALUE and using hasVisualOverflow + heightIn(max) for clipped overflow detection. Bug A2: derivedStateOf captured stale val from Detekt refactor (commit1da1a63). Replaced with direct computation. Bug B1: animateItem() on dragged item conflicted with manual offset (from IMPL_017 commit900dad7). Fixed with conditional Modifier: if (!isDragging) Modifier.animateItem() else Modifier. Bug B2: Item size could change during drag. Added size snapshot in DragDropListState.onDragStart for stable endOffset calculation. Files changed: - ChecklistItemRow.kt: hasVisualOverflow, direct lineCount check, maxLines=Int.MAX_VALUE always, heightIn(max=collapsedHeightDp) - NoteEditorScreen.kt: conditional animateItem on isDragging - DragDropListState.kt: draggingItemSize snapshot for stable drag
Simple Notes Sync
Clean, offline-first notes with intelligent sync - simplicity meets smart synchronization.
SHA-256 hash of the signing certificate:
42:A1:C6:13:BB:C6:73:04:5A:F3:DC:81:91:BF:9C:B6:45:6E:E4:4C:7D:CE:40:C7:CF:B5:66:FA:CB:69:F1:6A
42:A1:C6:13:BB:C6:73:04:5A:F3:DC:81:91:BF:9C:B6:45:6E:E4:4C:7D:CE:40:C7:CF:B5:66:FA:CB:69:F1:6A
📱 APK Download · 📖 Documentation · 🚀 Quick Start
🌍 Deutsch · English
📱 Screenshots
📝 Offline-first • 🔄 Smart Sync • 🔒 Self-hosted • 🔋 Battery-friendly
✨ Highlights
- 📝 Offline-first - Works without internet
- 📊 Flexible views - Switch between list and grid layout
- ✅ Checklists - Tap-to-check, drag & drop
- 🌍 Multilingual - English/German with language selector
- 🔄 Configurable sync triggers - onSave, onResume, WiFi-connect, periodic (15/30/60 min), boot
- 🔒 Self-hosted - Your data stays with you (WebDAV)
- 💾 Local backup - Export/Import as JSON file (encryption available)
- 🖥️ Desktop integration - Markdown export for Obsidian, VS Code, Typora
- 🔋 Battery-friendly - ~0.2% with defaults, up to ~1.0% with periodic sync
- 🎨 Material Design 3 - Dynamic dark/light mode & colors based on system settings
➡️ Complete feature list: FEATURES.md
🚀 Quick Start
1. Server Setup (5 minutes)
git clone https://github.com/inventory69/simple-notes-sync.git
cd simple-notes-sync/server
cp .env.example .env
# Set password in .env
docker compose up -d
➡️ Details: Server Setup Guide
2. App Installation (2 minutes)
- Download APK
- Install & open
- ⚙️ Settings → Configure server:
- URL:
http://YOUR-SERVER-IP:8080/(base URL only!) - User:
noteuser - Password: (from .env)
- WiFi: (your network name)
- URL:
- Test connection → Enable auto-sync
- Done! 🎉
➡️ Detailed guide: QUICKSTART.md
📚 Documentation
| Document | Content |
|---|---|
| QUICKSTART.md | Step-by-step installation |
| FEATURES.md | Complete feature list |
| BACKUP.md | Backup & restore guide |
| DESKTOP.md | Desktop integration (Markdown) |
| SELF_SIGNED_SSL.md | Self-signed SSL certificate setup |
| DOCS.md | Technical details & troubleshooting |
| CHANGELOG.md | Version history |
| UPCOMING.md | Upcoming features 🚀 |
| TRANSLATING.md | Translation guide 🌍 |
cd android
./gradlew assembleStandardRelease
➡️ Build guide: DOCS.md
💡 Feature Requests & Ideas
Have an idea for a new feature or improvement? We'd love to hear it!
➡️ How to suggest features:
- Check existing discussions to see if someone already suggested it
- If not, start a new discussion in the "Feature Requests / Ideas" category
- Upvote (👍) features you'd like to see
Features with enough community support will be considered for implementation. Please keep in mind that this app is designed to stay simple and user-friendly.
🤝 Contributing
Contributions welcome! See CONTRIBUTING.md
📄 License
MIT License - see LICENSE
v1.7.0 · Built with ❤️ using Kotlin + Jetpack Compose + Material Design 3
Description
📝 Minimalist offline note-taking app with automatic Wi-Fi synchronisation via WebDAV without many permissions 🛡️
androidfdroidkotlinkotlin-androidmarkdownmaterial-design-3notes-appprivacyself-hostedsimple-appwebdav
Readme
MIT
5.7 MiB
Languages
Kotlin
98.1%
Shell
1.9%








