Gander: Android File Viewer That Asks for Zero Permissions
Why this matters
Most small Android viewers fall into one of two traps. Either they're a thin wrapper around a server-side renderer—so your document gets uploaded to some backend before it appears on screen—or they demand broad storage access and then use it to "improve" your ads. The alternative is installing a 400 MB office suite and signing in with an account you don't want to create. Gander sidesteps all of that by rendering everything locally with bundled components.
- PDF: uses Pdfium
- Video/audio: uses Media3
- Office formats (docx, xlsx, pptx), Markdown, code: rendered by JavaScript libraries running inside a WebView
Since there's no INTERNET permission, no request can go to any server. You can even inspect the app manifest and confirm the permission list is empty. That's not a privacy policy promise—it's an OS-level fact.
What I like about it in practice
Opening files people send me is finally boring. I grab a Word contract from an email attachment, hit "open with," pick Gander, and it just works. The same app handles Excel sheets, PowerPoint decks, images, video, audio, Markdown, and source files like Python or JSON. I don't have to maintain five different format-specific apps anymore. The APK is tiny, there's no account setup, no "upgrade to Pro" nagging, no telemetry to disable.
Getting it running takes ten seconds: download the APK from the GitHub releases page, allow unknown app installs for your browser, and open Gander from the system share sheet. Done.
The honest limitations
It's a viewer, not an editor. Complex PowerPoint decks come out approximately right—fancy animations and complicated layouts can shift. Spreadsheet charts aren't drawn at all. Legacy binary .doc and .ppt files (the pre-2007 formats) are unsupported. For the files I actually deal with—contracts, documentation, code snippets, travel itineraries—that's a non-issue. But if you live inside legacy Office ecosystems, this isn't your tool yet.
The author seems to be tracking render bugs through GitHub issues. The most useful thing you can do after testing it is throw weird files at it: old presentations