IacobIonut01/ReFra

Media Gallery app for Android made with Jetpack Compose

2,763

stars

1,501

commits

Kotlin

primary language

Sep 11, 2026

updated

android
android-gallery
gallery
jetpack-compose
kotlin
Browse cluster: Kotlin Android UI with Jetpack Compose

README

ReFra

An Android Gallery app built with Jetpack Compose.

The goal of this project is to create and bring the Gallery app everyone wants, with the features everyone needs. FOSS

Downloads CI License Crowdin GitHub Repo stars

Crowdin Community

Download

Get it on F-Droid Get it on Google Play Get it on GitHub

Support

  • Translate the project using the link from above
  • Donations:
    • Use the links on the right side of the repo (Sponsor me)
    • More options available in-app (Settings -> Donate)

Frequent Questions

  • Why 'ReFra'?
    • Refra is a short form of 'refraction', which is the bending of light when it passes through different mediums. This app aims to refract our perception of media files, making them more accessible and easier to manage.
  • What is the offline variant?
    • The offline variant is a version of the app with all online features removed — maps, cloud provider support (Immich, ownCloud, etc.), and any functionality that requires an internet connection, even on a local network. This is useful for users who want a fully self-contained gallery with no network permissions.
  • Why Google Play version is 'Paid'?
    • It's just another way to support the project while getting back automatic updates via Google Play
  • Why Android 11 is the minimum version required?
    • Some Media features and APIs require Android 11 as a minimum version [Trash feature, most APIs used in the app]
  • Will you support lower android versions?
    • While this is not a priority right now, I do have in mind to include support for lower Android versions at a cost of reduced features. If anyone volntueers to do so before me can request a pull request.
  • Can I verify the downloaded APK file?
    • Checksums of APKs are provided in the release notes. The signing certificate fingerprint is listed below:
      • SHA-256: 78:46:05:DD:50:75:BE:05:82:78:A5:42:5C:BD:E5:21:31:62:CB:B4:59:1B:44:28:F4:4E:75:E0:8C:C6:43:8A
      • SHA-1: AD:93:69:27:F2:3B:33:99:FC:C0:B2:8A:25:44:C8:1C:AA:42:B0:9A
      • MD5: 73:FC:3C:60:14:D3:69:6D:1B:DA:34:F1:BF:5A:33:3C
  • Will you add [X] feature?
    • Please open a new feature request under 'Issues' tab and if the feature will be considered useful and possible can be added.
  • Can you remove permission [X]?
    • Several permissions (e.g. Internet connectivity, location) are for showing a map preview of your current photo location data. If you do not need this feature, you can download an offline release from the Releases page.

Contributors

IacobIonut01

1,371 commits

renovate[bot]

91 commits

tazztone

10 commits

JN0V

4 commits

IacobIonut01/ReFra

Media Gallery app for Android made with Jetpack Compose

2,763

stars

1,501

commits

Kotlin

primary language

Sep 11, 2026

updated

android
android-gallery
gallery
jetpack-compose
kotlin
Browse cluster: Kotlin Android UI with Jetpack Compose

README

ReFra

An Android Gallery app built with Jetpack Compose.

The goal of this project is to create and bring the Gallery app everyone wants, with the features everyone needs. FOSS

Downloads CI License Crowdin GitHub Repo stars

Crowdin Community

Download

Get it on F-Droid Get it on Google Play Get it on GitHub

Support

  • Translate the project using the link from above
  • Donations:
    • Use the links on the right side of the repo (Sponsor me)
    • More options available in-app (Settings -> Donate)

Frequent Questions

  • Why 'ReFra'?
    • Refra is a short form of 'refraction', which is the bending of light when it passes through different mediums. This app aims to refract our perception of media files, making them more accessible and easier to manage.
  • What is the offline variant?
    • The offline variant is a version of the app with all online features removed — maps, cloud provider support (Immich, ownCloud, etc.), and any functionality that requires an internet connection, even on a local network. This is useful for users who want a fully self-contained gallery with no network permissions.
  • Why Google Play version is 'Paid'?
    • It's just another way to support the project while getting back automatic updates via Google Play
  • Why Android 11 is the minimum version required?
    • Some Media features and APIs require Android 11 as a minimum version [Trash feature, most APIs used in the app]
  • Will you support lower android versions?
    • While this is not a priority right now, I do have in mind to include support for lower Android versions at a cost of reduced features. If anyone volntueers to do so before me can request a pull request.
  • Can I verify the downloaded APK file?
    • Checksums of APKs are provided in the release notes. The signing certificate fingerprint is listed below:
      • SHA-256: 78:46:05:DD:50:75:BE:05:82:78:A5:42:5C:BD:E5:21:31:62:CB:B4:59:1B:44:28:F4:4E:75:E0:8C:C6:43:8A
      • SHA-1: AD:93:69:27:F2:3B:33:99:FC:C0:B2:8A:25:44:C8:1C:AA:42:B0:9A
      • MD5: 73:FC:3C:60:14:D3:69:6D:1B:DA:34:F1:BF:5A:33:3C
  • Will you add [X] feature?
    • Please open a new feature request under 'Issues' tab and if the feature will be considered useful and possible can be added.
  • Can you remove permission [X]?
    • Several permissions (e.g. Internet connectivity, location) are for showing a map preview of your current photo location data. If you do not need this feature, you can download an offline release from the Releases page.

Contributors

IacobIonut01

1,371 commits

renovate[bot]

91 commits

tazztone

10 commits

JN0V

4 commits

Languages

Kotlin

98.7%