Разработка кроссплатформенного VoIP клиента
Описание проекта
Проект представляет собой разработку приложения по осуществлению звонков (SIP-устройство) на различные девайсы для Android, iOS, Web, а также Windows, Linux и MacOS.
Данное приложение позволяет создавать и хранить контакты внутри приложения, а также использовать контакты с устройства (для Android, iOS версий), осуществлять исходящие звонки и принимать входящие, хранить данные о совершённых вызовах.
Для Desktop-версии мы используем Electron фреймворк, который позволяет запускать наше приложение на трёх платформах: Mac, Windows и Linux.
Для реализации видеозвонков использована технология Flutter + WebRTC (Web Real-Time Communication). WebRTC — это актуальная технология, первоначально разработанная Google как проект с открытым исходным кодом для передачи данных в режиме реального времени.
На платформе заказчика используется SIP-протокол (Session Initiation Protocol). SIP-телефония легко интегрируется с сайтом компании, CRM-системами, базами данных и другими программами. У заказчика есть планы по интеграции разработанного мессенджера со многими сторонними системами.
Обязанности команды ДжазТим
Инженеры ДжазТим работали в составе международной команды, географически распределённой. Наши роли и обязанности на проекте:
- Разработка с нуля многих ключевых возможностей мессенджера, включая видеозвонки, адресные книги (в том числе, например, синхронизация с адресной книгой в Android).
- UI/UX дизайн интерфейса многих компонентов продукта, в том числе под мобильные устройства.
- Проектирование и реализация CI/CD процессов с учётом необходимости развёртывания продукта под разные платформы из одной кодовой базы.
- Тестирование продукта под все заявленные платформы.
- Поддержка пользователей на стадии альфа-тестирования.
Стек технологий
Стек: Dart, Flutter (BloC), Kazoo, Kotlin
Протоколы: SIP, WebRTC.
БД: Firebase, Hive.
Фреймворки: Electron.js.
Тестирование: мануальное + Unit-тесты.
Инфраструктура: IntelliJ IDEA, Jira, VM VirtualBox, Confluence.
CI/CD: Bitbucket, Jenkins, SaltStack.
Логирование осуществляется локально. При необходимости пользователь отправляет log файл в службу поддержки.
Особенности проекта
- Мультинациональная распределённая команда, при этом плотное ежедневное общение на английском языке.
- Гибкая разработка — требования к продукту формировались и актуализировались по ходу разработки.
- Современный и эффективный стек Flutter + Dart, разработанный и развиваемый корпорацией Google. Позволяет собирать мультиплатформенные приложения из одной кодовой базы.
Результаты проекта
Результатом данного проекта является стабильно работающее приложение для Android, iOS и Windows, которое было разработано с учётом всех требований заказчика и в установленные сроки.
Кроме того, усилиями команды специалистов ДжазТим:
- Организован процесс непрерывной интеграции (Continuous Integration).
- Реализованы универсальные решения в рамках CI Jenkins, которые позволяют минимизировать ручные активности при развёртывании всех версий приложения (см. рис.1).
- Создано и регулярно прогоняется более сотни тест-кейсов для каждой функциональности проекта.
- Организован процесс мануального тестирования, включающий в себя проведение функционального, кроссплатформенного (Android, iOS, Windows,Linux и MacOS), кросс-браузерного (Chrome, Firefox, Safari) тестирования, а также регрессионного тестирования перед каждым релизом. Благодаря этому, команда была способна на регулярной основе выявлять ошибки и оперативно исправлять их перед релизами.
Достижения компании на проекте
- Быстрое погружение в предметную область и технические детали проекта за весьма короткий срок.
- После достижения первичных целей проект не закончился. Сотрудничество продолжается в формате долговременного партнёрства.
- Заказчику было предложено множество новых идей и подходов, при помощи которых команда смогла усовершенствовать процесс работы, что впоследствии позволило выпустить более качественный продукт.
- Создана документация по сопровождению проекта полностью на английском языке, включающая в себя набор тест-кейсов, описывающих работу различных функциональностей приложения.
Скриншоты
Свяжитесь с нами, чтобы обсудить Ваш IT-проект