e05aa1eb52
* Create method to track user event to isolate the logic to improve future refactoring * Track Onboarding view * Track NewServer view * Refactor track method due to firebase already send the current screen * Track default login and all the oAuth options * Track default sign up in RegisterView * Change trackUserEvent signature and update all the files * Track the remaining login services * track add server, change server and search * Track SidebarView and refactor to use react-navigation * Track profile events and handle exceptions * Track create channel flux * Track send message to user via NewMessageView * Track create direct message flux * Handle failure of create channel and group in the saga * Track create discussion flux * Track navigate to directory and its actions * Track read, favorite and hide a channel, handling its errors * Track all channels sorting and grouping * Resolve requests to improve the importing logs and events * Remove unused events file * Leave a bugsnag breadcrumb when logging an event * Move all logEvent to the top of code block and log remaining fail events * Move all the non-logic-dependent logEvent to the top of code block * Improve the logging of sidebar events * Improve events from onboarding and newserver * Improve events from login and register view, and log enter with apple * Improve NewMessageView events * Improve CreateChannel events * Improve CreateDiscussion and SelectedUsers create group events * Improve RoomsList events and log trivial events * Improve ProfileView events * Remove single line function body for the sidebarNavigate * Navigate to Status and AdminPanel View using the defined sidebarNavigate method 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