Security News
Weekly Downloads Now Available in npm Package Search Results
Socket's package search now displays weekly downloads for npm packages, helping developers quickly assess popularity and make more informed decisions.
stream-chat-react-native-core
Advanced tools
The official React Native and Expo components for Stream Chat, a service for building chat applications.
Quick Links
The best place to start is the React Native Chat Tutorial. It teaches you how to use this SDK and also shows how to make common changes.
This repo includes 2 example apps. One that's used with Expo, and one for native.
yarn global add expo-cli
git clone https://github.com/GetStream/stream-chat-react-native.git
cd stream-chat-react-native/examples/ExpoMessaging
yarn && yarn start
Please make sure you have installed necessary dependencies depending on your development OS and target OS. Follow the guidelines given on official react native documentation for installing dependencies: https://facebook.github.io/react-native/docs/getting-started#
Make sure node version is >= v10.13.0
Start the simulator
git clone https://github.com/GetStream/stream-chat-react-native.git
cd stream-chat-react-native/examples/NativeMessaging
yarn install
react-native run-ios
react-native run-android
If you run into following error on android:
Execution failed for task ':app:validateSigningDebug'.
> Keystore file '/path_to_project/stream-chat-react-native/examples/NativeMessaging/android/app/debug.keystore' not found for signing config 'debug'.
You can generate the debug keystore by running this command in the android/app/
directory: keytool -genkey -v -keystore debug.keystore -storepass android -alias androiddebugkey -keypass android -keyalg RSA -keysize 2048 -validity 10000
- Reference
The styleguidist docs for stream-chat-react-native document how all the components work.
The React Native components are created using the stream-chat-js library. If you're customizing the components it's important to learn how the Chat Server API works. You'll want to review our JS chat API docs.
Library currently exposes following components:
You can see detailed documentation about the components at https://getstream.github.io/stream-chat-react-native
yarn global add expo-cli
# expo-cli supports following Node.js versions:
# * >=8.9.0 <9.0.0 (Maintenance LTS)
# * >=10.13.0 <11.0.0 (Active LTS)
# * >=12.0.0 (Current Release)
expo init StreamChatExpoExample
cd StreamChatExpoExample
yarn add stream-chat-expo
Please check Example to see usage of the components.
OR you can swap this file for your App.js
in the root folder with additional following steps:
yarn add react-navigation
and finally
yarn start
react-native init StreamChatReactNativeExample
cd StreamChatReactNativeExample
yarn add stream-chat-react-native
# https://github.com/react-native-community/react-native-netinfo#react-native-compatibility
# For React native 0.59.x - use @react-native-community/netinfo@3.2.1
# For React native <= 0.58.x - use @react-native-community/netinfo@2.0.7
yarn add @react-native-community/netinfo@3.2.1
# https://github.com/react-native-community/react-native-image-picker#react-native-compatibility
yarn add react-native-image-picker@0.28.1
yarn add react-native-document-picker
react-native link @react-native-community/netinfo
# if you are plannign to use image picker or file picker or both
react-native link react-native-image-picker
react-native link react-native-document-picker
Please check Example to see usage of components.
OR you can swap this file for your App.js
in root folder with additional following steps:
yarn add react-navigation@3.11.0
yarn add react-native-gesture-handler@1.3.0 react-native-reanimated
react-native link react-native-gesture-handler
react-native link react-native-reanimated
If you are planning to use image picker, there are some additional steps to be done. You can find them here - https://github.com/react-native-community/react-native-image-picker/blob/master/docs/Install.md
If you are planning to use file/document picker, you need to enable iCloud capability in your app - https://github.com/Elyx0/react-native-document-picker#reminder
and finally
react-native run-ios
react-native init StreamChatReactNativeExample
cd StreamChatReactNativeExample
yarn add stream-chat-react-native
yarn add @react-native-community/netinfo react-native-image-picker react-native-document-picker
cd ios && pod install && cd ..
Just to be sure, please verify you are using appropriate version of following packages as per your react-native version.
netinfo : https://github.com/react-native-community/react-native-netinfo#react-native-compatibility
react-native-image-picker : https://github.com/react-native-community/react-native-image-picker#react-native-compatibility
Please check Example to see usage of components.
OR you can swap this file for your App.js
in root folder with additional following steps:
yarn add react-navigation@3.11.0
yarn add react-native-gesture-handler react-native-reanimated
cd ios && pod install && cd ..
If you are planning to use image picker, there are some additional steps to be done. You can find them here - https://github.com/react-native-community/react-native-image-picker/blob/master/docs/Install.md
If you are planning to use file/document picker, you need to enable iCloud capability in your app - https://github.com/Elyx0/react-native-document-picker#reminder
and finally
iOS:
react-native run-ios
Note for Android:
If you are using androidx app:
AndroidX is a major step forward in the Android ecosystem, and the old support library artifacts are being deprecated. For 0.60, React Native has been migrated over to AndroidX. This is a breaking change, and your native code and dependencies will need to be migrated as well.
(reference: https://facebook.github.io/react-native/blog/2019/07/03/version-60#androidx-support)
In current context, dependencies such as react-native-document-picker
and (if you are using react-navigation
) react-native-gesture-handler
, react-native-reanimated
don't have androidx support. But awesome tool named jetifier is quite usefull to patch these dependencies with androidx support.
NOTE If you are planning to use file picker functionality, make sure you enable iCloud capability in your app
Upgrade from 0.1.x to 0.2.x:
0.2.x added support for react native 0.60. Dependencies like react-native-image-picker
, react-native-document-picker
and netinfo
have been taken out of hard dependencies and moved to peer dependencies and thus will have to be installed manually on consumer end (Reference)
React native 0.60 came with autolinking functionality, that means if some native libraries are linked manually before upgrade, they will have to be unliked so that react native can autolink them (Reference)
react-native unlink react-native-image-picker
react-native unlink react-native-document-picker
react-native unlink @react-native-community/netinfo
React native 0.60 has been migrated over to AndroidX. In current context, dependencies such as react-native-document-picker
and (if you are using react-navigation
) react-native-gesture-handler
, react-native-reanimated
don't have androidx support. But awesome tool named jetifier is quite usefull to patch these dependencies with androidx support.
CocoaPods are not part of React Native's iOS project (ref). Thus make sure to install all the pod dependencies.
cd ios && pod install && cd ..
When you execute react-native run-ios
for the first time, it starts a metro bundler in parallel. It can result into some errors, since build process isn't complete yet. Try the following to fix this:
yarn start
inside stream-chat-react-native/examples/two
directory.When you execute react-native run-android
, you may (not necessarily) run into following error:
info Starting JS server...
info Building and installing the app on the device (cd android && ./gradlew app:installDebug)...
Starting a Gradle Daemon, 1 incompatible Daemon could not be reused, use --status for details
FAILURE: Build failed with an exception.
* What went wrong:
A problem occurred configuring project ':@react-native-community_netinfo'.
> SDK location not found. Define location with sdk.dir in the local.properties file or with an ANDROID_HOME environment variable.
* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights.
* Get more help at https://help.gradle.org
BUILD FAILED in 13s
error Could not install the app on the device, read the error above for details.
Make sure you have an Android emulator running or a device connected and have
set up your Android development environment:
https://facebook.github.io/react-native/docs/getting-started.html
error Command failed: ./gradlew app:installDebug. Run CLI with --verbose flag for more details.
To resolve this, do the following
local.properties
inside stream-chat-react-native/examples/two/android
directorysdk.dir=/Users/{user_name}/Library/Android/sdk/
react-native run-android
in stream-chat-react-native/examples/two
directoryFAQs
The official React Native and Expo components for Stream Chat, a service for building chat applications
The npm package stream-chat-react-native-core receives a total of 17,561 weekly downloads. As such, stream-chat-react-native-core popularity was classified as popular.
We found that stream-chat-react-native-core demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 0 open source maintainers collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
Socket's package search now displays weekly downloads for npm packages, helping developers quickly assess popularity and make more informed decisions.
Security News
A Stanford study reveals 9.5% of engineers contribute almost nothing, costing tech $90B annually, with remote work fueling the rise of "ghost engineers."
Research
Security News
Socket’s threat research team has detected six malicious npm packages typosquatting popular libraries to insert SSH backdoors.