Android Study Material App

Job ID: 40619298

Budget: $10 – $30 USD

Project Brief: Secure PDF Ebook Viewer App (iOS + Android)
Overview

We need a mobile app (iOS + Android) that lets authenticated users view PDF ebooks in-app only. Users should not be able to download, export, print, or easily screenshot/screen-record the content. The goal is strong deterrence against content leakage — not absolute prevention, which no platform can guarantee (especially iOS).

Recommended Stack
Framework: Flutter (single codebase for iOS + Android), unless the developer has a strong reason to recommend native (Swift/Kotlin) instead.
PDF rendering: In-app rendering only (e.g. Syncfusion Flutter PDF Viewer, or equivalent) — no native "open in other app" or file export paths.
Backend: Required. PDFs must be served via authenticated, short-lived signed URLs — not bundled into the app or fully downloaded to persistent device storage.
DRM SDK option: Open to using an existing solution (e.g. Readium, Adobe Content Server, Vitrium, Digimarc) instead of building content protection from scratch, if it meaningfully reduces cost/timeline without sacrificing the requirements below.
Core Requirements
1. Content delivery
PDFs are streamed/rendered from backend via authenticated, time-limited signed URLs.
No complete PDF file should persist in accessible local storage.
Backend must support user authentication and per-user access control (which users can view which books).
2. Viewer restrictions
Users can view pages only — no download, export, share, or print options exposed anywhere in the UI.
Text selection and copy/paste disabled within the viewer.
Page navigation, zoom, and basic reading controls (bookmarks, table of contents, etc.) should work normally — [confirm exact feature list with dev].
3. Screenshot / screen-recording protection

Android:

Implement FLAG_SECURE on the reader activity/window to block screenshots, screen recording, and the recent-apps thumbnail preview.

iOS:

Detect screenshot events (UIApplication.userDidTakeScreenshotNotification) and screen recording (UIScreen.capturedDidChangeNotification).
On detection: blur or hide page content immediately, and [define desired behavior — e.g. log the event, warn the user, notify admin, temporarily lock the book].
Acknowledge to us in writing that iOS has no true prevention API — detection/reaction is the ceiling here.
4. Watermarking
Overlay a semi-transparent, per-user watermark (e.g. name and/or email/account ID) across each page.
Purpose: traceability if leaked content surfaces, even though it doesn't stop capture itself.
5. Device security (nice-to-have, confirm priority)
Detect rooted (Android) / jailbroken (iOS) devices and optionally restrict or warn on those devices, since FLAG_SECURE and other protections can sometimes be bypassed at the root level.
Deliverables
iOS app (App Store-ready build or TestFlight build)
Android app (Play Store-ready build or internal testing build)
Backend service for authenticated, signed-URL PDF delivery (or integration with chosen DRM SDK)
Basic admin capability to upload/manage ebook files and assign access to users [confirm scope]
Documentation covering setup, deployment, and a clear statement of the security model's actual guarantees and limitations
Explicitly Out of Scope (unless quoted separately)
100% screenshot prevention (not technically possible, especially on iOS)
Protection against external capture (a second camera photographing the screen)
[Add other exclusions as needed — e.g. offline reading, multi-language support, etc.]
What We Need From Applicants
Confirmation of experience with Flutter (or native) apps involving secure/DRM-protected document viewing.
Any prior experience with FLAG_SECURE, iOS screenshot/recording detection, or DRM SDKs (Readium, Adobe Content Server, Vitrium, Digimarc, etc.).
A fixed-scope quote based on the requirements above, broken down by: mobile app development, backend development, and any DRM SDK integration/licensing costs.
Estimated timeline.
Portfolio examples of similar work, if available.