# Contributing code to Matrix

Please read the matrix-ios-sdk [contributing guide](https://github.com/matrix-org/matrix-ios-sdk/blob/develop/CONTRIBUTING.md).

# Contributing code to Element iOS

## I want to help translating

If you want to fix an issue for an English string, please submit a pull request to the Element iOS GitHub repository.
If you want to fix an issue for another language, add a missing translation, or  add a new language, please read [Element Web translating guide](https://github.com/element-hq/element-web/blob/develop/docs/translating.md) first and then use the Element iOS [Weblate](https://translate.riot.im/projects/riot-ios/).

If you have any question regarding translations please ask in [Element Translation room](https://matrix.to/#/#element-translations:matrix.org).

## Setting up a development environment

Please refer to the [installation guide](INSTALL.md) to setup the project.

## Implement a new screen or new screen flow

New screen flows are currently using MVVM-Coordinator pattern. Please refer to the screen template [Readme](Tools/Templates/README.md) to create a new screen or a new screen flow.

## Coding style

For Swift coding style we use [SwiftLint](https://github.com/realm/SwiftLint) to check some conventions at compile time (rules are located in the `.swiftlint.yml` file). 
Otherwise please have a look to [Apple Swift conventions](https://swift.org/documentation/api-design-guidelines.html#conventions). We are also using some of the conventions of [raywenderlich.com Swift style guide](https://github.com/raywenderlich/swift-style-guide).

## Pull request

When you are making a pull request please read carefully the [Pull Request Checklist](https://github.com/element-hq/element-ios/blob/develop/.github/PULL_REQUEST_TEMPLATE.md).

## Thanks

Thanks for contributing to Matrix projects!