Aves logo ## Aves ![Version badge][Version badge] ![Build badge][Build badge] Aves is a gallery and metadata explorer app. It is built for Android, with Flutter. [Get it on Google Play](https://play.google.com/store/apps/details?id=deckers.thibault.aves&pcampaignid=pcampaignidMKT-Other-global-all-co-prtnr-py-PartBadge-Mar2515-1) [Get it on Huawei AppGallery](https://appgallery.huawei.com/app/C106014023) [Get it on Amazon Appstore](https://www.amazon.com/dp/B09XQHQQ72) [Get it on IzzyOnDroid](https://apt.izzysoft.de/fdroid/index/apk/deckers.thibault.aves) [Get it on F-Droid](https://f-droid.org/packages/deckers.thibault.aves.libre) [Get it on GitHub](https://github.com/deckerst/aves/releases/latest) [Compare versions](https://github.com/deckerst/aves/wiki/App-Versions)
## Features Aves can handle all sorts of images and videos, including your typical JPEGs and MP4s, but also more exotic things like **multi-page TIFFs, SVGs, old AVIs and more**! It scans your media collection to identify **motion photos**, **panoramas** (aka photo spheres), **360° videos**, as well as **GeoTIFF** files. **Navigation and search** is an important part of Aves. The goal is for users to easily flow from albums to photos to tags to maps, etc. Aves integrates with Android (from **API 19 to 33**, i.e. from KitKat to Android 13) with features such as **widgets**, **app shortcuts**, **screen saver** and **global search** handling. It also works as a **media viewer and picker**. ## Screenshots
[Collection screenshot](https://raw.githubusercontent.com/deckerst/aves_extra/main/screenshots/play/en/1.png) [Image screenshot](https://raw.githubusercontent.com/deckerst/aves_extra/main/screenshots/play/en/2.png) [Stats screenshot](https://raw.githubusercontent.com/deckerst/aves_extra/main/screenshots/play/en/5.png) [Info (basic) screenshot](https://raw.githubusercontent.com/deckerst/aves_extra/main/screenshots/play/en/3.png) [Info (metadata) screenshot](https://raw.githubusercontent.com/deckerst/aves_extra/main/screenshots/play/en/4.png) [Countries screenshot](https://raw.githubusercontent.com/deckerst/aves_extra/main/screenshots/play/en/6.png)
## Changelog The list of changes for past and future releases is available [here](https://github.com/deckerst/aves/blob/develop/CHANGELOG.md). ## Permissions Aves requires a few permissions to do its job: - **read contents of shared storage**: the app only accesses media files, and modifying them requires explicit access grants from the user, - **read locations from media collection**: necessary to display the media coordinates, and to group them by country (via reverse geocoding), - **have network access**: necessary for the map view, and most likely for precise reverse geocoding too, - **view network connections**: checking for connection states allows Aves to gracefully degrade features that depend on internet. ## Contributing ### Issues [Bug reports](https://github.com/deckerst/aves/issues/new?assignees=&labels=type%3Abug&template=bug_report.md&title=) and [feature requests](https://github.com/deckerst/aves/issues/new?assignees=&labels=type%3Afeature&template=feature_request.md&title=) are welcome, but read the [guidelines](https://github.com/deckerst/aves/issues/234) first. If you have questions, check out the [discussions](https://github.com/deckerst/aves/discussions). ### Code At this stage this project does *not* accept PRs. ### Translations Translations are powered by [Weblate](https://hosted.weblate.org/engage/aves/) and the effort of wonderfully generous volunteers. Translation status If you want to translate this app in your language and share the result, [there is a guide](https://github.com/deckerst/aves/wiki/Contributing-to-Translations). ### Donations Some users have expressed the wish to financially support the project. Thanks! ❤️ [Donate with PayPal](https://paypal.me/ThibaultDeckersFr) [Donate using Liberapay](https://liberapay.com/deckerst/donate) ## Project Setup Before running or building the app, update the dependencies for the desired flavor: ``` # scripts/apply_flavor_play.sh ``` To build the project, create a file named `/android/key.properties`. It should contain a reference to a keystore for app signing, and other necessary credentials. See [key_template.properties](https://github.com/deckerst/aves/blob/develop/android/key_template.properties) for the expected keys. To run the app: ``` # ./flutterw run -t lib/main_play.dart --flavor play ``` [Version badge]: https://img.shields.io/github/v/release/deckerst/aves?include_prereleases&sort=semver [Build badge]: https://img.shields.io/github/actions/workflow/status/deckerst/aves/check.yml?branch=develop