maelchiotti / LocalMaterialNotes

Simple, local, material design notes
https://play.google.com/store/apps/details?id=com.maelchiotti.localmaterialnotes
GNU Affero General Public License v3.0
132 stars 7 forks source link

Choose where to store the database to enable syncing it #230

Open m0nkeyc0de opened 1 month ago

m0nkeyc0de commented 1 month ago

Hello, first of all I really like your application. The only thing that is missing is a way to synchronize notes between devices and I may have a quite simple solution for that.

I'm using Syncthing to privately share data accross my devices and it works very well. I order to synchronize notes (and not just only the JSON backup) it would be great to be able to store notes as single text files in a local directory on the device. Then Syncthing could just sync those files and the notes would be automagically up-to-date on each device.

The implementation could be as follows:

This could make this app, in combination with Syncthing, a killer notes taking app for private-minded people as such solutions aren't that common for now.

Those notes could even be edited with a simple text editor on a PC. So simple!

maelchiotti commented 1 month ago

Hi, I agree that it would immensely improve the app.

To store the notes, I use a database library. It has many advantages over file-based storage, such as performance, ease of use and the number of features out of the box.

So I don't think I'll consider storing the notes as text files. However, I could allow you to choose where the database data is stored, so you could sync it with Syncthing. This way, the synchronization wouldn't be real time, but at least the app would load the updated notes at each startup.

In any case, the database library I use is not being maintained so I want to change to another one, but it's not an easy task. So I wouldn't expect this feature for a while, but know that it's one I would use too.

m0nkeyc0de commented 1 month ago

Hi thanks for your quick reply. Synching the entire database file may do most of the job as well. For viewing/editing notes on the PC we'll see what could be done then.

SlimyMonz commented 2 weeks ago

Agreed that having a sort of local working directory would be real nice. I use MEGA and sync some folders, specifically a Notes folder with all my markdown files.

A potential solution: The database can be used to keep the app performance, with local txt or markdown files only being written to on save. Only reading the files if there's some external change. (A simple datetime check might work, compare DB modified vs local modified).

Basically, the app would run off the database and only sync the local directory occasionally.