From 4d3884e2681e34095547cc3d406dec0f1412b069 Mon Sep 17 00:00:00 2001 From: Jonas Heubuch Date: Thu, 23 Nov 2023 19:46:59 +0100 Subject: [PATCH] :memo: Update README (#302) --- README.md | 26 +++++++----------- assets/badges/google-play-badge.png | Bin 0 -> 15496 bytes {logo => assets}/custom-icons/ic_coach.svg | 0 .../custom-icons/ic_wagon_class.svg | 0 {logo => assets}/logo-anim-square.svg | 0 {logo => assets}/logo-square.svg | 0 {logo => assets}/logo.ai | 0 {logo => assets}/logo.svg | 0 {logo => assets}/traewelldroid.ai | 0 {logo => assets}/traewelldroid.svg | 0 10 files changed, 10 insertions(+), 16 deletions(-) create mode 100644 assets/badges/google-play-badge.png rename {logo => assets}/custom-icons/ic_coach.svg (100%) rename {logo => assets}/custom-icons/ic_wagon_class.svg (100%) rename {logo => assets}/logo-anim-square.svg (100%) rename {logo => assets}/logo-square.svg (100%) rename {logo => assets}/logo.ai (100%) rename {logo => assets}/logo.svg (100%) rename {logo => assets}/traewelldroid.ai (100%) rename {logo => assets}/traewelldroid.svg (100%) diff --git a/README.md b/README.md index cbc5a021..bbc75c0d 100644 --- a/README.md +++ b/README.md @@ -11,20 +11,21 @@ This is a community app for the open source project - Mastodon - [Twitter](https://twitter.com/@traewelldroid) -## How it is developed +## Download the app + +[![Download on Google Play](https://raw.githubusercontent.com/Traewelldroid/traewelldroid/dev/assets/badges/google-play-badge.png)](https://play.google.com/store/apps/details?id=de.hbch.traewelling) + -The app is using the official AndroidX framework by Google. Crashes of the app are detected and -transmitted by [Sentry](https://sentry.io). For the production version of the app a self-hosted -Sentry instance is used. +## How it is developed -At the moment the app is available on Google Play. You can download the app there: -[Google Play Store](https://play.google.com/store/apps/details?id=de.hbch.traewelling) +The app is using the official Jetpack Compose framework by Google. Crashes of the app are detected +and transmitted by [Sentry](https://sentry.io). For the production version of the app deployed to +Google Play, a self-hosted Sentry instance is used. Feature Flags are possible and implemented via +a self-hosted Unleash instance. ## Setup -First of all you should copy the `key.properties.example` file in the root directory and copy the -contents into a `key.properties` (for release) or a `dev.properties` (for debug) file. With those -properties the main keys and URLs of the application can be set. +Personalised properties can be configured in the app-level `build.gradle` file. | Property name | Usage | Mandatory | |----------------------|---------------------------------------------|-----------| @@ -37,13 +38,6 @@ properties the main keys and URLs of the application can be set. | `UNLEASH_KEY` | API Key for Unleash API | No | | `WEBHOOK_URL` | URL for accepting Träwelling webhooks | No | -After that, open Android Studio and the project should setup itself automatically. - -### Unleash - -Träwelldroid uses feature toggles with [Unleash](https://getunleash.io) so that features already can -be implemented although they aren't rolled out on depending APIs yet. The official Träwelldroid -build uses a self-hosted Unleash variant hosted in Germany. ## Contributions diff --git a/assets/badges/google-play-badge.png b/assets/badges/google-play-badge.png new file mode 100644 index 0000000000000000000000000000000000000000..04d4f456bf7140a0ab8d17dee884cb458e9d5eee GIT binary patch literal 15496 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