What is Calico? #
A native Android MangaDex client in Kotlin and Jetpack Compose. The interface follows MangaDex’s mobile layout with slate surfaces, lavender accents, language flags, colored tags, detailed title cards, and five main destinations: Home, Search, Updates, Library, and Settings. The app uses the supplied purple cat logo.
The Google Play listing title is Calico - Reader for Mangadex, recorded in store title metadata. The launcher and in-app name are Calico.
Calico is proprietary, closed-source software. Bundled third-party components retain their own licenses and required attribution; those notices do not license Calico’s application code.
Connect your account #
On first launch, a short guide explains guest and account features. Choose Continue without an account to browse, read, and save a local library, or Set up MangaDex for the guided connection steps. Reopen it anytime under Settings → Getting started.
Open Settings → Connect MangaDex and enter your approved personal client ID, client secret, username, and password. Create your personal client through the API Clients section in MangaDex’s own settings. The client must belong to the same account.
Credentials go directly to MangaDex’s authentication service. The app encrypts the client secret and tokens using an Android Keystore AES-GCM key. Passwords are not persisted. Access tokens are refreshed automatically. Image requests never receive authentication headers. Cloud backup and device transfer are disabled for app data.
After connecting, open Library → Sync to merge your remote follows into the local library. Subsequent library changes and completed chapter markers are sent to MangaDex. Failed writes remain in an account-scoped local queue and are retried by subsequent sync operations. Guest library entries are not automatically uploaded when signing in.
Feature list #
Popular titles, latest chapter activity, recently added manga, random discovery, and continue reading. Debounced title search, paginated grid/list results, sorting, publication status, demographics, content ratings, original and chapter languages, year, and included/excluded tags with AND/OR matching. Unavailable listings exposed by the API, including metadata-only chapters. These controls cannot recover removed pages or expose private records. Manga synopsis, alternative titles, author/artist links, clickable categories, related manga, cover galleries, statistics, publisher/tracking links, sharing, and chapter language/order controls. Author/artist biographies and works; scanlation-group information and associated works. Latest chapter feed and signed-in followed-title updates. Local library with six reading states, recent history, durable page positions, remote library merge, read markers, manga ratings, and custom-list creation/membership. LTR (default), RTL, vertical, and webtoon readers; pinch/double-tap zoom; page slider and jump; next/previous chapters; fullscreen controls; volume-key navigation; fit page/width; data saver; bounded nearby-page prefetch; keep-awake; and reader backgrounds. Advancing beyond the final page continues in the selected language, then returns to the original screen with its list position and filters preserved. System, Light, Dark, Black, Midnight, and Sepia themes; five accents; language/content preferences; incognito reading; cache/history controls; account connection and disconnection. See feature coverage for the implemented scope and remaining gaps.
Privacy, official links, and release policies #
Settings includes a prominent unofficial-client notice, MangaDex’s official website/Discord/support links, and offline privacy, terms, data/account, credits, and third-party license pages. Privacy and terms are also available from onboarding. Image-delivery reports to MangaDex@Home are disclosed; incognito does not hide network requests.
See the release-readiness worklist before public distribution. The primary support/privacy contact is support@alvinwu.com; printstreamed@gmail.com is an additional contact for support, privacy, and rights requests. This Play-targeted build restricts the catalog to Safe and Suggestive ratings, including direct and cached reader access; explicit-content controls are unavailable. Public policy hosting, rights/moderation/removal operations, and Play Console declarations and signing remain publisher tasks. Rating filters alone do not certify store compliance.
Design and implementation #
No WebView, bundled manga catalogue, or embedded API credentials. All catalogue and chapter data comes from MangaDex. Public metadata has a bounded HTTP cache, and previously cached public requests can be reused during connection failures. Images have a 256 MB disk cache and a memory budget of 18% of app-available memory. The cache is not a managed offline download library.
The REST client spaces requests by at least 260 ms, limits retries, honors both standard and MangaDex rate-limit reset headers, and cancels superseded search requests through body download. Authenticated requests explicitly bypass caching and pin their owning account through retries. Chapter delivery reporting uses exact URLs registered from validated chapter responses, not URL-path guesses. Reader bitmaps are bounded to a 1200 × 8192 decode request. List/grid/chapter/page rendering is lazy. Reading history displays the latest 200 chapter entries; older chapter positions and read markers remain stored. SQLite reads and writes happen off the UI thread, and library updates have a separate observer from reading progress.
See the final acceptance audit, architecture, and validation history.
Sources and attribution #
Implementation was checked against MangaDex’s official OpenAPI specification, the official personal-client guide, and chapter delivery guide. The live website was blocked by the browser’s site-safety policy in this environment; this is not a verified pixel-for-pixel recreation or a complete website crawl.
Local chapter notifications are available from the sidebar and Settings. Use a manga, author, or group’s bell to follow on this device and separately opt into alerts. Background checks default to 30 minutes and respect the chosen chapter language and content preferences. No server or account login is required. Android permission/channel settings control system alerts; the in-app list remains available when permission is denied. Manga reading status, following and notification choices share one menu; manga follows sync when connected. Author and group notification follows remain local. Android may delay checks; this is periodic polling rather than instant push.
Reply by Email