After wrestling with android sync issues from the file system for the last 3 years or so, I decided to write Janis. Janis is a fast, read-only Android browser for a local Joplin sync folder.
please take a look here:
download it it from the releases and give it a short
you can download and give it a shot
This is interesting. I'm wondering how you managed to get around the performance issues while using SAF. As far as I know, the main issue is the stat (list files) is the main thing which is really slow with SAF, when a directory has a lot of files.
Note that your app currently is not usable if using E2EE, as everything shows as untitled when that is the case.
It's in early alpha stages, and I didn't bother with e2ee yet. I just vibe coded it over the last two days, but I ways always skeptical about this whole claim around SAF so I wanted to try for myself. e2ee may be a bit tricky, so I'll probably only support my own use-case first.
Actually one reason I dropped e2ee in the first place for my own notes is because someone on the forum here said e2ee slows the android joplin cilent down even more.
according to the AI:
"I looked at Joplin’s Android SAF implementation more closely. Its listFiles() is already batched, but the initial import path appears to lose the benefit: each subsequent get(path) resolves the filename via findFile(), and findFile() queries and walks the directory’s full child cursor again. For a flat Joplin sync target, that becomes approximately O(n²) directory-entry work. Janis retains the document URI returned by its one batch query and reads items directly from that URI, which is likely the main reason its initial catalog build is dramatically faster."
In practice, it takes Joplin days to import my notes, and me having to keep the device awake, vs maybe 30 seconds in Janis.
note that the sync will show empty if there's nothing in your folders at first. you can go into settings and add the password and save password and scan to get the notes decrypted
That's great to hear! I pushed for a long time (multiple threads and issues) that there's no way Android is inherently that bad, so I'm happy it's finally solved.
added tags now. this joplin note browser is quite full-fledged at this point. it's using a different paradigm to browse the notes too, which I'm finding quite useful for myself
FYI I tried the update with E2EE support and it didn't really work. Even after multiple rescans, all the notes show as untitled. I did test using an incorrect password too and it does show an error on the main screen in that scenario, so the password was not the issue
it works for me, but I tried a fresh key and encryption setup. if there have been iterations of the encryption, then likely mine just supports the latest version.
That fixed it, thanks! Also just a minor thing, the safe area inset at the bottom hasn't been handled correctly when using 3 button navigation, so when you scroll to the bottom of a note, the last part is partially covered by the navigation bar:
It seems overall decent and is pretty quick. To be honest though I'm not overly interested in the app for my personal use, I was more interested to compare with what speed can be achieved in Joplin. In other news, the Joplin change was merged today, so it will be in Joplin 3.8.
One other thing is there is a warning about the app being from an untrusted developer when installing it. Not sure what is needed to avoid that, but might be worth looking into.