Skip to content

About

Simple, content-focused booru viewer for Android. a fork from https://github.com/nullxception/boorusphere

Topics

Resources

Stars

22 stars

Watchers

0 watching

Forks

Latest commit

 

History

2,000 Commits

Folders and files

Repository files navigation

Boorusphere

Your boorus. One quiet app.

Stargazers Latest release CI License

Download the latest Boorusphere APK

Android 7.0+ · arm64, armv7, x86_64 or universal

Screenshots

Boorusphere screens: the feed, the drawer, a post in the viewer, and the tags sheet

Features


A grid that talks

Score, rating, format and dimensions sit on every card, so most decisions happen before you open anything; a video adds its own mark. Suggestions come from the board itself, and the history keeps recent queries with an undo for the row you just deleted.


A viewer that leaves the room

Tap once and the chrome disappears, system bars included. Pinch or double-tap to zoom, page horizontally or vertically, swipe up for details and down to dismiss. Paging direction and the swipe actions live in gesture settings.


Video and slideshows

Videos and animated images play inline, with the Referer and User-Agent headers pickier boards require. A slideshow can walk the page forward, backward or at random on an interval you set.


Tags Blocker

The blocker takes expressions, not just single tags: a space means AND, ~ means OR, and - excludes. A page emptied by a filter names it and offers the control that brings the posts back; explicit thumbnails can blur on the timeline or everywhere.


Tags and batches

Long-press to select posts, then favorite, download or share the batch. The details sheet splits into details, tags and links; select tags in bulk to copy, block, append to the query or search, and Find related turns a post's own tags into the next search.


Downloads that finish

Pause, resume and retry — one file or every failed one — with four transfers in flight. Files land in Downloads/Boorusphere/, optionally in per-server folders, each with a sidecar record of the post. The library reopens, redownloads or clears that record later, and one switch keeps the collection out of your gallery.


Every board

Ten presets ship with the app: Danbooru, Gelbooru, Konachan, Yandere, Safebooru, Rule34, e621, Derpibooru, Ponybooru and Rule34 Paheal. Any other board is added by address: Scan reads it and picks the engine, or choose Danbooru, Gelbooru 0.1.x/0.2, Moebooru, e621, Shimmie, Szurubooru or Philomena yourself.


Quietly yours

Backups carry settings, servers, search history, blocked tags and favorites in one archive. Download records can ride along, a passphrase can seal it, and the scheduler can send a copy to your own Telegram bot every day, week or month — with Backup now when you would rather not wait.


Locked down

A PIN or biometrics can lock the app, with a guess throttle that survives restarts, and a switch hides it from recents and blocks screenshots. The cache screen shows how much space videos take and caps them at 100 MB, 300 MB, 500 MB or 1 GB; one confirmed Clear wipes images and videos together.


Dress it how you like

Light, dark or system; Midnight turns dark into true black for OLED screens. Colors can come from your wallpaper on Android 12+, the Material You seed, or ten curated editor palettes. The chrome is flat-first, high-refresh screens are supported, and the layout is edge-to-edge with an optional blur.


Install

Boorusphere is sideloaded from this repository; there is no Play Store listing. Download the newest APK from Releases and match it to your phone:

APK Pick it when
boorusphere-<version>-arm64-v8a.apk Almost every phone from 2017 onward. The default choice.
boorusphere-<version>-armeabi-v7a.apk Older 32-bit phones.
boorusphere-<version>-x86_64.apk Android emulators and x86_64 Chromebooks.
boorusphere-<version>-universal.apk One file for all of the above. First installs only.

Android 7.0 (API 24) or newer. Installed copies update in place through the app's updater, which fetches the split APK for your ABI. A manually downloaded APK must be the same variant or carry a newer version code.


Development

Boorusphere is a Flutter/Dart Android app. The UI and state live in lib/presentation on Riverpod; lib/domain holds the repository interfaces and lib/data the implementations, including the booru parsers that translate each board's JSON or XML into one post. Generated sources are not checked in, so run the generators once after cloning.

You need Flutter 3.44.0+ and Dart 3.12+ (both pinned in pubspec.yaml), JDK 17 and a working Android SDK.

git clone https://github.com/azrim/boorusphere.git
cd boorusphere
flutter pub get
dart pub global activate grinder
grind gencode
grind genlang
flutter run
Grinder tasks, CI and release builds
Task Does
grind gencode Regenerate code with build_runner
grind genlang Regenerate strings with slang, plus the missing-translation report
grind pigeons Regenerate platform-channel bindings
grind chkfmt Check formatting the way CI does
grind analyze Run flutter analyze
grind test Run flutter test --coverage
grind chkall Format, analyze and test in one go
grind apkarm64 Build the arm64 split release APK
grind apkrelease Build every split ABI plus the universal APK

Every pull request and every push to main runs CI: generators, chkfmt, analyze and the test suite. Unformatted code fails the build, so run grind chkfmt before pushing.

The Build APK workflow runs on v* tags and on manual dispatch; it builds every split ABI plus the universal APK and, on a tag, attaches them to the matching GitHub Release. Release builds use the keystore behind ANDROID_KEYSTORE_BASE64, ANDROID_KEYSTORE_PASSWORD, ANDROID_KEY_ALIAS and ANDROID_KEY_PASSWORD; without them the workflow warns and falls back to debug signing, which cannot update an earlier install.

To cut a release, bump version: in pubspec.yaml, add a ## X.Y.Z section at the top of CHANGELOG.md, then tag vX.Y.Z.

Read DESIGN.md before touching surfaces, palettes or viewer chrome; GLOSSARY.md pins down the vocabulary.


FAQ

Which APK should I download?

Start with boorusphere-<version>-arm64-v8a.apk; nearly every phone since 2017 is arm64. armeabi-v7a covers older 32-bit phones, x86_64 emulators and x86_64 Chromebooks, and the universal APK is one file for all of them — a first-install fallback. Android 7.0 (API 24) or newer.

Why does Android refuse to install an update?

Android compares version codes, not version names. A split APK carries an ABI offset (arm64 is 2000 plus the build number) while the universal APK carries the bare build number, so the universal build has a lower code than any split and cannot replace one. The in-app updater fetches the split for your ABI; a manual APK must be the same variant or newer. Mixing variants reads as a downgrade, and One UI reports "App not installed as package appears to be invalid".

A board asks for an API key or user id. Where do I put it?

Some boards rate-limit anonymous use or ask for an account before they return everything. Open the server's settings and fill the user id (or login) and API key it asks for. They stay on your device and are sent only to that board.

Why did a page come back empty?

Usually a rating filter or the Tags Blocker. A page emptied by a filter says which one hid it and offers the control that brings the posts back. Rating filters are per server; the blocker takes expressions where a space means AND, ~ means OR, and - excludes.

Where do downloads go?

Under Downloads/Boorusphere/, optionally in a folder per server. Each file gets a sidecar record of the post it came from, and the Downloads library can reopen, redownload or clear that record later. One switch keeps the whole collection out of your gallery.

Can I move my setup to a new phone?

Yes. A backup archive carries settings, servers, search history, blocked tags and favorites; download records can ride along, and a passphrase can seal it. Restore it on the new phone. The scheduler can also send a copy to your own Telegram bot every day, week or month, and Backup now sends one immediately.

Does Boorusphere collect anything?

No account, no analytics, and no server of ours. Favorites, blocklists, settings and backups stay on your device. Requests go straight to the boards you add; the only optional upload is a backup to a Telegram bot you own.

A video refuses to play. Why?

Videos and animated images play inline with the Referer and User-Agent headers pickier boards require. If a clip still refuses, the board is likely serving a format or codec the device cannot decode; the post's links in the details sheet open in the browser.

How do I add a board that is not in the list?

Add it by address. Scan reads the site and picks its engine, or choose one yourself from Danbooru, Gelbooru (0.2), Gelbooru (0.1.x), Moebooru, e621, Shimmie, Szurubooru and Philomena. Each server keeps its own query templates, rating filter, credentials and blocked-tag list.

How do I help translate?

Copy i18n/strings_en.i18n.json to i18n/strings_<code>.i18n.json, translate, then run grind genlang locally. Untranslated keys fall back to English, so partial locales are welcome; open a pull request with the new file.


Contributors

Thanks to everyone who has contributed to Boorusphere!

Contributors

The app ships with German, Filipino, Indonesian, Japanese, Russian, Thai, Turkish, Ukrainian, Simplified Chinese and Traditional Chinese — and uwu, because of course it does. Untranslated keys fall back to English, so partial locales are welcome.

Bug reports and pull requests are welcome. Keep a pull request to one concern, run grind chkfmt, grind analyze and grind test before pushing, and write user-facing changes into CHANGELOG.md under the next version.


Credits and license

Boorusphere is released under the BSD 3-Clause License, © 2021 Chaldeaprjkt. Built with Flutter and a pile of good packages; the bundled Geist, Poppins and Noto Sans Thai fonts ship under the SIL Open Font License.

Boorusphere is an unofficial client and hosts nothing. Every post belongs to the board it came from and the people who made it; follow their rules and licenses. The software is provided "as-is", without warranty of any kind.

Tip

Star the repo to get notified about new releases from GitHub.

About

Simple, content-focused booru viewer for Android. a fork from https://github.com/nullxception/boorusphere

Topics

Resources

Stars

22 stars

Watchers

0 watching

Forks

Releases

Contributors

Languages