Gander

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

Mobile App DevelopmentJavaScriptMIT

Abstract

Gander is an open-source Mobile App Development project. Take a gander at any file. Offline, zero-permission Android viewer for PDF, Word, Excel, PowerPoint, photos, video, audio, Markdown and code. Every phone ships with a dozen half-viewers that bounce your documents to cloud services. Gander is the opposite: one small APK (about 5 MB) that renders everything on the device. It is built using JavaScript, Android, Kotlin. Key capabilities include: One viewer for everything: documents, spreadsheets, slides, images, video, audio, Markdown, code; Opens .zip files: a zip lists like a folder, and each file in it opens in its usual viewer, read straight out of the archive with nothing unzipped to the phone; Pinch zoom and smooth scrolling everywhere, with deep zoom into huge photos (tiled decoding). The complete source code is publicly available on GitHub under the MIT License, making it a useful reference for students building a Mobile App Development mini project or final-year project.

1. Introduction

Every phone ships with a dozen half-viewers that bounce your documents to cloud services. Gander is the opposite: one small APK (about 5 MB) that renders everything on the device. It cannot phone home because it does not even hold the INTERNET permission.

PDF, Word (.docx), Excel, PowerPoint (.pptx), photos, videos, audio, Markdown, text, code and .zip archives in one app, with zero permissions, no ads, no tracking and no internet access at all.

2. Objective

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

This project demonstrates how JavaScript, Android, Kotlin can be applied to a real-world Mobile App Development problem.

3. Key Features / Modules

  • One viewer for everything: documents, spreadsheets, slides, images, video, audio, Markdown, code
  • Opens .zip files: a zip lists like a folder, and each file in it opens in its usual viewer, read straight out of the archive with nothing unzipped to the phone
  • Pinch zoom and smooth scrolling everywhere, with deep zoom into huge photos (tiled decoding)
  • Recent files with thumbnail previews (image, video frame, PDF first page)
  • Folder browsing through one-time system grants, still without any storage permission
  • Share sheet and "Open with" integration: share a file from any app (chat, mail, browser) into Gander, or tap it in a file manager
  • Find in document: search inside PDF, Word, Excel, slides, Markdown, text and code with match navigation
  • Select and copy text in a PDF, and read one with a screen reader
  • Picks up where you left off: a PDF reopens at the page you were reading, however you open it
  • Night mode for PDFs: turns the page over for reading in the dark, keeping each colour's hue, turning scans and figures over with the text, and leaving photographs exactly as they were printed

4. Technology Stack

JavaScriptAndroidKotlin

5. System Requirements

General requirements for this technology stack — check the README for exact versions.

  • Node.js (LTS) and npm
  • A modern web browser
  • VS Code or any code editor
  • Android Studio (latest)
  • JDK 17
  • Android device or emulator
  • Git (to clone the repository)

6. Installation & Setup

git clone https://github.com/mokshablr/gander.git
cd gander
  1. Download the latest APK from Releases:
  2. Copy it to your phone, tap it, and allow "install unknown apps" when asked.
  3. Optional: Play Protect may warn about an unknown developer; that is what
apksigner verify --print-certs Gander-x.y.apk
5B:5C:F6:4A:94:23:7C:D5:F0:E0:85:76:00:38:BC:1C:EB:DF:18:DA:BA:5C:B3:EA:CA:7C:15:9F:22:A7:E2:4B

Full setup instructions are in the project README.

7. Future Enhancements

Suggested extensions you can add to make this your own project.

  • Add push notifications with Firebase Cloud Messaging
  • Add offline support with local caching
  • Publish an internal test build on the Play Store

8. Viva / Review Questions

Common questions examiners ask for projects in this domain.

  1. Which framework is used and why (native vs cross-platform)?
  2. How is app state managed across screens?
  3. Where is the data stored — locally, Firebase or a REST backend?
  4. How are permissions (camera, location, storage) handled?
  5. How would you publish this app to the Play Store / App Store?

9. Source Code & License

This project is developed by mokshablr and published on GitHub under the MIT License. Please follow the license terms and credit the original author when you use or modify this code.

Want to build this as your internship project?

Work on a Mobile App Development project like this with mentor guidance, weekly reviews and an internship certificate from Training Trains, Erode — online or offline.

Apply for Mobile App Development Internship