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 and AWS Chime.

- Android
- iOS (coming soon)
- 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
- 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
- Clone the repository:
git clone https://github.com/vintasoftware/expo-chime-demo.git
cd expo-chime-demo
- Install dependencies:
npm install
-
Deploy the serverless demo of AWS Chime and get the API URL. It looks like:
https://<hash>.execute-api.<region>.amazonaws.com/Prod/
-
Configure the environment variables:
- Create the .env.local file in the root directory:
cp .env.local.example .env.local
- Add your AWS configuration:
EXPO_PUBLIC_AWS_REGION=<region> EXPO_PUBLIC_AWS_CHIME_ENDPOINT=https://<hash>.execute-api.<region>.amazonaws.com/Prod/
Currently only Android is supported. AWS Chime SDK doesn't support x86 emulators, so you (probably) need to use a physical mobile device:
-
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.
-
Run the app with:
npx expo run:android
- Check your physical mobile device.
/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
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
)
Contributions are welcome! Please feel free to submit a Pull Request.
This project is licensed under the MIT License - see the LICENSE.txt
file for details.
This is an open-source project maintained by Vinta Software. We are always looking for exciting work! If you need any commercial support, feel free to get in touch: contact@vinta.com.br