PayMe

Simple app that tracks who has paid for an event.

  • Track small payments for an event
  • Use common people lists for an event

Features

  • Overview (list of oustanding events)*
  • Events (list of events for payment)
  • People (lists of common groups of payees)

Development

# Start Metro bundler (with hot reload)
npm run start

# Start Metro bundler after clearing build cache
npm run start -- --clear

Releases

Releases can be deployed through Expo Go (for testing) or the Expo managed build system (for release). The app version is taken from the package.json, which should be updated before every major deployment. App environment configuration is possible with the expo-updates package, which exposes the value of the releaseChannel used when building the app.

NOTE: Remember to update the version in package.json before each deployment!

NOTE: Remember to properly set the release channel for each deployment!

Testing Releases

Testing releases are released through Expo Go, which allows

expo publish --release-channel <ENVIRONMENT>

Production Releases

Coming Soon

UI

Components

Components are based on the React Native Paper library, an interpretation of the Material Design guidelines for React Native.

Images

Vector images are taken from UnDraw and edited in Affinity Photo to remove the background.

App Icons

Icons were generated with the Build Icon tool.

Notes

Resources

Linting

Since the upgrade to Expo SDK 43, @react-native-community/eslint-config does not properly install all dependencies (Mac only). After spending too much time trying to debug the issue, I have installed all its dependencies manually to get around the issue.

react-native-paper

Version 4.10.0 of react-native-paper has issues with TypeScript for any component based upon the Text component. Downgrading to 3.9.2 resolves the issues without missing many additional features.

TODOs

GitHub

View Github