Gander: an offline file viewer for Android with an empty permissions page. MIT on GitHub, and now on Play too.

16 days ago by Arjun Maniyani to c/opensource

Take a gander at any file. Offline, zero-permission Android viewer for PDF, Word, Excel, PowerPoint, photos, video, audio, Markdown and code. - mokshablr/gander

cross-posted from: https://lemdro.id/post/46516699

GitHub 路 Google Play

Opens PDF, Word, Excel, PowerPoint, photos, video, audio, Markdown and code, all rendered on the device. About 5 MB, one build for every processor, Android 8.0 and up.

Search works in every document type. PDF text selects, copies and reads aloud to a screen reader, and there is a night mode that turns the paper black and leaves most photographs alone.

Its permissions page is empty and the manifest has no INTERNET so it can't open a network connection. Files reach it through the system picker, an Open-with intent, or a folder you grant once. The About screen asks Android what the app requests and shows you the result.

Not an editor. Legacy .ppt does not open. Complex PowerPoint renders approximately.

I will be in the comments today, so ask away, including why it isn't on F-Droid yet.

brewery 15 points 16 days ago

Would you consider adding it to f-droid?

path: 0 26110938, hotness: undefined, score: 15, children: 7
mokshablr 16 points 16 days ago path: 0 26110938 26111896, hotness: undefined, score: 16, children: 6
eldavi 6 points 16 days ago

Obtainium

TIL

path: 0 26110938 26111896 26111969, hotness: undefined, score: 6, children: 4
mokshablr 4 points 16 days ago

It's a good one. It installs apps straight from their GitHub releases and keeps them updated. Gander's README has a one-tap link to add it.

path: 0 26110938 26111896 26111969 26112379, hotness: undefined, score: 4, children: 3
eldavi 1 point 16 days ago

this whole time i've been doing the hard way -- manually sideloading. :p

path: 0 26110938 26111896 26111969 26112379 26113023, hotness: undefined, score: 1, children: 2
brewery 2 points 16 days ago

Thank you!

path: 0 26110938 26111896 26117340, hotness: undefined, score: 2, children: 0
ShinkanTrain 11 points 16 days ago path: 0 26115300, hotness: undefined, score: 11, children: 1
mokshablr 2 points 16 days ago

lmaoo

path: 0 26115300 26115815, hotness: undefined, score: 2, children: 0
myszka 9 points 16 days ago

Any vibe-coded parts?

path: 0 26114002, hotness: undefined, score: 9, children: 4
mokshablr 10 points 16 days ago

A lot of it was written with AI, yes, under my direction, and every push runs the test suite in CI.

The no-permissions part doesn't rest on trusting the code, though. The build fails if a permission is added, the About screen shows what Android says the app requests, and it's MIT, so the code is there to read.

If anything in it looks wrong, open an issue and I'll look into it: https://github.com/mokshablr/gander/issues

path: 0 26114002 26114426, hotness: undefined, score: 10, children: 2
iz_ok 2 points 16 days ago

You're a saint. Thank you for creating this.

path: 0 26114002 26114426 26120677, hotness: undefined, score: 2, children: 1
mokshablr 2 points 16 days ago

Thank you, that means a lot!

path: 0 26114002 26114426 26120677 26121203, hotness: undefined, score: 2, children: 0
isVeryLoud 2 points 14 days ago

Sounds like a euphemism for what's in my underpants

path: 0 26114002 26152682, hotness: undefined, score: 2, children: 0
Moonrise2473 5 points 16 days ago

Finally I have something to install when I clean up phones used by boomers.

I have no idea why boomers love to install 10 different ad-ridden PDF readers, all at the same time. One of them used 5gb of internet in 30 days. Why would they replace the default one with a reader that shows a mandatory 30 seconds ad before loading the file

path: 0 26122029, hotness: undefined, score: 5, children: 1
mokshablr 1 point 15 days ago

Haha, thanks! If you set it up on their phones setting it as default should open most files that they want to opened without having to install another app 馃槀

path: 0 26122029 26123919, hotness: undefined, score: 1, children: 0
umbrella 2 points 15 days ago

i don't remember seeing anything similar to this, i want to check this out when it comes to fdroid. lemmy needs a reminders feature.

path: 0 26122828, hotness: undefined, score: 2, children: 2
manuallybreathing 3 points 15 days ago

Could send yourself a scheduled email or set a calendar event :)

path: 0 26122828 26122961, hotness: undefined, score: 3, children: 0
mokshablr 2 points 15 days ago path: 0 26122828 26123928, hotness: undefined, score: 2, children: 0
Squizzy 1 point 15 days ago

Looks cool. Great demand for this.

Can you set the git so that obtainium can install it?

Is there an edit feature which will then open your app of choice for editing the file type?

path: 0 26125286, hotness: undefined, score: 1, children: 3
mokshablr 0 points 15 days ago

Obtainium already works with the GitHub releases, and the README has a one-tap link for it.

There's no edit feature, but the viewer's Share button hands the file to any app that accepts it so that should work for what you said.

path: 0 26125286 26127415, hotness: undefined, score: 0, children: 2
Squizzy 1 point 15 days ago

Brilliant, thanks - my obtainium attempts had ".git" on the end. Looks great, the share feature is exactly the use case I was looking. Only looking for it baked in because android's share feature is fairly poor.

path: 0 26125286 26127415 26127556, hotness: undefined, score: 1, children: 1
mokshablr 0 points 15 days ago

Glad Obtainium works now! Fair point on the share sheet, a button that only lists the apps that can open that file type would be nicer.

path: 0 26125286 26127415 26127556 26131432, hotness: undefined, score: 0, children: 0
altkey 1 point 16 days ago

Well, it opened a pptx with embedded videos without a problem. That's nice!

What Gander name means?

edit: Also, I'm not informed in the very least what security measures may apply here, I mean against random files users may open. It would not hurt to consult with an expert.

path: 0 26113432, hotness: undefined, score: 1, children: 1
mokshablr 4 points 16 days ago

Glad the pptx worked!

The name is from "take a gander" which is like slang for "take a look". A gander is also a male goose hence the icon. 馃槢

Gander treats every file as untrusted. Documents render in a WebView that runs only Gander's own scripts and loads nothing except Gander's own code and the file you opened. With no internet permission, a file that got past that still couldn't reach the network.

Nobody outside has audited it yet, and you're right that it wouldn't hurt. SECURITY.md lists what a file should never be able to do, and how to report one privately: https://github.com/...

path: 0 26113432 26113879, hotness: undefined, score: 4, children: 0
quantumvoid0 0 points 9 days ago

This is cool, I was literally looking for an app to open all kinda files for a lean build...great piece of software..

path: 0 26232474, hotness: undefined, score: 0, children: 2
mokshablr 0 points 7 days ago

Thanks! What's the lean build, a stripped-down phone? If a file doesn't open, do let me know.

path: 0 26232474 26265758, hotness: undefined, score: 0, children: 1
quantumvoid0 0 points 7 days ago

its just a custom rom, stripped down to the basics...and as far as i have tested almost all files open except .odp format, other than that, rly great app

path: 0 26232474 26265758 26268826, hotness: undefined, score: 0, children: 0
opensource
opensource

@lemmy.ml

login for more options
49547
3010
4370

All about open source! Feel free to ask questions, and share news, and interesting stuff!

Useful Links

Rules

  • Posts must be relevant to the open source ideology
  • No NSFW content
  • No hate speech, bigotry, etc

Related Communities

Community icon from opensource.org, but we are not affiliated with them.

go to feed...