Skip to content
This repository has been archived by the owner on Feb 7, 2023. It is now read-only.

Latest commit

 

History

History
90 lines (62 loc) · 4.18 KB

README.md

File metadata and controls

90 lines (62 loc) · 4.18 KB

🔥 Bitcamp Mobile App

App Screenshot

This is the the cross-platform mobile app for Bitcamp's hackathon, which is built using React Native and Expo. It provides hackers with up-to-date schedule information, custom QR codes, event notifications, and more.

📍 Quick Start

  1. Install node.js and git
  2. Install yarn
  3. Globally install expo-cli
  4. Clone the repository using git clone https://github.com/bitcamp/mobile-app.git (or using an SSH key, if you know how)
  5. Download the dependencies using yarn install
  6. Run the app using expo start or yarn start

👨‍💻 Contribution Guide

Adding New Dependencies

Since our project uses Expo, all of our dependency versions must be Expo-compatible. To download the correct version of dependencies, you should use the expo install <name of package> instead of yarn add <name of package>.

Development Scripts

Our package.json file exports many useful developmentscripts:

  1. yarn start: Starts the expo development environment and the metro bundler.
  2. yarn android: Althernative to yarn start, which starts expo and also automatically builds the Android .apk on the active Android emulator or device.
  3. yarn iOS: Same as yarn android, but for iOS. Only works if you have a Mac. If you have a physical iOS device, you can still use the expo mobile app to preview the app live.
  4. yarn lint: Reports style errors in your code using ESLint.
  5. yarn lint:fix: Reports style errors in your code using ESLint, and fixes all auto-fixable errors.

ESLint Setup

Our project uses ESLint to enforce style and formatting rules. To get automatic linting working (so your text editor automatically lints on save), follow these steps:

VSCode

  1. Download the ESLint extension for VSCode
  2. Create a workspace configuration file at the root of your project (it should be called in .vscode/settings.json)
  3. Copy the following settings into your config file
{
  // Set up yarn as the default package manager
  "eslint.packageManager": "yarn",

  // Run eslint fix on save
  "editor.codeActionsOnSave": {
    "source.fixAll.eslint": true
  },

  // Don't apply prettier on any of the following files (eslint will take care of formatting since we use `eslint-plugin-prettier`)
  "prettier.disableLanguages": ["js", "jsx"]
}
  1. Reload VSCode and start linting 😄

Manual Linting

To manually lint, use yarn lint and yarn lint:fix from the command line.

New Feature Step-by-Step Instructions

We follow the GitHub flow for managing this repository, which means that each new feature gets a branch off of master. After you've assigned yourself to an issue to work on, do the following to setup your local git environment:

  1. To make a new branch off of master, run
$ git checkout master
$ git checkout -b <descriptive-branch-name>
  1. Add commits using descriptive commit messages
  2. Push your new branch to the repository
  3. Submit a merge request on GitHub when your feature is ready for review

FAQ

Here are some common development questions

  • How do I pull down new changes from master into a local branch?
 $ git pull origin master
  • I got an Expo error about using a LAN URL. How do I fix that?

  • I got an error saying Task :app:transformNativeLibsWithMergeJniLibsForDebug FAILED. How do I fix that?

    • Just run yarn android again, which usually fixes the error.