Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Skip to content
README.md 2.71 KiB
Newer Older
# ntfy Android App
Philipp C. Heckel's avatar
Philipp C. Heckel committed
This is the Android app for [ntfy](https://github.com/binwiederhier/ntfy) ([ntfy.sh](https://ntfy.sh)). You can find the app in [F-Droid](https://f-droid.org/packages/io.heckel.ntfy/) or the [Play Store](https://play.google.com/store/apps/details?id=io.heckel.ntfy), 
Philipp Heckel's avatar
Philipp Heckel committed
or as .apk files on the [releases page](https://github.com/binwiederhier/ntfy-android/releases).
Philipp C. Heckel's avatar
Philipp C. Heckel committed

Philipp Heckel's avatar
Philipp Heckel committed
# Build
Philipp C. Heckel's avatar
Philipp C. Heckel committed

Philipp Heckel's avatar
Philipp Heckel committed
## Building without Firebase (F-Droid flavor)
Without Firebase, you may want to still change the default `app_base_url` in [values.xml](/app/src/main/res/values/values.xml)
Philipp Heckel's avatar
Philipp Heckel committed
if you're self-hosting the server. Then run:
```
Philipp Heckel's avatar
Philipp Heckel committed
# To build an unsigned .apk (app/build/outputs/apk/fdroid/*.apk)
Philipp Heckel's avatar
Philipp Heckel committed
./gradlew assembleFdroidRelease
Philipp Heckel's avatar
Philipp Heckel committed

# To build a bundle .aab (app/fdroid/release/*.aab)
./gradlew bundleFdroidRelease
Philipp Heckel's avatar
Philipp Heckel committed
```

## Building with Firebase (FCM, Google Play flavor)
Philipp C. Heckel's avatar
Philipp C. Heckel committed
To build your own version with Firebase, you must:
Philipp Heckel's avatar
Philipp Heckel committed
* Create a Firebase/FCM account
* Place your account file at `app/google-services.json` 
* And change `app_base_url` in [values.xml](/app/src/main/res/values/values.xml)
Philipp Heckel's avatar
Philipp Heckel committed
* Then run:
```
Philipp Heckel's avatar
Philipp Heckel committed
# To build an unsigned .apk (app/build/outputs/apk/play/*.apk)
Philipp Heckel's avatar
Philipp Heckel committed
./gradlew assemblePlayRelease
Philipp Heckel's avatar
Philipp Heckel committed

# To build a bundle .aab (app/play/release/*.aab)
./gradlew bundlePlayRelease
Philipp Heckel's avatar
Philipp Heckel committed
```
Philipp C. Heckel's avatar
Philipp C. Heckel committed

Philipp C. Heckel's avatar
Philipp C. Heckel committed
## Translations
We're using [Weblate](https://hosted.weblate.org/projects/ntfy/) to translate the ntfy Android app. We'd love your participation.

<a href="https://hosted.weblate.org/engage/ntfy/">
<img src="https://hosted.weblate.org/widgets/ntfy/-/multi-blue.svg" alt="Translation status" />
</a>

## License
Made with ❤️ by [Philipp C. Heckel](https://heckel.io), distributed under the [Apache License 2.0](LICENSE).
Philipp Heckel's avatar
Philipp Heckel committed
Thank you to these fantastic resources:
* [RecyclerViewKotlin](https://github.com/android/views-widgets-samples/tree/main/RecyclerViewKotlin) (Apache 2.0)
* [Just another Hacker News Android client](https://github.com/manoamaro/another-hacker-news-client) (MIT)
Philipp Heckel's avatar
Philipp Heckel committed
* [Android Room with a View](https://github.com/googlecodelabs/android-room-with-a-view/tree/kotlin) (Apache 2.0)
* [Firebase Messaging Example](https://github.com/firebase/quickstart-android/blob/7147f60451b3eeaaa05fc31208ffb67e2df73c3c/messaging/app/src/main/java/com/google/firebase/quickstart/fcm/kotlin/MyFirebaseMessagingService.kt) (Apache 2.0)
Philipp Heckel's avatar
Philipp Heckel committed
* [Designing a logo with Inkscape](https://www.youtube.com/watch?v=r2Kv61cd2P4)
Philipp Heckel's avatar
Philipp Heckel committed
* [Foreground service](https://robertohuertas.com/2019/06/29/android_foreground_services/)
* [github/gemoji](https://github.com/github/gemoji) (MIT) for as data source for an up-to-date [emoji.json](https://raw.githubusercontent.com/github/gemoji/master/db/emoji.json) file
* [emoji-java](https://github.com/vdurmont/emoji-java) (MIT) has been stripped and inlined to use the emoji.json file