Skip to content

A demo of Expo / React Native integrated with the AWS Chime SDK for video calling

License

Notifications You must be signed in to change notification settings

vintasoftware/expo-chime-demo

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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

Expo Chime Demo screenshot

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

Installation

  1. Clone the repository:
git clone https://github.com/vintasoftware/expo-chime-demo.git
cd expo-chime-demo
  1. Install dependencies:
npm install
  1. Deploy the serverless demo of AWS Chime and get the API URL. It looks like: https://<hash>.execute-api.<region>.amazonaws.com/Prod/

  2. Configure the environment variables:

    1. Create the .env.local file in the root directory:
    cp .env.local.example .env.local
    1. Add your AWS configuration:
    EXPO_PUBLIC_AWS_REGION=<region>
    EXPO_PUBLIC_AWS_CHIME_ENDPOINT=https://<hash>.execute-api.<region>.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.

  2. Run the app with:

npx expo run:android
  1. 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

alt text

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

About

A demo of Expo / React Native integrated with the AWS Chime SDK for video calling

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published