Setup Development Environment
Prerequisites
Fork the repository and clone it to your local machine.
Install the required software:
- Visual Studio Code
- Xcode (for iOS development, macOS only)
- Android Studio (for Android development)
Install the required dependencies:
In addition is recommended to use the ESLint and Prettier extensions for your IDE to get real-time feedback on your code.
Install project dependencies by running the following command in the project directory:
shbun install
Setup the emulator
Android (Windows, macOS, and Linux):
- Follow the official guide to set up the Android emulator.
iOS (macOS only):
- Follow the official guide to set up the iOS simulator.
Copy the
.env.local.example
file to.env.local
and fill in the variables.
See the notes on the API key.
EXPO_PUBLIC_THI_API_KEY=abc123
EXPO_PUBLIC_THI_API_KEY=SUPER_SECRET_API_KEY
Create a development build for your desired platform.
shbun ios bun android
Note
Step 8 is required every time the dependencies are updated.
Development
Create a new branch from your fork to contribute to the project. Use a descriptive branch name.
Make your changes and ensure that the code follows our coding style and conventions.
Run the app locally with Expo by running the following command in the project directory:
shbun start
This allows you to run the app one the previously created development build. Expo Go is not supported for development.
Submitting Changes
- Commit your changes to your branch. To ensure descriptive commit messages and automatic changelog generation, we require using the Angular commit message style for your commit messages.
- Create a pull request from your branch to the develop branch of this repository.
- Provide a clear and descriptive title and description for your pull request, summarizing the changes you made. Also make sure use the Angular commit message style for the pull request title.
- Once your pull request is submitted, our team will review your changes and provide feedback or request further modifications if needed.
Details on the Angular commit message style
<type>(<scope>): <short summary>
│ │ │
│ │ └─⫸ Summary in present tense. Not capitalized. No period at the end.
│ │
│ └─⫸ Commit Scope: animations|bazel|benchpress|common|compiler|compiler-cli|core|
│ elements|forms|http|language-service|localize|platform-browser|
│ platform-browser-dynamic|platform-server|router|service-worker|
│ upgrade|zone.js|packaging|changelog|docs-infra|migrations|
│ devtools
│
└─⫸ Commit Type: build|ci|docs|feat|fix|perf|refactor|test
Code Style
Follow the existing code style and conventions used in the project.
Use meaningful variable and function names to improve code readability.
Document your code when necessary using inline comments.
Follow the existing code style and conventions used in the project.
Use meaningful variable and function names to improve code readability.
Document your code when necessary using inline comments.
We use the Husky git hook to automatically fix commits according to ESLint rules, format them using Prettier and to enforce the commit message style. But you can also run these commands manually:
bun lint
to check for linting errorsbun lint:fix
to automatically fix linting errorsbun format
to format the code using Prettier
Issues and Discussions
- Feel free to open an issue if you encounter a bug or want to suggest an improvement.
- For questions or more general concerns, create a thread in the discussion tab.