Project summary
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.
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).
- 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.