SimformRN
The repository for SimformRN, a react-native boiler-plate.
Project Name: SimformRN
Bundle Id: com.simform.SimformRN
Package Name: com.simformrn
Project Desctiption
this is a unassigned task for react navigation v5 and custom drawer animation
Prerequisites
iOS : XCode(10.2) onwards
Android : Android Studio(3.4) with gradle(5.1.1) onwards
Editor : Visual Studio Code
How to Setup Project
Step 1: Clone this repository.
Step 2: Go to the cloned repo and open it in termianl.
Step 3: Install the dependencies with $ npm i
Step 4: Run the npm script to install the cocoapods $ npm podinstall
How to Run the Project
- Open the project directory in to terminal
- Run and build for either OS
- Run iOS app
npm run ios
- Run Android app
npm run android
- Note: This npm scripts will lint your code first. If there are no lint errors, then it will run the ios or android app. Otherwise it will show the lint errors in the terminal.
- Run iOS app
Reusablity
- How it can be reused?
- Clone the repository
- Install react-native-rename as global dependency
- There are two bugs with this lib though.
- If your old project name and new project name have same strings in them, it won't rename the ios .pbxproj, .xcodeproj and .xcworkspace files.
- To overcome this, we can rename the project with a totally different name first and than can rename it with the actual name.
first command: <project_root_directory>$react-native-rename "TestApp" -b com.simform.testapp second command: <project_root_directory>$react-native-rename "SimformRN" -b com.simform.simformrn
Template generator
- Why generator?
- Generator will help us to save 5-15 minutes time when creating every module, screen, component, reducer, saga, service etc.
Coding Style used
This project adheres to JavaScript Standard for codinng style. To maintain coding standards, utilising features of ES6 and follow best development practices of react-native, this project also uses ES6, some rules of eslint-airbnb, eslint-plugin-react and eslint-plugin-react-native.
Do not disable lint inside the code. Try to understand the rule and then follow it into your code. Disabling lint will be considered a violation of coding standards. Exceptions will be allowed by the code-reviewer and team lead after understanding the need to ignore lint.
-
To Lint
Use the npm script
lint
. To run it
npm run lint
-
Auto Lint on Commit
This is implemented using husky. So husky will prevent code-cmmits having lint errors. There is no additional setup needed.
-
Understanding Linting Errors
The linting rules are from JS Standard and React-Standard. Regular JS errors can be found with descriptions here, while React errors and descriptions can be found here.
Extra steps for android
- run following command
- npm run android
Extra steps for ios
-
run following command
- npm run ios
-
You will need all the certificates to run the ios project in a real device.
List of all dependencies used in the project with their usage
List all dependencies from the package.json file along with their usage. This list must be updated every time you change/add any dependecy.
-
Framework:
-
State management libraries:
-
API & Middleware libraries:
-
Libraries used for navigation:
-
Libraries used for forms and validations:
-
Libraries used for UI:
-
Libraries used for storage:
Following accounts are used for the mentioned platform
- no account used as of now
Troubleshoot Notes
- There are no known issues for run or build processes right now.
Notes
- no notes