README.md 13.5 KB
Newer Older
Diego Mello's avatar
Diego Mello committed
1
# Rocket.Chat Mobile
Rodrigo Nascimento's avatar
Rodrigo Nascimento committed
2

Rodrigo Nascimento's avatar
Rodrigo Nascimento committed
3
4
[![Project Dependencies](https://david-dm.org/RocketChat/Rocket.Chat.ReactNative.svg)](https://david-dm.org/RocketChat/Rocket.Chat.ReactNative)
[![Codacy Badge](https://api.codacy.com/project/badge/Grade/bb15e2392a71473ea59d3f634f35c54e)](https://www.codacy.com/app/RocketChat/Rocket.Chat.ReactNative?utm_source=github.com&utm_medium=referral&utm_content=RocketChat/Rocket.Chat.ReactNative&utm_campaign=badger)
Rodrigo Nascimento's avatar
Rodrigo Nascimento committed
5
[![codecov](https://codecov.io/gh/RocketChat/Rocket.Chat.ReactNative/branch/master/graph/badge.svg)](https://codecov.io/gh/RocketChat/Rocket.Chat.ReactNative)
6
[![CodeFactor](https://www.codefactor.io/repository/github/rocketchat/rocket.chat.reactnative/badge)](https://www.codefactor.io/repository/github/rocketchat/rocket.chat.reactnative)
Rodrigo Nascimento's avatar
Rodrigo Nascimento committed
7

Diego Mello's avatar
Diego Mello committed
8
**Supported Server Versions:** 0.70.0+
9

Diego Mello's avatar
Diego Mello committed
10
## Download
Diego Mello's avatar
Diego Mello committed
11
12
13
14
15
16
17
18
19
20

### Official apps
<a href="https://play.google.com/store/apps/details?id=chat.rocket.android">
  <img alt="Download on Google Play" src="https://play.google.com/intl/en_us/badges/images/badge_new.png" height=43>
</a>
<a href="https://apps.apple.com/us/app/rocket-chat/id1148741252">
  <img alt="Download on App Store" src="https://user-images.githubusercontent.com/7317008/43209852-4ca39622-904b-11e8-8ce1-cdc3aee76ae9.png" height=43>
</a>

### Experimental apps
Diego Mello's avatar
Diego Mello committed
21
22
23
24
25
26
<a href="https://play.google.com/store/apps/details?id=chat.rocket.reactnative">
  <img alt="Download on Google Play" src="https://play.google.com/intl/en_us/badges/images/badge_new.png" height=43>
</a>
<a href="https://itunes.apple.com/us/app/rocket-chat-experimental/id1272915472">
  <img alt="Download on App Store" src="https://user-images.githubusercontent.com/7317008/43209852-4ca39622-904b-11e8-8ce1-cdc3aee76ae9.png" height=43>
</a>
Diego Mello's avatar
Diego Mello committed
27

28
29
30
31
## Beta Access

### TestFlight

Diego Mello's avatar
Diego Mello committed
32
33
34
35
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.
36

Diego Mello's avatar
Diego Mello committed
37
### Google Play beta
38

Diego Mello's avatar
Diego Mello committed
39
40
41
42
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
43
44
45
46
47

## Reporting an Issue

[Github Issues](https://github.com/RocketChat/Rocket.Chat.ReactNative/issues) are used to track todos, bugs, feature requests, and more.

Diego Mello's avatar
Diego Mello committed
48
Also check the [#react-native](https://open.rocket.chat/channel/react-native) community on [open.rocket.chat](https://open.rocket.chat). We'd like to help.
49

Diego Mello's avatar
Diego Mello committed
50
## Installing dependencies
Rodrigo Nascimento's avatar
Rodrigo Nascimento committed
51
52
53

Follow the [React Native Getting Started Guide](https://facebook.github.io/react-native/docs/getting-started.html) for detailed instructions on setting up your local machine for development.

Diego Mello's avatar
Diego Mello committed
54
## How to run
Diego Mello's avatar
Diego Mello committed
55
- Clone repository and install dependencies:
Rodrigo Nascimento's avatar
Rodrigo Nascimento committed
56
57
58
    ```bash
    $ git clone git@github.com:RocketChat/Rocket.Chat.ReactNative.git
    $ cd Rocket.Chat.ReactNative
Diego Mello's avatar
Diego Mello committed
59
    $ yarn
Diego Mello's avatar
Diego Mello committed
60
    ```
Rodrigo Nascimento's avatar
Rodrigo Nascimento committed
61
62
63

- Run application
    ```bash
64
    $ npx react-native run-ios
Rodrigo Nascimento's avatar
Rodrigo Nascimento committed
65
66
    ```
    ```bash
67
    $ npx react-native run-android
Rodrigo Nascimento's avatar
Rodrigo Nascimento committed
68
69
    ```

Diego Mello's avatar
Diego Mello committed
70
### Running single server
71
72
73
If you don't need multiple servers, there is a branch `single-server` just for that.
Readme will guide you on how to config.

Diego Mello's avatar
Diego Mello committed
74
## Current priorities
Diego Mello's avatar
Diego Mello committed
75
76
1) Omnichannel support
2) E2E encryption
Diego Mello's avatar
Diego Mello committed
77
78

## Features
Diego Mello's avatar
Diego Mello committed
79
80
| Feature                                                   	    | Status 	|
|---------------------------------------------------------------	|--------	|
81
| Jitsi Integration                                             	| ✅    	|
Diego Mello's avatar
Diego Mello committed
82
| Federation (Directory)                                        	| ✅    	|
83
| Discussions                                                     | ✅    	|
Diego Mello's avatar
Diego Mello committed
84
| Omnichannel                                                     | ❌    	|
Diego Mello's avatar
Diego Mello committed
85
| Threads                                                       	| ✅    	|
Diego Mello's avatar
Diego Mello committed
86
| Record Audio                                                  	| ✅    	|
Diego Mello's avatar
Diego Mello committed
87
88
| Record Video                                                  	| ✅    	|
| Commands                                                      	| ✅    	|
lolimay's avatar
lolimay committed
89
| Draft message per room                                        	| ✅    	|
Diego Mello's avatar
Diego Mello committed
90
| Share Extension                                               	| ✅    	|
Diego Mello's avatar
Diego Mello committed
91
92
| Notifications Preferences                                     	| ✅    	|
| Edited status                                                 	| ✅    	|
Diego Mello's avatar
Diego Mello committed
93
| Upload video                                                  	| ✅    	|
Diego Mello's avatar
Diego Mello committed
94
| Grouped messages                                              	| ✅    	|
Diego Mello's avatar
Diego Mello committed
95
96
| Mark room as read                                             	| ✅    	|
| Mark room as unread                                           	| ✅    	|
Diego Mello's avatar
Diego Mello committed
97
| Tablet Support                                                	| ✅    	|
Diego Mello's avatar
Diego Mello committed
98
| Read receipt                                                  	| ✅    	|
Diego Mello's avatar
Diego Mello committed
99
| Broadbast Channel                                             	| ✅    	|
Filipe Brito's avatar
Filipe Brito committed
100
101
| Authentication via SAML                                       	| ✅    	|
| Authentication via CAS                                        	| ✅    	|
Diego Mello's avatar
Diego Mello committed
102
103
| Custom Fields on Signup                                       	| ✅    	|
| Report message                                                	| ✅    	|
Diego Mello's avatar
Diego Mello committed
104
| Theming                                                       	| ✅    	|
105
| Settings -> Review the App                                    	| ✅    	|
106
| Settings -> Default Browser                                   	| ✅    	|
lolimay's avatar
lolimay committed
107
| Admin panel                                                   	| ✅    	|
108
| Reply message from notification                               	| ✅    	|
Diego Mello's avatar
Diego Mello committed
109
| Unread counter banner on message list                         	| ✅    	|
Diego Mello's avatar
Diego Mello committed
110
| E2E Encryption                                                 	| ❌    	|
Diego Mello's avatar
Diego Mello committed
111
| Join a Protected Room                                         	| ❌    	|
112
| Optional Analytics                                            	| ✅    	|
Diego Mello's avatar
Diego Mello committed
113
| Settings -> About us                                          	| ❌    	|
Diego Mello's avatar
Diego Mello committed
114
| Settings -> Contact us                                        	| ✅    	|
Diego Mello's avatar
Diego Mello committed
115
| Settings -> Update App Icon                                   	| ❌    	|
116
| Settings -> Share                                             	| ✅    	|
Diego Mello's avatar
Diego Mello committed
117
118
119
| Accessibility (Medium)                                        	| ❌    	|
| Accessibility (Advanced)                                      	| ❌    	|
| Authentication via Meteor                                     	| ❌    	|
Diego Mello's avatar
Diego Mello committed
120
| Authentication via Wordpress                                  	| ✅    	|
Filipe Brito's avatar
Filipe Brito committed
121
| Authentication via Custom OAuth                               	| ✅    	|
Diego Mello's avatar
Diego Mello committed
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
| 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                                                   	| ✅    	|
Diego Mello's avatar
Diego Mello committed
206
207

## Detox (end-to-end tests)
Guilherme Gazzo's avatar
Guilherme Gazzo committed
208
209
210
- Build your app

```bash
211
$ npx detox build --configuration ios.sim.release
Guilherme Gazzo's avatar
Guilherme Gazzo committed
212
213
214
215
216
```

- Run tests

```bash
217
218
219
$ 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
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
```

## Storybook
- Open index.js

- Uncomment following line

```bash
import './storybook';
```

- Comment out following lines
```bash
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