You should be aware of below stacks(do not need to be professional) to contribute to our repository.
- React Native
- Firebase
Specifically, we are using
firebaseas our backend. Also we are starting our development fromreact-nativeversion0.60-rc.2which specifically migrated toandroidxforandroidandcocoapodproject forios. Therefore, to install our project, you should at least search what they are if you aren't totally unaware of it. Then follow Installation. - expo
4. cocoapod5. AndroidX
- Fork our project to yours.
- Recommended to have
forkedmaster branch to be updated to upstream. - Configure Syncing a fork.
git remote add upstream https://github.com/dooboolab/whatssub- Check it with
git remote -v
- Fetch the branches from upstream repository by
git fetch upstream - When you want to give
PR, make new branchgit checkout -b [feature_name]- Before pushing
PR, dogit fetch upstreamfrom master branch then try the rebase bygit rebase master - Check your status by
git log --decorate --oneline --all --graphornpm run git:log
- Before pushing
- Recommended to have
- Git clone your forked repository.
git clone https://github.com/<your-id>/whatssub.git - Install your packages
yarn- Note that we recommend using yarn because all of our team members do.
- Also node that
yarn.lockandpackage-lock.jsonsometimes make collision. Try to delete one of them.
- Configure
iosproject- Go to
iosdirectory and runpod install - Since
react-nativeis using version0.60for now, the project is built withpodproject which is required to install packages to build youriosproject.
- Go to
- Configure
androidproject- Not much required. Be aware your project should be compatible with
androidx.- Above means you should becareful when using third party
react-native native modulesbecuase they might not be compatible withandroidxwhich will result in failed build.
- Above means you should becareful when using third party
- Not much required. Be aware your project should be compatible with
- Configure
firebaseproject- Try to create your own
firebaseproject. - Copy
config.sample.tstoconfig.ts.cp config.sample.ts config.ts - Setup variables of your own
firebaseproject.export const firebaseConfig = { apiKey: '', authDomain: '', databaseURL: '', projectId: '', storageBucket: '', messagingSenderId: '', appId: '', };Note that initial keys are set to
devserver. However, this will be limited when more testers use the same server since firebase has its limit in accessing with free tier. Therefore, we recommend you to test this on your ownfirebaseproject.
- Try to create your own
- Run your project
ios- yarn run
ios
- yarn run
android- yarn run
androidNote that you should open your emulator beforehand before running above command since the script won't automatically open emulator unlike
ios.
- yarn run
- Please search and register if you already have the issue you want to create. If you have a similar issue, you can add additional comments.
- Please write a problem or suggestion in the issue. Never include more than one item in an issue.
- Please be as detailed and concise as possible.
- If necessary, please take a screenshot and upload an image.
- PR is available to
masterbranch.
Please follow the Coding conventions as much as possible when contributing your code.
- The indent tab is two spaces.
- The class declaration and the
{}in curly brackets such as function, if, foreach, for, and while should be in the following format. Also if you installed eslint in vscode or in your code editor, it will help you with linting.{should be placed in same line and}should be placed in next line.
for (let i = 0; i < 10; i++) {
...
}
array.forEach((e) => {
...
});
- Space before
(and after). - If you find code that does not fit in the coding convention, do not ever try to fix code that is not related to your purpose.