Skip to content

Commit

Permalink
Update README.md
Browse files Browse the repository at this point in the history
  • Loading branch information
jedi1150 committed Dec 28, 2023
1 parent 3adb560 commit d68de3f
Show file tree
Hide file tree
Showing 6 changed files with 143 additions and 2 deletions.
95 changes: 93 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,2 +1,93 @@
# voximplant-android-sdk-demo
Voximplant SDK Demo for Android
# Voximplant Android SDK v3 Demo (beta)

This repository contains a sample Android application demonstrating the integration and use of the
Voximplant Android SDK 3.x.
The application is developed using Kotlin and Jetpack Compose and also uses App Modularization and
Hilt for a more user-friendly
dependency management.

The application is currently in development.

## Features

- **Audio calls**: Demonstration of the capabilities of Voximplant Android SDK for making audio
calls.
- **Jetpack Compose UI**: The application's user interface is built using Jetpack Compose for more
convenient and
declarative UI development.
- **App Modularization**: The project is divided into modules to make the code extensible and easier to maintain.
- **Hilt DI (Dependency Injection)**: Using Hilt provides a cleaner architecture.

## Project structure

The project is divided into several modules:

- **:app**: The main application module containing screen navigation and user interface.
- **:feature:audiocall**: Audio call main screen.
- **:feature:audiocall-incoming**: Module responsible for incoming audio calls.
- **:feature:audiocall-ongoing**: Module responsible for managing an ongoing call.
- **:feature:catalog**: Module responsible for switching between functional features of the
Voximplant Android SDK.
- **:feature:login**: Module responsible for authorization in the demo application.
- **:core**: Multiple small independent modules, each implementing its own functionality:
- Business logic implemented using Voximplant Android SDK
- UI components
- Data and domain layers
- Resources
- Helpers and utils

## Requirements

- Android Studio Arctic Fox (or newer)
- Gradle 8.0 (or newer)
- Java 17 (or newer)
- Android API 21 (or newer)

## Installing

1. Clone the repository with this command:
```bash
git clone https://github.com/voximplant/android-sdk-v3-demo.git
```
2. Open the project in Android Studio.
3. Sync the project with Gradle.
4. Run the app on a real device or an emulator.

## How to use

Make sure you have a Voximplant account to make calls. [Register](https://voximplant.com/).

Your Voximplant account should be configured with the following setup:

- Voximplant application
- at least two Voximplant users
- VoxEngine scenario
- routing setup

Push notifications require additional
configuration. [Set up](https://voximplant.com/docs/howtos/sdks/push_notifications/android_sdk).

1. Launch the application on a real device or an emulator.
2. Log in to your account by clicking "Login".
3. Select the desired functionality, such as audio calling.

## Dependencies

Voximplant Android SDK is available on `mavenCentral()`.

```
implementation(platform("com.voximplant:android-sdk-bom:3.0.0-beta1"))
implementation("com.voximplant:android-sdk-core")
implementation("com.voximplant:android-sdk-calls")
```

## Useful links

1. [Quickstart](https://voximplant.com/docs/introduction)
2. [HowTo's](https://voximplant.com/docs/howtos)

## Have a question?

- Contact us via [support@voximplant.com](mailto:support@voximplant.com).
- Create a new [issue](https://github.com/voximplant/android-sdk-v3-demo/issues).
- join our developer [Discord](https://discord.gg/sfCbT5u) community.
11 changes: 11 additions & 0 deletions feature/audiocall-incoming/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
# :feature:audiocall-incoming module

## Features

This module provides the UI to handle incoming audio calls.

Incoming call screen allows the user to see the caller name, accept, or decline the call.

A call can be started only if the microphone permission is granted.

Once a call is started, the application navigates to `:feature:audiocall-ongoing`.
13 changes: 13 additions & 0 deletions feature/audiocall-ongoing/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
# :feature:audiocall-ongoing module

## Features

This module provides the UI to manage an ongoing call.

- Switch audio devices;
- Toggle microphone mute state;
- Put a call on hold;
- Hang up;

It also starts a foreground service that keeps the access to the microphone
in any application state and posts a notification with call details to the system tray.
10 changes: 10 additions & 0 deletions feature/audiocall/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
# :feature:audiocall module

## Features

This module provides the UI to make outgoing and receive incoming audio calls.

To make a call, the user must be logged in and provide access to the microphone.
When a call starts, the application navigates to `:feature:audiocall-ongoing`.

The application navigates to `:feature:audiocall-incoming` when it receives an incoming call.
9 changes: 9 additions & 0 deletions feature/catalog/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
# :feature:catalog module

## Features

This module provides the catalog of different communication solutions and navigation between them:

- `:feature:audiocall`
- `:feature:videocall` (Under development)
- `:feature:conference` (Under development)
7 changes: 7 additions & 0 deletions feature/login/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
# :feature:login module

## Features

This module provides UI to authorize a Voximplant user.

Authorization is required for all functionality this demo application contains.

0 comments on commit d68de3f

Please sign in to comment.