laurent22 / joplin

Joplin - the privacy-focused note taking app with sync capabilities for Windows, macOS, Linux, Android and iOS.
https://joplinapp.org
Other
46.03k stars 5.01k forks source link

Synchronisation on Android is supposed to happen every 5 minutes but does not #11081

Open dejafait opened 1 month ago

dejafait commented 1 month ago

Operating system

Android

Joplin version

3.0.8

Desktop version info

No response

Current behaviour

Simplest steps to reproduce: use a new profile with the Welcome notebook. Sync it to any target (e.g. Dropbox). After the initial sync completes, leave the app open as shown in screenshot.

Current behavior: the app never syncs again unless the user interacts to manually trigger it. Screenshot proves it (last sync happened at 11:51 but it's now 12:00). Screenshot_20240919-120017

Expected behaviour

It should sync every 5 minutes even without user interaction as long as the app stays open as shown in the screenshot.

Why it matters

Users have to keep "babysitting" (got that term from another user) the sync on all their android devices. It's been my case for one year. Really wish android sync would be more seamless thus here I am reporting the issue narrowed down to its simplest form.

Logs

No response

laurent22 commented 1 month ago

It is designed this way - if you interact with the app and more than 5 minutes have passed it will sync. But it's true that if you just leave it open without touching it, it won't happen. I guess we're making the assumption that the user actually interacts with the app when it's opened, which in most cases is a correct assumption on mobile.

dejafait commented 1 month ago

I keep Joplin open on several android devices and keep switching between them. Everytime I switch to a different device, I have to worry about syncing recent changes and waste 5-10sec (Joplin Cloud, E2EE, 10k notes), waiting for the triggered sync to complete. It happens maybe 50+ times a day (I use Joplin a lot, it is a central tool in my life). I'm sorry to insist.

Waiting a few seconds 50+ times a day is a bummer, when this sync could just proactively happen every 5 minutes, like the Interface claims it is, but is not.

As a side note, I will soon migrate from Joplin Cloud to my own Joplin Server Docker. I already tested it with my 10k notes, syncs 2-3x faster, because LAN and no more E2EE needed I guess.

This will alleviate the present issue but even there imho it would still make sense to offer an option to sync even when the user does not interact.

Afair Evernote still syncs (every N minutes) when there is no interaction. Also Todoist (instantly). Also Google Docs (instantly). This is the first time I encounter this unexpected degraded syncing pattern.

If the user has an app, any app with some sync, open on two devices, once the user makes a change on device A, the change should eventually propagate to device B without any user interaction. It may take a few minutes but it eventually happens. Imho.

dejafait commented 1 month ago

we're making the assumption that the user actually interacts with the app when it's opened, which in most cases is a correct assumption on mobile.

Then why not have the same logic on desktop and mobile ? Current behavior on desktop is automatic syncing every 5 minutes even without user interaction. Why punish mobile users vs desktop users? I don't understand.

laurent22 commented 1 month ago

Then why not have the same logic on desktop and mobile ? Current behavior on desktop is automatic syncing every 5 minutes even without user interaction. Why punish mobile users vs desktop users? I don't understand.

Originally this is because long running timers with the framework we're using are not reliable, so we have this technique that is based on user interactions and that assumption that if the app is open it's to be used.

I don't really understand your use case though - you mean that your phone is on all the time with the app opened, but you don't use your phone? Also normally when you open the app, it should sync too, it shouldn't wait 5 minutes.

dejafait commented 1 month ago

I mostly use Joplin on several (2-4) eink android tablets permanently open on my desk. I multitask between them. Let's say I completed some tasks and joplin changes on device A an hour ago. I switch to device B which already had Joplin open (usually 1-3 of my tablets have Joplin open). I always have to worry about syncing first, even if changes happened one hour ago. This is why I have developed the habit of not trusting Joplin sync and having to babysit it. I don't have this issue with any other app (Evernote, Todoist, gmail, Google doc, any app with user data sync).

Yes when I open the app it syncs. When I edit a note it syncs. When I interact it syncs.

laurent22 commented 1 month ago

That makes sense. This workaround with interaction-based timers was implemented years ago and maybe today the framework timers are more reliable so it would be good to revisit