No description
Find a file
Harrison Healey 8732febd8c Removed react-native-router-flux and added custom navigation logic (#102)
* Removed react-native-router-flux and replaced it with custom navigation

* Split Logout component to have a container

* Replaced RootContainer with RootLayout

* Removed lodash from package.json

* Removed unnecessary state from Logout component

* Added placeholder for RHS search

* Renamed routes to scenes and moved some logic to there

* Added Root route to handle any initialization on app load

* Added unit tests for navigation reducer

* Fixed eslint errors

* Removed commented out code from Router

* Renamed Channel route to ChannelView to avoid confusion

* Used a separate index.js for component containers

* Simplified mapStateToProps for RootLayoutContainer

* Removed file accidentally added in merge conflict
2016-12-08 12:37:38 -03:00
android Add app icons for android (#74) 2016-11-22 12:14:38 -05:00
config Added react-intl for internationalization (#31) 2016-10-19 10:56:24 -07:00
ios Update xcode project and Readme (#79) 2016-11-22 14:03:28 -05:00
src Removed react-native-router-flux and added custom navigation logic (#102) 2016-12-08 12:37:38 -03:00
test Removed react-native-router-flux and added custom navigation logic (#102) 2016-12-08 12:37:38 -03:00
.babelrc Use babelrc (#10) 2016-10-14 15:00:09 -07:00
.buckconfig Initial commit 2016-10-04 14:10:44 -04:00
.editorconfig Changed .editorconfig to include a trailing newline on files (#21) 2016-10-17 13:56:28 -04:00
.eslintrc.json Initial Redux Store (#84) 2016-12-06 15:11:40 -05:00
.flowconfig Updated react-native projects 2016-10-07 11:49:31 -04:00
.gitignore Gitignore .npminstall (#28) 2016-10-18 15:44:52 -07:00
.npmrc Add functionality for fetching + selecting teams & channels (#17) 2016-10-17 15:47:47 -04:00
.watchmanconfig Initial commit 2016-10-04 14:10:44 -04:00
CONTRIBUTING.md Proposed changes to contributor guidelines (#44) 2016-10-19 13:33:44 -07:00
index.android.js Initial Redux Store (#84) 2016-12-06 15:11:40 -05:00
index.ios.js Initial Redux Store (#84) 2016-12-06 15:11:40 -05:00
LICENSE.txt Adding Apache 2.0 license 2016-10-11 09:14:00 -07:00
Makefile Re-add remote redux debugger to npm run postinstall 2016-11-09 10:12:27 -05:00
package.json Removed react-native-router-flux and added custom navigation logic (#102) 2016-12-08 12:37:38 -03:00
README.md Typo, unreleased should not be hyphenated 2016-11-25 12:39:13 -08:00
rn-cli.config.js Added script to make React Native support absolute imports 2016-10-07 11:46:40 -04:00

Mattermost Mobile (unreleased)

This is an unreleased project for replacing the Mattermost iOS and Android apps with new mobile apps using React Native and Redux. The project is not yet stable, and the instructions are for internal use currently (i.e. probably out-of-date until we stablize).

We'll post updates to our Forums and Twitter when we're ready to bring in more community contributors.

Our early roadmap was discussed on the Mattermost forums in October 2016 and we'll have more updates as the project evolves. Priorities are shifting so please only use the dates in the post as a highly approximate guide.

Mattermost is an open source Slack-alternative used by thousands of companies around the world in 11 languages. Learn more at https://mattermost.com.

Installing Dependencies

Follow the React Native Getting Started Guide for detailed instructions on setting up your local machine for development.

Detailed configuration:

Mac

  • General requirements

    • XCode 8.1
    • Install watchman $ brew install watchman
  • Clone repository and configure:

    $ git clone git@github.com:mattermost/mattermost-mobile.git
    $ cd mattermost-mobile
    $ npm install
    $ npm install -g react-native-cli
    
  • Run application

    $ make run
    

Linux:

  • General requiriments:

    • JDK 7 or greater
    • Android SDK
    • Virtualbox
    • An Android emulator: Genymotion or Android emulator. If using genymotion ensure that it uses existing adb tools (Settings: "Use custom Android SDK Tools")
    • Install watchman (do this globally):
      $ git clone https://github.com/facebook/watchman.git
      $ cd watchman
      $ git checkout master
      $ ./autogen.sh
      $ ./configure make
      $ sudo make install
      
      Configure your kernel to accept a lot of file watches, using a command like:
      $ sudo sysctl -w fs.inotify.max_user_watches=1048576
      
  • Clone repository and configure:

    $ git clone git@github.com:mattermost/mattermost-mobile.git
    $ cd mattermost-mobile
    $ npm install
    $ npm install -g react-native-cli
    
    • Add or edit file src/config/config.secret.json and add the url to the Mattermost server that you will use to develop: { "DefaultServerUrl": "https://pre-release.mattermost.com" }

      To use a local Mattermost server you will need to configure the "DefaultServerUrl" depending on the emulator you will use:

  • Run application

    • Start emulator
    • Start react packager: $ react-native start
    • Run in emulator: $ react-native run-android