Job Description:
We are looking for a skilled React Native developer to integrate WebRTC into our mobile application. The main tasks will include setting up WebRTC, implementing a user-friendly call interface, managing call flows, and ensuring robust error handling.

Responsibilities:

Setup WebRTC:
* Integrate WebRTC using libraries like react-native-webrtc.
* Handle permissions for accessing the device’s camera and microphone.

UI Components:
* Design and implement UI components for the call interface, including call initiation, ongoing call screen, and call termination.
* Ensure the UI is responsive and user-friendly.

Signaling Communication:
* Implement signaling communication using WebSockets to connect with the Django signaling server.
* Handle the exchange of SDP and ICE candidates with the signaling server.

Call Flow Management:
* Manage the call flow including initiation, acceptance, and termination of calls.
* Display appropriate UI feedback for call status (e.g., ringing, connected, ended).

State Management:
* Use state management tools like Redux or Context API to manage call states and user data.

Error Handling:
* Implement robust error handling for various scenarios like network issues, permission denial, etc.
* General Steps for Implementing Voice/Video Calling:

User Authentication:
* Ensure that users are authenticated before they can initiate or receive calls.

Initiate Call:
* Allow users to select a contact and initiate a call.
* Send a signaling message to the server to notify the recipient of the incoming call.

Receive Call:
* Listen for incoming call notifications via WebSocket.
* Prompt the user to accept or decline the call.

Exchange SDP and ICE:
* Upon call acceptance, exchange SDP offers/answers and ICE candidates between peers through the signaling server.
* Establish the peer-to-peer connection using WebRTC.

Manage Call Lifecycle:
* Handle call lifecycle events including connection, disconnection, and errors.
* Ensure the call UI updates according to the call status.

End Call:
* Allow users to terminate the call.
* Notify the signaling server and the other peer about the call termination.
* Cleanup WebRTC resources and reset the UI.

Requirements:
* Proven experience in React Native development with a strong portfolio of completed projects.
* Proficiency in integrating WebRTC in mobile applications.
* Experience with state management tools like Redux or Context API.
* Strong understanding of WebSockets and signaling communication.
* Excellent problem-solving skills and attention to detail.
* Ability to work independently and meet deadlines.
* Strong communication skills and ability to collaborate with a remote team.

How to Apply:
Please submit your proposal with the following:

* A brief introduction of yourself and your experience in React Native and WebRTC development.
* Links to your portfolio or examples of previous work.
A brief outline of your approach to this project and how you plan to tackle the tasks mentioned.
* Your availability and estimated timeline for completing the initial tasks.

Hourly Range: $18.00-$30.00

Posted On: June 28, 2024 05:05 UTC
Category: Mobile App Development
Skills:WebRTC, React Native

Country: USA

click to apply

Powered by WPeMatico