Chat and Video Call Application

2 min read
Android Kotlin WebRTC Socket.IO Coroutines Retrofit Firebase Cloud Messaging MVVM
Table of Contents

Project Overview

This project aims to create a communication application with features like WhatsApp in terms of chat and video call functionality on the Android platform. As an Android Developer, the main challenges centered on three technical aspects: Socket Connection, WebRTC Integration, and Incoming Calls & Consistent Notifications.

Project Duration: December 2019 - July 2020

Role : Android Developer

User Interface Applicaiton

Home Page,Chat Interface Screenshot,Video Call Screenshot

View Screenshots
1234
Disclaimer All product names, logos, and brands are anonymized. Screenshots are used solely to demonstrate technical experience.

Client-Side Challenge

This project aims to create a communication application, features like WhatsApp, on the Android platform. As an Android Developer, the main challenges center on three technical aspects:

  • Socket Connection

    • Implement a stable Socket.IO client on Android, capable of handling automatic reconnections and maintaining persistent connections without excessive battery drain.

    • Ensure real-time UI updates (typing indicators, read/delivered status) with safe and efficient threading management.

  • WebRTC Integration

    • Integrate the WebRTC SDK into an Android application, which is a low-level process sensitive to the application’s lifecycle.

    • Handle NAT Traversal and signaling (exchanging SDP and ICE candidates) with the Socket backend for successful call initiation.

    • handle services android to ensure the app can receive calls even when the app is closed.

  • Incoming Calls & Consistent Notifications

    • Created a reliable notification mechanism for incoming calls and new messages using FCM High Priority, and managed it through a Foreground Service to guarantee call reception even when the app is closed.

My Contribution

I was fully responsible for the implementation of the real-time chat and video call features on the Android side, working closely with the backend team and android engineers.

  • Real-Time Chat Implementation (Socket Integration)

    • Socket Abstraction Layer: Designed SocketManager as a Singleton Service/Repository to manage a single persistent Socket connection across the app, ensuring reusability and consistency.
  • Video/Voice Call Implementation (WebRTC SDK)

    • SDK Integration: Successfully integrating the Android WebRTC SDK, adapting the configuration for various Android device codecs and resolutions.

    • Signaling Protocol: Creating Android logic to send and receive SDP signals and ICE Candidates over the connected Socket. * Key Focus: Translates signals from the backend into WebRTC Peer Connection commands (createOffer, createAnswer, addIceCandidate) on the mobile side.


Other Projects

Mobile VPN Application

3 min read

Developed a comprehensive VPN application for Android and iOS with secure VPN connectivity, real-time server selection, encrypted configuration management, and background connection handling. The…

Kotlin Koin Dependency Injeciton Android Google Play Billing +4