Imran Remtulla 7ab50177f7 Fix UI unresponsiveness during update checks (#3043)
- Memoize findStandardFormatsForVersion with bounded 4096-entry cache,
  and deduplicate the 436 generated version regex patterns. This
  collapses the per-GitHub-app sort from ~500K regex evaluations to
  ~100, and caches results across all version reconciliation calls.

- Optimize GitHub _sortGitHubReleases: date sort (the default) now
  skips regex computation entirely; smartname sorts precompute formats
  once per release instead of re-evaluating per sort-comparison pair.

- Inline app list computation into AppsPage.build() instead of using
  a three-layer caching system (context.select, pipelineSignature,
  _computeListData). With memoization making rebuilds ~2ms, the
  complexity of signature hashing and cache field management is
  unnecessary.

- Cache getAppsDir() to avoid redundant platform-channel calls per
  app during saveApps batches.
2026-07-15 17:04:37 +01:00
2026-07-14 13:16:25 +01:00
2026-07-08 11:29:45 +01:00
2023-02-02 21:56:32 +01:00
2026-07-02 01:58:45 +01:00
2026-07-08 00:25:17 +01:00
2026-07-15 10:30:53 +01:00
2026-07-08 11:18:20 +01:00

Support Palestine

Obtainium Icon Obtainium

Get Android app updates straight from the source.

Obtainium allows you to install and update apps directly from their releases pages, and receive notifications when new releases are made available.

More info:

Currently supported App sources:

Finding App Configurations

You can find crowdsourced app configurations at apps.obtainium.imranr.dev.

If you can't find the configuration for an app you want, feel free to leave a request on the issues page.

Or, contribute some configurations to the website by creating a PR at this repo.

Installation

Get it on GitHub Get it on IzzyOnDroid Get it on F-Droid

Verification info:

  • Package ID: dev.imranr.obtainium
  • SHA-256 hash of signing certificate: B3:53:60:1F:6A:1D:5F:D6:60:3A:E2:F5:0B:E8:0C:F3:01:36:7B:86:B6:AB:8B:1F:66:24:3D:A9:6C:D5:73:62
    • Note: The above signature is also valid for the F-Droid flavour of Obtainium, thanks to reproducible builds.
  • PGP Public Key (to verify APK hashes)

Limitations

  • For some sources, data is gathered using Web scraping and can easily break due to changes in website design. In such cases, more reliable methods may be unavailable.

Screenshots

Apps Page Dark Theme Material You
App Page App Options App Web View
Description
No description provided
Readme 60 MiB
Languages
Dart 98.1%
Shell 0.7%
Kotlin 0.6%
Dockerfile 0.4%
JavaScript 0.2%