4def17c2e9
* [IMPROVEMENT] Mark a thread as read * Use methodCallWrapper * Check server version Co-authored-by: Diego Mello <diegolmello@gmail.com> |
||
---|---|---|
.circleci | ||
.github | ||
__mocks__ | ||
__tests__ | ||
android | ||
app | ||
e2e | ||
ios | ||
patches | ||
storybook | ||
.bettercodehub.yml | ||
.buckconfig | ||
.eslintignore | ||
.eslintrc.js | ||
.gitattributes | ||
.gitignore | ||
.snyk | ||
.watchmanconfig | ||
LICENSE | ||
README.md | ||
SECURITY.md | ||
app.json | ||
babel.config.js | ||
config.js | ||
index.js | ||
jsconfig.json | ||
key.keystore.enc | ||
metro.config.js | ||
package.json | ||
react-native.config.js | ||
yarn.lock |
README.md
Rocket.Chat Mobile
Supported Server Versions: 0.70.0+
Download
Official apps
Experimental apps
Beta Access
TestFlight
You can signup to our TestFlight builds by accessing these links:
- Official: https://testflight.apple.com/join/3gcYeoMr
- Experimental: https://testflight.apple.com/join/7I3dLCNT.
Google Play beta
You can subscribe to Google Play Beta program and download latest versions:
- Official: https://play.google.com/store/apps/details?id=chat.rocket.android
- Experimental: https://play.google.com/store/apps/details?id=chat.rocket.reactnative
Reporting an Issue
Github Issues are used to track todos, bugs, feature requests, and more.
Also check the #react-native community on open.rocket.chat. We'd like to help.
Installing dependencies
Follow the React Native Getting Started Guide for detailed instructions on setting up your local machine for development.
How to run
-
Clone repository and install dependencies:
$ git clone git@github.com:RocketChat/Rocket.Chat.ReactNative.git $ cd Rocket.Chat.ReactNative $ yarn
-
Run application
$ npx react-native run-ios
$ npx react-native run-android
Running single server
If you don't need multiple servers, there is a branch single-server
just for that.
Readme will guide you on how to config.
Current priorities
- Omnichannel support
- E2E encryption
Features
Feature | Status |
---|---|
Jitsi Integration | ✅ |
Federation (Directory) | ✅ |
Discussions | ✅ |
Omnichannel | ❌ |
Threads | ✅ |
Record Audio | ✅ |
Record Video | ✅ |
Commands | ✅ |
Draft message per room | ✅ |
Share Extension | ✅ |
Notifications Preferences | ✅ |
Edited status | ✅ |
Upload video | ✅ |
Grouped messages | ✅ |
Mark room as read | ✅ |
Mark room as unread | ✅ |
Tablet Support | ✅ |
Read receipt | ✅ |
Broadbast Channel | ✅ |
Authentication via SAML | ✅ |
Authentication via CAS | ✅ |
Custom Fields on Signup | ✅ |
Report message | ✅ |
Theming | ✅ |
Settings -> Review the App | ✅ |
Settings -> Default Browser | ✅ |
Admin panel | ✅ |
Reply message from notification | ✅ |
Unread counter banner on message list | ✅ |
E2E Encryption | ❌ |
Join a Protected Room | ❌ |
Optional Analytics | ✅ |
Settings -> About us | ❌ |
Settings -> Contact us | ✅ |
Settings -> Update App Icon | ❌ |
Settings -> Share | ✅ |
Accessibility (Medium) | ❌ |
Accessibility (Advanced) | ❌ |
Authentication via Meteor | ❌ |
Authentication via Wordpress | ✅ |
Authentication via Custom OAuth | ✅ |
Add user to the room | ✅ |
Send message | ✅ |
Authentication via Email | ✅ |
Authentication via Username | ✅ |
Authentication via LDAP | ✅ |
Message format: Markdown | ✅ |
Message format: System messages (Welcome, Message removed...) | ✅ |
Message format: links | ✅ |
Message format: images | ✅ |
Message format: replies | ✅ |
Message format: alias with custom message (title & text) | ✅ |
Messages list: day separation | ✅ |
Messages list: load more on scroll | ✅ |
Messages list: receive new messages via subscription | ✅ |
Subscriptions list | ✅ |
Segmented subscriptions list: Favorites | ✅ |
Segmented subscriptions list: Unreads | ✅ |
Segmented subscriptions list: DMs | ✅ |
Segmented subscriptions list: Channels | ✅ |
Subscriptions list: update user status via subscription | ✅ |
Numbers os messages unread in the Subscriptions list | ✅ |
Status change | ✅ |
Upload image | ✅ |
Take picture & upload it | ✅ |
2FA | ✅ |
Signup | ✅ |
Autocomplete with usernames | ✅ |
Autocomplete with @all & @here | ✅ |
Autocomplete room/channel name | ✅ |
Upload audio | ✅ |
Forgot your password | ✅ |
Login screen: terms of service | ✅ |
Login screen: privacy policy | ✅ |
Authentication via Google | ✅ |
Authentication via Facebook | ✅ |
Authentication via Twitter | ✅ |
Authentication via GitHub | ✅ |
Authentication via GitLab | ✅ |
Authentication via LinkedIn | ✅ |
Create channel | ✅ |
Search Local | ✅ |
Search in the API | ✅ |
Settings -> License | ✅ |
Settings -> App version | ✅ |
Autocomplete emoji | ✅ |
Upload file (documents, PDFs, spreadsheets, zip files, etc) | ✅ |
Copy message | ✅ |
Pin message | ✅ |
Unpin message | ✅ |
Channel Info screen -> Members | ✅ |
Channel Info screen -> Pinned | ✅ |
Channel Info screen -> Starred | ✅ |
Channel Info screen -> Uploads | ✅ |
Star message | ✅ |
Unstar message | ✅ |
Channel Info screen -> Topic | ✅ |
Channel Info screen -> Description | ✅ |
Star a channel | ✅ |
Message format: videos | ✅ |
Message format: audios | ✅ |
Edit message | ✅ |
Delete a message | ✅ |
Reply message | ✅ |
Quote message | ✅ |
Muted state | ✅ |
Offline reading | ✅ |
Offline writing | ✅ |
Edit profile | ✅ |
Reactions | ✅ |
Custom emojis | ✅ |
Accessibility (Basic) | ✅ |
Tap notification, go to the channel | ✅ |
Deep links: Authentication | ✅ |
Deep links: Rooms | ✅ |
Full name setting | ✅ |
Read only rooms | ✅ |
Typing status | ✅ |
Create channel/group | ✅ |
Disable registration setting | ✅ |
Unread red line indicator on message list | ✅ |
Search Messages in Channel | ✅ |
Mentions List | ✅ |
Attachment List | ✅ |
Join a Room | ✅ |
Detox (end-to-end tests)
- Build your app
$ npx detox build --configuration ios.sim.release
- Run tests
$ npx detox test ./e2e/tests/onboarding --configuration ios.sim.release
$ npx detox test ./e2e/tests/room --configuration ios.sim.release
$ npx detox test ./e2e/tests/assorted --configuration ios.sim.release
Storybook
-
Open index.js
-
Uncomment following line
import './storybook';
- Comment out following lines
import './app/ReactotronConfig';
import { AppRegistry } from 'react-native';
import App from './app/index';
import { name as appName } from './app.json';
AppRegistry.registerComponent(appName, () => App);
- Start your application again