Skip to content

ReactNative mobile application for B1.church

Notifications You must be signed in to change notification settings

ChurchApps/B1Mobile

Repository files navigation

B1 Mobile

B1 Mobile is the mobile app companion to the B1.church app. It runs on both iOS and Android and provides the same features as the web version including online giving, self-check-in for attendance, live streaming of services, and an interactive member directory. Visit B1.church to learn more.

Preview

Get Involved

🤝 Help Support Us

The only reason this program is free is because of the generous support from users. If you want to support us to keep this free, please head over to ChurchApps or sponsor us on GitHub. Thank you so much!

🏘️ Join the Community

We have a great community for end-users on Facebook. It's a good way to ask questions, get tips and follow new updates. Come join us!

⚠️ Report an Issue

If you discover an issue or have a feature request, simply submit it to our issues log. Don't be shy, that's how the program gets better.

💬 Join us on Slack

If you would like to contribute in any way, head over to our Slack Channel and introduce yourself. We'd love to hear from you.

🏗️ Start Coding

If you'd like to set up the project locally, see our development guide. For this app:

  1. Copy dotenv.sample.txt to .env
  2. Run npm i to install dependencies

Running the app

Method 1

  1. Start React Native - Run npm start to start the React Native server (server runs on 8081 port).
  2. Install Android App - In Android Studio open the /android folder and click the run button to install the app on your device.
  3. Connect App to React Native - Either shake the device or run adb shell input keyevent 82 to open the developer menu. Go to settings, Debug server host and enter YourIP:8081. Restart the app and it should work properly.

Method 2

  1. Start and Install - Run react-native run-android to start the React Native server and install the app
  2. Connect App to React Native - Either shake the device or run adb shell input keyevent 82 to open the developer menu. Go to settings, Debug server host and enter YourIP:8081. Restart the app and it should work properly.

Release build

Android

  1. Follow the environment setup instructions here (first time only)
  2. Hardcode stage="prod" in EnvironmentHelper.ts
  3. Make sure /android/app/google-services.json and /ios/GoogleService-Info.plist files exist.
  4. Increment the version number in android/app/build.gradle and package.json
  5. Run cd android followed by gradlew bundleRelease to produce the release bundle.
  6. Plug in an Android phonet via USB so an apk is generated for the correct device.
  7. Run cd.. followed by react-native run-android --variant=release to generate an apk file for Android devices. You can close the node window when it completes.
  8. Open the app in Android studio. Choose Build -> Generate Signed Bundle and point to your keys. Note: It may be necessary to run SET NODE_OPTIONS=--openssl-legacy-provider and then launch Android Studio from the console C:\Program Files\Android\Android Studio\bin\studio64.exe in order to comiple the release bundle.
  9. The signed build will be at \android\app\release. Upload it to the Google Play store.

iOS

Follow instructions here

  1. Run yarn
  2. Run cd ios and pod install
  3. In XCode open Info and increase the version number and code.
  4. Build, archive, validate and distribute.

Codepush release

  1. Hardcode stage="prod" in EnvironmentHelper.ts
  2. Update version number in package.json
  3. Run 'appcenter codepush release-react -a Live-Church-Solutions/B1Mobile -d Production' to push to Android
  4. Run 'appcenter codepush release-react -a Live-Church-Solutions/B1Mobile_iOS -d Production' to push to iOS