https://github.com/vintasoftware/expo-chime-demo
A demo of Expo / React Native integrated with the AWS Chime SDK for video calling
https://github.com/vintasoftware/expo-chime-demo
Last synced: 9 months ago
JSON representation
A demo of Expo / React Native integrated with the AWS Chime SDK for video calling
- Host: GitHub
- URL: https://github.com/vintasoftware/expo-chime-demo
- Owner: vintasoftware
- License: mit
- Created: 2025-02-25T21:07:30.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2025-06-10T13:24:19.000Z (about 1 year ago)
- Last Synced: 2025-09-05T04:39:31.725Z (10 months ago)
- Language: TypeScript
- Homepage:
- Size: 652 KB
- Stars: 7
- Watchers: 3
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE.txt
Awesome Lists containing this project
README
# Expo AWS Chime Demo (Alpha)
⚠️ **Under heavy development**
A demonstration of AWS Chime SDK integration with Expo/React Native as a native module. This project showcases how to build a video conferencing application using [Expo Modules API](https://docs.expo.dev/versions/latest/sdk/modules/) and [AWS Chime](https://aws.amazon.com/chime/).

## Supported Platforms
- Android
- iOS (coming soon)
## Features
- Real-time video conferencing capabilities
- Audio/video controls (mute/unmute, video on/off)
- Multi-participant video grid with dynamic layout
- Local video preview
- Permissions handling for camera and microphone
## Technical Details
- Custom Expo native module (`expo-aws-chime`)
- React Context API for state management
- Tailwind CSS for styling with NativeWind
- gluestack-ui v2 components for UI elements
## Getting Started
### Prerequisites
- [Node.js](https://nodejs.org/)
- [Expo CLI](https://docs.expo.dev/get-started/installation/)
### Installation
1. Clone the repository:
```bash
git clone https://github.com/vintasoftware/expo-chime-demo.git
cd expo-chime-demo
```
2. Install dependencies:
```bash
npm install
```
3. Deploy [the serverless demo of AWS Chime](https://github.com/aws/amazon-chime-sdk-js/tree/main/demos/serverless) and get the API URL. It looks like: `https://.execute-api..amazonaws.com/Prod/`
4. Configure the environment variables:
1. Create the .env.local file in the root directory:
```bash
cp .env.local.example .env.local
```
2. Add your AWS configuration:
```
EXPO_PUBLIC_AWS_REGION=
EXPO_PUBLIC_AWS_CHIME_ENDPOINT=https://.execute-api..amazonaws.com/Prod/
```
### Running the App
Currently only Android is supported. AWS Chime SDK doesn't support x86 emulators, so you (probably) need to use a physical mobile device:
1. Open Android Studio and connect your device. The easiest way is to pair your device with Wi-Fi using the ["Pair Devices Using Wi-Fi" option](https://developer.android.com/studio/run/device#wireless).
2. Run the app with:
```bash
npx expo run:android
```
3. Check your physical mobile device.
## Project Structure
- `/app` - Main application code using Expo Router for file-based routing
- `/components` - Reusable React components
- `/components/ui` - gluestack-ui v2 components
- `/modules/expo-aws-chime` - AWS Chime SDK native module implementation
- `/assets` - Static assets like images and fonts
## Native Module Implementation
The AWS Chime SDK is integrated as a custom Expo native module using Expo Modules API in the `/modules/expo-aws-chime` directory. The module provides:
- Native bridge to AWS Chime SDK for Android
- React hooks for easy integration (`useChimeMeeting`)
- Context provider for state management (`ChimeMeetingProvider`)
- Native view component for rendering video tiles (`ExpoAWSChimeView`)
## Contributing
Contributions are welcome! Please feel free to submit a Pull Request.
## License
This project is licensed under the MIT License - see the `LICENSE.txt` file for details.
## Commercial Support
[](https://www.vintasoftware.com/)
This is an open-source project maintained by [Vinta Software](https://www.vinta.com.br/). We are always looking for exciting work! If you need any commercial support, feel free to get in touch: contact@vinta.com.br