docs/develop/contribute/more-info/mobile/developer-setup/index.md
The following instructions apply to the mobile apps for iOS and Android built in React Native. Download the iOS version here and the Android version here. Source code can be found at the GitHub Mattermost Mobile app repository.
If you run into any issues getting your environment set up, check the Troubleshooting section of the product docs for common solutions.
<Note title="iOS mobile app"> A macOS computer is required to build the Mattermost iOS mobile app. </Note> <Note title="Android mobile app"> Version 17 of the Java SE Development Kit (JDK) is required to develop the Mattermost Android mobile app. You can download the latest OpenJDK release of Java from Oracle, for free, under an open source license. </Note>The following instructions apply to both iOS and Android mobile apps. On macOS, we recommend using Homebrew as a package manager.
We recommend using NodeJS v22 and npm v10. Many of our team use nvm to manage npm and NodeJS versions.
<Tabs> <TabItem value="node-npm-mac" label="macOS"> To install [NVM](https://github.com/nvm-sh/nvm), follow [these instructions](https://github.com/nvm-sh/nvm#installing-and-updating).After installing, follow the post-install steps shown by the installer to add the necessary lines to your shell profile (for example ~/.zshrc or ~/.bash_profile). Then open a new terminal and run:
nvm install --lts
Watchman is a file watching program. When a file changes, Watchman triggers an action, such as re-running a build command if a source file has changed.
The minimum required version of Watchman is 4.9.0.
<Tabs> <TabItem value="watchman-mac" label="macOS"> To install Watchman using Homebrew, open a terminal and execute:brew install watchman
react-native-cli toolsnpm -g install react-native-cli
brew install git
Install Xcode to build and run the app on iOS. The minimum required version is 11.0.
A version of Ruby is automatically installed on macOS, but Mattermost React Native app development requires Ruby 3.2.0. You can check the current version of Ruby by running the following command.
ruby --version
If it isn't, we recommend using Ruby Version Manager or your preferred package manager to install the required version. The steps below are for using RVM.
gpg command, you can install it using Homebrew by running.
brew install gnupg
\curl -sSL https://get.rvm.io | bash -s stable --ruby
source ~/.rvm/scripts/rvm
rvm install 3.2.0
rvm use 3.2.0 any time you want to work on the mobile app.
rvm alias create default 3.2.0
Download and install the Android Studio app or the Android SDK command line tools
<Note title="Default paths"> This documentation assumes you chose the default path for your Android SDK installation. If you chose a different path, adjust the environment variables below accordingly. </Note>Make sure you have the following environment variables configured for your platform:
<Tabs> <TabItem value="droid-common" label="All platforms"> - Set `ANDROID_HOME` to where Android SDK is located (likely `/Users/<username>/Library/Android/sdk` or `/home/<username>/Android/Sdk`) - Make sure your `PATH` includes `ANDROID_HOME/tools` and `ANDROID_HOME/platform-tools` </TabItem> <TabItem value="droid-mac" label="macOS"> On Mac, this usually requires adding the following lines to your `~/.bash_profile` file:export ANDROID_HOME=$HOME/Library/Android/sdk
export PATH=$ANDROID_HOME/emulator:$ANDROID_HOME/platform-tools:$ANDROID_HOME/tools:$PATH
Then reload your bash configuration:
source ~/.bash_profile
export ANDROID_HOME=/home/<username>/Android/Sdk
export PATH=$ANDROID_HOME/platform-tools:$PATH
export PATH=$ANDROID_HOME/tools:$PATH
Then reload your configuration
source ~/.bash_profile
In the SDK Manager using Android Studio or the Android SDK command line tool, ensure the following are installed:
SDK Tools (you may have to select Show Package Details to expand packages):
SDK Platforms (you may have to select Show Package Details to expand packages)
In order to develop and build the Mattermost mobile apps, you'll need to get a copy of the source code. Forking the mattermost-mobile repository will also make it easy to contribute your work back to the project in the future.
Fork the mattermost-mobile repository on GitHub.
Clone your fork locally:
a. Open a terminal
b. Change to a directory you want to hold your local copy
c. Run git clone https://github.com/<username>/mattermost-mobile.git if you want to use HTTPS, or git clone [email protected]:<username>/mattermost-mobile.git if you want to use SSH
Change the directory to mattermost-mobile.
cd mattermost-mobile
Install the project dependencies with npm install