Skip to content

juandjara/wafrn-rn

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

RB shield Build Status Build Status

Wafrn React Native App

This is an Expo project created with create-expo-app.

Main repo has moved to Codeberg on wafrn/wafrn-rn. The Github repo juandjara/wafrn-rn is still going to be up as a mirror.

You can get the app in the following places:

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

For Android there are many choices, but I recommend using Droid-ify to install the versions from F-Droid (or IzyyOnDroid) and keep them updated with some extra stability. But if you want to get the latest version as soon as possible and still be notified of updates, you can use Obtanium.

Get started

  1. Install dependencies

    npm install
  2. Start the app

    npm start

In the output, you'll find options to open the app in a

You can start developing by editing the files inside the app directory. This project uses file-based routing.

Build a local version of the production release (only for Android)

For the production release build process to work, you will need to define some variables for signing the resulting apk or aab file.

You should create a ~/.gradle/gradle.properties file with the following: (Where ~ is your home directory)

WAFRN_UPLOAD_STORE_FILE=production.keystore
WAFRN_UPLOAD_STORE_PASSWORD=13132423
WAFRN_UPLOAD_KEY_ALIAS=1232342
WAFRN_UPLOAD_KEY_PASSWORD=3224242

These are the values that will be used to sign the resulting apk or aab file with your upload key. You can see more info about this in the Android documentation.

The WAFRN_UPLOAD_STORE_FILE variable is a path relative to the android/app/ directory inside this repo pointing to the keystore file. Make sure the path is correct and the file exists before running the build.

Then, you can run the following command to build the production release:

npm run build:prod:android

This will create a series of APK files in the android/app/build/outputs/apk/release directory.

About UnifiedPush

This app uses UnifiedPush for sending its notifications (via expo-unified-push). You can read more about UnifiedPush in https://unifiedpush.org. After a sucessfull login, the Wafrn App will ask for notification permission and try to register with the first UnifiedPush distributor available in your device. You can change this later in settings. If no UnifiedPush distributor is installed in your device, the Wafrn App will use the embedded Firebase Cloud Messaging distributor, but only as a last resource.

About OTA updates

This app has an OTA update functionality provided by expo-updates. What this means is that the JS code bundle of the app can be updated to point to latest commit in the main branch without the user needing to download a new version of the app. This is done by connecting to the updates server provided by Expo on launch, checking for updates, downloading them if any, and presenting the user a modal to restart the app.

This feature can be easily disabled with no harm to the normal flow of the app. In fact, this is explicitly disabled in the F-Droid build of the app by setting the expo.modules.updates.ENABLED to false in the AndroidManifest.xml file. This can also be disabled by changing expo.updates.enabled to false in the app.config.ts file.

This feature is also disabled in the FOSS versions of the app, available in github releases and in the APK distributed to F-Droid.

Join the community

Discussions and contributions about the development of the app are welcome on the Discord server. (migration to some other platform might come in the future) and on Wafrn itself. When adding your feedback, please consider that the app is still in beta and some things might change.

If you want to ensure a quick response, you can always ping @javascript@app.wafrn.net or @gabboman@app.wafrn.net using any fediverse software.

Contributing

You can contribute to the project by creating a PR or by opening an issue for discussion.

License

This project is licensed under the AGPL-3.0 License. See the LICENSE file for details.

Donations

If you want to support the development of the app, you can donate to the developer on Ko-fi using this link: https://ko-fi.com/juandjara