Skip to content

Repository files navigation

Currents app icon

Currents

A polished, gesture-first Reddit client for Android.
Dense when you want it, calm when you need it, and designed for one-handed reading.

Join the OtterSuite Discord Currents on GitHub Latest release Downloads MIT License Android 8.0 or newer

Join Discord · GitHub · Download APK · Releases · Setup · FAQ · Changelog · Issues


About the project

I came to Android from iOS and missed having a Reddit client that felt polished, information-dense, quick, and comfortable in one hand. Currents is the app I wanted to use: edge-to-edge content, predictable gestures, a compact action dock, a community drawer, colorful comment rails, native media, and enough appearance controls to make the experience your own.

Currents is an original Android-native project built with Kotlin and Jetpack Compose. It has its own name, icon, palette, interaction design, and copy. It contains no advertising or fabricated Reddit content.

Important

Currents does not ship with a Reddit client ID, and I do not provide one. The Client ID field starts blank. Every user must supply their own Reddit installed-app Client ID, User-Agent, and redirect URI, subject to Reddit's current API terms and approval requirements. See the setup guide.

Installation

  1. Download the latest Currents.apk.
  2. Open the downloaded file on an Android 8.0 or newer device.
  3. If Android asks, allow installs from the browser or file manager that opened the APK.
  4. Open Currents and follow the Reddit account setup guide.

Installing a newer GitHub release over an existing Currents installation preserves settings, read history, cached content, and encrypted account credentials when the signing certificate matches.

Verify the download

  • Package ID: app.orca.client
  • Currents 1.0.2 APK SHA-256: 0D03C5A1EFB567A1A7FD7329BDAB6D51FB0D86793252973C30BE63C585126470

On Windows, verify the file with:

Get-FileHash .\Currents.apk -Algorithm SHA256

The current release checksum is shown above and should be refreshed with every APK release. Only download Currents from the OtterSuite repository.

What makes Currents different

  • Gesture-first navigation — configurable two-threshold post/comment actions and a full-height right-edge community drawer gesture.
  • Dense or visual feeds — switch between compact rows and large previews, then tune text size, thumbnail position, labels, and read-state dimming.
  • Native media — hosted video, GIF playback, audio controls, galleries, smooth scrubbing, pinch/double-tap zoom, swipe-down dismissal, and gallery saving.
  • Readable conversations — colorful nested-comment rails, collapse state, sort controls, threaded replies, and next-thread navigation.
  • Personal control — keyword/community/author filters, hide-read mode, persistent read history, themes, haptics, and configurable action bars.
  • Dedicated NSFW controls — independently choose whether adult media is covered and whether the Random NSFW shortcut appears in the side menu; spoilers remain covered.
  • Phone and tablet layouts — a focused phone experience plus a responsive two-pane reader at 840dp and wider.
  • Honest signed-out state — no bundled credentials, shared proxy, fake feed, ads, or tracking service.

Features

  • Browse Home, Popular, All, saved posts, communities, user profiles, and search results
  • Sort feeds and comments; pull to refresh and page through results
  • Vote, save, hide, report, subscribe, reply, and create text or link posts
  • Edit or delete the connected account's posts and comments
  • Configurable feed action bar and four-slot swipe-action editor
  • Right-edge community drawer with favorites and Reddit community suggestions
  • Durable offline feed/comment cache and saved post drafts
  • Read-post history with dim, hide, mark-above-read, and clear-history controls
  • Secure installed-app OAuth with runtime redirect schemes and callback/state validation
  • Encrypted refresh-token storage backed by Android Keystore
  • Optional in-app sign-in fallback for redirect URIs a browser cannot return
  • Explicit NSFW/spoiler gates before remote media previews are requested
  • Baseline profiles, R8 shrinking, and macrobenchmarks for release performance

See the changelog for release-by-release changes.

Setup and FAQ

Currents never reads credentials from local.properties, compiles them into the APK, or supplies a shared client ID. User-provided values are stored in the app's private storage and can be cleared under Settings → Advanced → Reddit API configuration.

Build from source

Requirements:

  • Android Studio 2026.1.3 or a compatible setup
  • JDK 17+
  • Android SDK 37

Clone the repository, open it in Android Studio, and run the app configuration, or use:

$env:JAVA_HOME = 'C:\Program Files\Android\Android Studio\jbr'
.\gradlew.bat assembleDebug

The APK is written to app/build/outputs/apk/debug/app-debug.apk.

Verification

.\gradlew.bat testDebugUnitTest
.\gradlew.bat lintDebug
.\gradlew.bat assembleDebug

The test suite covers repository behavior, media parsing, voting and saving transitions, post creation, nested replies, filters, OAuth configuration/callback validation, credential lifecycle, sign-out races, NSFW defaults, and right-edge gesture routing.

Project structure and performance tooling
app/                Android application
benchmark/          Cold-start and feed-scroll macrobenchmarks
baselineprofile/    Baseline profile generator

app/src/main/java/app/otter/client/
├── data/       Reddit API, OAuth, caching, media, and test fixtures
├── model/      Immutable post, comment, community, and vote models
└── ui/
    ├── components/  Gestures, media, drawer, action bar, and composers
    ├── screens/     Feed, post, search, settings, and about
    └── theme/       Currents color and typography tokens

Release builds are minified and resource-shrunk with R8. The benchmark build inherits that release shape, while baselineprofile/ generates ahead-of-time compilation rules for startup and feed scrolling. Compose stability rules live in compose_stability.conf.

Privacy and independence

Currents talks directly to Reddit and to media hosts needed for content you choose to view. It has no bundled client ID and no service that lends credentials to users. OAuth refresh tokens are encrypted locally with Android Keystore; clearing the API configuration or disconnecting removes local account credentials.

Currents is an independent, community-built client. It is not affiliated with, authorized by, maintained by, or endorsed by Reddit. Reddit is a trademark of Reddit, Inc. API access, endpoints, and account actions can change, and some features may require Reddit approval.

License

Currents is distributed under the MIT License.

Project links

About

A polished, gesture-first open-source Reddit client for Android. Bring your own Client ID.

Topics

Resources

Stars

17 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages