Skip to content
React native Zooniverse mobile app
JavaScript Ruby Java Objective-C Python Swift Shell
Branch: master
Clone or download
Latest commit 1fcfd78 Jul 29, 2019
Type Name Latest commit message Commit time
Failed to load latest commit information.
.github Update issue templates Jul 2, 2019
__mocks__ Update snapshots Feb 18, 2019
android Update app version and gradle version Jul 8, 2019
assets/fonts Add Karla fonts to Android and iOS projects Mar 13, 2018
images Add Y/N buttons Apr 28, 2017
ios Manually update version numbers for release Jul 2, 2019
patches Introduce a patch to react-native-vector-icons to resolve issue in te… Jun 4, 2019
src Remove Unused config Variable Jul 24, 2019
.buckconfig Removed unneed files Sep 12, 2016
.eslintignore Ignore Pod lint errors Jan 22, 2019
.gitattributes Updates for upgrade script Feb 8, 2018
.gitignore Update JS/react-native files Jan 22, 2019
.hound.yml Ignore Pod lint errors Jan 22, 2019
.travis.yml Update Travis Jan 22, 2019
.watchmanconfig Removed unneed files Sep 12, 2016 Update README Jun 24, 2019
app.json Updates for upgrade script Feb 8, 2018
babel.config.js Update build scripts to accept parameter Sep 18, 2018 Update build scripts to accept parameter Sep 18, 2018 Update build scripts to accept parameter Sep 18, 2018
index.js Consolidate platform specific index files Feb 8, 2018
metro.config.js Blacklist RN from Node_Modules Jun 24, 2019
package-lock.json Update dependency versions and app versions to prepare for release Jul 1, 2019
package.json Update dependency versions and app versions to prepare for release Jul 1, 2019
rn-cli.config.js Adjust blacklisted path to include react-native in deck swiper node_m… Jun 4, 2019

More detailed information on the wiki

Zooniverse Mobile App

The Zooniverse Mobile app is a React Native app that allows folks like you and me to contribute to astronomy, ecology, and anthropology research from their couch, bathtub, or bus stop (but don't swipe and drive, please).

Setting Up for Local Development

Setting up to work on a react-native app is a little tricky, and setting up to work on this one in particular is trickier. The guide below attempts to be comprehensive. If you run into any further issues while attempting to get set up, please reach out to either Will Granger ( or Chelsea Troy (

Preparing The React Native Framework


  • Node >= 6.9.0
  • React Native CLI (npm install -g react-native-cli - may need sudo/admin depending on your setup)


  1. Follow the instructions for Android and iOS setup in this guide.
  2. Clone down this repo and navigate to its directory (called mobile).
  3. Run npm install (later, if you need to reinstall dependencies for some reason, you can run rm -rf node_modules/ && npm install)
  4. Run npm start.

Setting up to run on iOS


  • XCode 10.1 or 10.2
  • An iPhone X Simulator, which you can run from XCode.


  1. Open XCode, and in XCode open mobile/ios/ZooniverseMobile.xcworkspace. We now need to manually link up the react-native-svg dependency. Follow these instructions to manually link RNSVG.xcodeproj, found at mobile/node_modules/react-native-svg/ios/RNSVG.xcodeproj. For our app, you do need to do step 3 in that tutorial, adding $(SRCROOT)/../node_modules/react-native-svg/ios/RNSVG to our Header Search Paths for both debug and release at Build Settings > Header Search Paths.
  2. Switch the project to the XCode Legacy Build System as described here under the section named "Opting out of the new Xcode build system."
  3. Build and run the project from XCode on an iPhone X simulator. Shortly, your simulator should boot with the Zooniverse app on it.

Note: There is a bug in Xcode 8 with react-native's RCTWebSocket. If you receive an error, follow the instructions here:



  • Android Studio (these instructions developed with AS 3.1.1)
  • You'll need at least one emulator. To get one:
    • Within Android Studio, open the "AVD Manager" - in the toolbar click the icon with the purple device and small android (fourth from the right)
    • Click 'Create Virtual Device' - bottom left-hand corner
    • Create at least one using the latest Android Release (Nougat). I have a few different size and Android Release configurations
  • Also you'll need a Gradle properties file outside the project for keeping secrets that aren't checked into source control. This should be in ~/.gradle/ and contain the following: MYAPP_RELEASE_STORE_FILE= MYAPP_RELEASE_KEY_ALIAS= Which should contain the keystore file name and alias. Talk to Will Granger ( for more information on this.


  1. To run in the emulator from the command line (you'll need device connected or emulator already running): npm run android. Shortly, your emulator should boot with the Zooniverse app on it.
    • You need to have either a device emulator open already or a physical device plugged into your computer. Otherwise, you'll need to run through Android Studio
    • If Android studio prompts you to update Gradle files, you should do it.
    • The command react-native run-android will install the build, but fail in launching the app due to a bug with the react-native script with having a seperate applicationId for development builds.


You can’t perform that action at this time.