Cross-Platform VoIP Mobile Client Development utilizing Dart and Flutter

checklist
  • Duration: 1 year 6 months
  • Industries: Telecom Industry; IT Industry; Mobile App Development
  • Services: Backend Development; Custom Software Development; Frontend Development; Manual Testing Services; Mobile Development
  • Software Categories and Types: Integration Solutions; B2C Solutions
  • IT Architecture Paradigms and Approaches: Object-Oriented Programming (OOP); Reactive Programming
  • Technical Expertise: Web Development; Android Software Development
  • DevOps Expertise: CI/CD Basics
  • Technologies: IntelliJ IDEA; Other Programming Languages; Data Bases; Kotlin; Project Management, Collaboration and Bug Tracking; Jira; Google Firebase; CI/CD Automation Servers; Git; Flutter; Jenkins; BitBucket (Stash); Java; Operating Systems; Oracle VM VirtualBox; Frontend; IDE; Backend; JavaScript; JavaScript Frameworks; Dart; JVM Languages; Android; Development Infrastructure and Tools; Containers and DevOps Tools; Source Code Management (SCM); Standards and Protocols; Virtual Machines; Grafana; WebRTC; Saltstack; APIs; CI/CD and DevOps; jQuery; Languages, Protocols, APIs, Network Tools; Network Tools; Electron; Software Engineering and Management Tools; Other Technologies; Confluence; Apache Hive; Kazoo 2600Hz API; SIP
project-team
  • Team size (4):
  • 1 Project Manager
  • 1 QA Manual
  • 2 Backend

Project summary

thumbnail-image

The project deals with the development of an application for making calls (SIP device) to various devices powered by Android, iOS, Web, as well as Windows, Linux, and MacOS.

This application allows creating and storing contacts in the application, as well as use contacts stored on a device (Android, iOS versions), make outbound calls and receive inbound calls, store data about calls made.

For the Desktop version, we use the Electron framework, which allows running our application on three platforms: Mac, Windows and Linux.

A description of how the Application works
How Flutter works

Flutter + WebRTC (Web Real-Time Communication) technology was used to implement video calls. WebRTC is a modern technology originally developed by Google as an open source project for real-time data transmission.

The customer’s platform uses SIP (Session Initiation Protocol) protocol. SIP telephony easily integrates with the company’s website, CRM systems, databases, and other applications. The customer plans to integrate the developed messenger with many third-party systems.

JazzTeam responsibilities

JazzTeam engineers worked as part of an international geographically distributed team. Our roles and responsibilities in the project:

  • Development of many key messenger features from scratch, including video calls, address books (including, for example, synchronization with the address book in Android).
  • UI/UX interface design of many product components, including for mobile devices.
  • Design and implementation of CI/CD processes taking into account the need to deploy the product for different platforms from a single code base.
  • Product testing for all the declared platforms.
  • User support at the alpha testing stage.

Technology stack

Stack: Dart, Flutter (BloC), Kazoo, Kotlin.

Protocols: SIP, WebRTC.

DB: Firebase, Hive.

Frameworks: Electron.js.

Testing: manual + Unit tests.

Infrastructure: IntelliJ IDEA, Jira, VM VirtualBox, Confluence.

CI/CD: Bitbucket, Jenkins, SaltStack.

Logging is local. If necessary, the user sends the log file to the support service.

Project features

  • Multinational distributed team, close daily communication in English.
  • Flexible development — requirements for the product were created and updated in the course of development.
  • A modern and efficient Flutter + Dart stack designed and developed by Google. It allows building multi-platform applications from a single code base.

Project results

The result of this project is a stable application for Android, iOS and Windows, which was developed taking into account all customer requirements and in a timely manner.

In addition, through the efforts of JazzTeam specialists:

  • Continuous Integration process was organized.
  • Universal solutions were implemented within the framework of CI Jenkins, which allow minimizing manual activities when deploying all versions of the application (see Fig.1).
Diagram of CI implementation on the project
Diagram of CI implementation on the project
  • Over a hundred test cases for each project functionality were created and are regularly run.
  • The process of manual testing was organized. It includes functional, cross-platform (Android, iOS, Windows, Linux and MacOS), cross-browser (Chrome, Firefox, Safari) testing, as well as regression testing before each release. Thanks to this, the team was able to regularly identify bugs and quickly fix them before releases.

Company’s achievements on the project

  • Quick dive into the subject area and technical details of the project in a very short time.
  • After reaching the primary goals, the project did not end. Cooperation has continued in the format of a long-term partnership.
  • The customer was offered many new ideas and approaches. They allowed the team to improve the work process, which subsequently made it possible to produce a better product.
  • Documentation on project support was created. It includes a set of test cases describing the operation of various application functions.

Screenshots

Clients about cooperation with JazzTeam

Related projects

Recent Work

    Contact Us

    What happens next?
    • 1

      Leave your project request. We will contact you and schedule a call.

    • 2

      Signing of the NDA to ensure the project info confidentiality.

    • 3

      Negotiation of your request and the required services.

    • 4

      Team forming, coordination of workstages.

    • 5

      Contract signing and project start.