@mattywhite/video-react-native-sdk
v0.9.915
Published
Stream Video SDK for React Native
Downloads
8
Readme
Official React Native SDK for Stream Video
Quick Links
- Register to get an API key for Stream Video
- React Native Video Tutorial
- Sample application
What is Stream?
Stream allows developers to rapidly deploy scalable feeds, chat messaging and video with an industry leading 99.999% uptime SLA guarantee.
With Stream's video components, you can use their SDK to build in-app video calling, audio rooms, audio calls, or live streaming. The best place to get started is with their tutorials:
Stream provides UI components and state handling that make it easy to build video calling for your app. All calls run on Stream's network of edge servers around the world, ensuring optimal latency and reliability.
👩💻 Free for Makers 👨💻
Stream is free for most side and hobby projects. To qualify, your project/company needs to have < 5 team members and < $10k in monthly revenue. Makers get $100 in monthly credit for video for free.
💡 Supported Features 💡
Here are some of the features we support:
- Developer experience: Great SDKs, docs, tutorials and support so you can build quickly
- Edge network: Servers around the world ensure optimal latency and reliability
- Chat: Stored chat, reactions, threads, typing indicators, URL previews etc
- Security & Privacy: Based in USA and EU, Soc2 certified, GDPR compliant
- Dynascale: Automatically switch resolutions, fps, bitrate, codecs and paginate video on large calls
- Screen sharing (To be implemented)
- Picture-in-picture support (To be implemented)
- Active speaker
- Custom events
- Geofencing
- Notifications and ringing calls
- Opus DTX & Red for reliable audio
- Webhooks & SQS
- Backstage mode
- Flexible permissions system
- Joining calls by ID, link or invite
- Enabling and disabling audio and video when in calls
- Flipping, Enabling and disabling camera in calls
- Enabling and disabling speakerphone in calls
- Push notification providers support
- Call recording (To be implemented)
- Broadcasting to HLS
Repo Overview 😎
This repo contains projects and samples developed by the team and Stream community. Projects are broken up into directories containing the source code for each project.
Projects/Packages 🚀
The React Native SDK is a part of the Stream Video JS monorepo.
The monorepo consists of multiple folders, the most important of which are packages
and sample-apps
.
The
packages
folder contains the packages each of which is a separate npm package. The React Native SDK is one of the packages alongside:- Our shared JS Call Engine (
client
). - React Bindings (
react-bindings
). - React SDK (
react-sdk
).
- Our shared JS Call Engine (
The
sample-apps
folder contains the sample apps that are built using the packages from thepackages
folder. React Native's most relevant sample app is thedogfooding
app which is a complete app that implements most of the features of the SDK.The
react-native-sdk/docusaurus
folder contains the documentation and guides.
Requirements 🛠
Before running this project please ensure you have set up your development environment for React Native. The Stream Video React Native SDK supports apps created with the React Native CLI.
Contributing 🤝
- How can I submit a sample app?
- Apps submissions are always welcomed 🥳 Open a pr with a proper description and we'll review it as soon as possible
- Spot a bug 🕷 ?
- We welcome code changes that improve the apps or fix a problem. Please make sure to follow all best practices and add tests if applicable before submitting a Pull Request on Github.
Roadmap
Stream's video roadmap and changelog are available here.
0.1, 0.2 and 0.3 milestone
- [x] Push notification- Android
- [x] Chat integration guide
- [x] Simulcasting- Android
- [x] Push notification- VoIP iOS
- [x] Reconnection
- [x] Simulcasting- iOS
- [x] Pinning and spotlighting participants
- [x] Components parity, alignment and refactor
- [x] Write docs:
- [x] UI Components
- [x] Tutorials
- [x] Video Rooms Tutorial
- [x] Audio Rooms Tutorial
- [x] Livestream Tutorial
- [ ] Core
- [x] Camera & Microphone
- [ ] Advanced
- [x] Chat Integration
- [x] Internationalization
- [x] Push Notification (validate)
- [x] UI Cookbook
- [x] Call Controls
- [x] Permission requests (native)
- [x] Runtime layout switching
- [x] Video Layout (refactor)
- [x] ParticipantView customizations
0.4 Milestones
- [x] Expo Support
0.5 Milestones
- [x] Regular Push Notification for Vanilla React Native
- [x] Ringing and Regular Push Notification for Expo
- [x] Landscape Support
- [x] Livestream components
- [x] Screen-share media track support
- [x] PiP on Android
- [x] Speaking while muted
- [x] Demo app on play-store and app-store
- [x] Transcriptions
- [ ] Speaker management (needs docs)
- [ ] PiP on iOS
- [ ] Audio & Video filters
- [ ] CPU usage improvement
- [ ] Analytics Integration
- [ ] Long press to focus
- [ ] Dynascale 2.0
- [ ] Test coverage